音视频博客
+ -

声音频均衡器原理

2024-01-08 112 0

声音频均衡器是一种音频处理设备,用于调节不同频率范围的声音信号的音量。其原理是通过调节不同频率范围的增益,来改变声音信号在不同频率上的能量分布,从而实现音频的均衡。

声音频均衡器通常分为不同的频段,比如低频、中频和高频。每个频段上都有一个控制器,用于调节该频段上的增益。当你调节频均衡器时,实际上是调节不同频段上的增益,从而改变这些频段的音量。

例如,如果你想增强低音效果,你可以将低频段的增益调高。如果你想强调人声,在中频段增加一些增益可以使人声更加清晰。而如果你想减弱某些频率范围的声音,你可以将相应频段的增益调低。

通过调整不同频段上的增益,声音频均衡器可以使音频更加平衡,改善声音的质量和表现力。

均衡器可以让声音达到不同的听觉效果:古典、爵士、流行、增强重低音、摇滚等等。如图是酷我音乐播放器的均衡器界面:
均衡器

在讨论均衡器的实现原理之前 先要介绍几个音频相关的名词:

频率

声音在一个周期的震动次数 单位是赫兹(hz)不同频率的声音 其音色是不一样的,频率越低声音就越低沉
人的耳朵能听到的频繁范围是20Hz~20000Hz

音色

不同频率的声音 听起来有不同的听觉感受

频段

以某个频率为中心、向两边延伸的频率范围 称之为频段

增益

标识衰减或增强声音的大小。单位是db,0代表不衰减也不增强,每6db为一个声压级,即6db标识声音增大一倍,-6db标识声音衰减到原来的一半

均衡器的实现原理 通过设置特定频段的增益,达到不同的播放效果。比如前面那张图片 是酷狗的古典效果设置图 从图中可以知道需要设置的各频段及增益值为:

  • 60 hz为中心的频段:增益为 0db
  • 170 hz为中心的频段:增益为 0db
  • 370 hz为中心的频段:增益为 0db
  • 600 hz为中心的频段:增益为 0db
  • 1000 hz为中心的频段:增益为 0db
  • 3000 hz为中心的频段:增益为 0db
  • 6000 hz为中心的频段:增益为 -4db
  • 12000 hz为中心的频段:增益为 -4db
  • 14000 hz为中心的频段:增益为 -4db
  • 1500 hz为中心的频段:增益为 -6db

FLOAT fCenter; 中心频率,单位hz,取值范围是20Hz~20000Hz
FLOAT fBandwidth; 频宽, 表示以fCenter为中心向两边延伸这么多的一个频段 取值范围是 1.0f~36.0f, 通常用12
FLOAT fGain; 增益值 单位db,取值范围 -15.fdb~15.fdb, 0表示原音 建议不大于12db或小于-12db 否则会有杂音

本人在测试时,实际在超过6db或小于-6db时,因参数与音频数据的问题,偶尔会有小的杂音。

混音大魔王

混音大魔王是一款自己搞的音乐播放器,其中EQ的代码移植的是EqualizerAPO中的代码。
混音大魔王

参考资料:[DirectSound] 基于DirectSound的音频均衡器实现

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

UAC Feedback端点
下面转一段对USB feedback的理解:这段时间一直在做USB Audio Device(UAC)设备的开发工作。由于UAC采用的是isochronous endpoint来传输数据,对时钟的要求较高。但无奈我们的嵌入式平台的时钟并不准,数据同步就成了问题。经过研究,发现只能使用异步模式来解决这......
USB音频设备UAC数据同步方式
对于USB扬声器,USB主机负载发送音频数据,而USB设备负责接收来自主机发送过来的数据,数据的传输方式采用的是同步方式。由于USB主机和USB设备时钟同步的问题,会有一定的偏差,长时间的累积会导致主机和设备之间数据的不同步。如USB主机可能会发送数据相对USB设备播放数据过快,导致USB设备来不及......
USBIP 虚拟控制器设备(VDEV_VHCI)FDO的初始化过程
虚拟ROOT总线FDO创建了虚拟USB控制器PDO之后,系统通过各种IRP_MJ_PNP收集完物理设备的信息之后,开始根据其硬件ID进行设备驱动批配,批配成功后,装载驱动并调用其AddDevice之后,开始FDO的创建过程。通过前面的可知,USBIP实现的根驱动,USB控制器、HUB和设备PDO的S......
高速USB模式下 UAC2.0
UAC2.0 Win10原生驱动已经支持,同时UAC2.0较UAC1.0有天生的高带宽、低延时的优势。支持32bit 384k的音频格式,同时支持USB High Speed!为什么要在高速USB模式下运行UAC2.0???UAC1.0 不支持 32bit音频格式UAC2.0 在USB 全速模式......
HidClassFDO_DispatchRequest
NTSTATUSHidClassFDO_DispatchRequest( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp){ PHIDCLASS_COMMON_DEVICE_EXTENSION CommonDeviceExtens......
HID.dll与整个HID驱动程序架构的关系揭密
这里我们首先回顾一下HID相关驱动之间的调用关系图。USB HID设备主要由包括以下几个驱动:HidClass.sys 这个驱动是HID驱动的类驱动,其实就是一个DLL,用于处理USB HID驱动通用功能。HIDUSB.sys 这个驱动是HID驱动的miniPort驱动,即我们常说的迷你小端口......
PD供电能力Request消息请求供电
Request用于接收供电方向供电方发送其请求的供电。比如说当供电方通过Source_Capabilities消息告诉供电电方自己可提供的供电能力后,接收方回复GoodCRC之后,被供电方可向供电方请求其选择的供电规格。Request消息格式premablesopRequest消息IDRequ......
PD供电能力Accept消息
Accept消息用于接收对方的请求Request,如供电方SOURCE同意被供电方发送的Request请求。Reqpuest消息的格式如下:PremablesopAccept消息IDCRCEOP感谢USB中文网QQ群 墨玉麒麟 提供抓包示例......
音频DB概念
DB音频文件数据的垂直标度为分贝。如果没有校准或参考测量,其计算公式为:dB = 20 * log10(amplitude)这时幅值这义为(0,1]之间的值,那么其结果为(-∞,0],其中为1时表示最大振幅。但是我们一般的数据采样用的是AD采样,故AD会有一个最大采样值,最小值当然就是0了。如......
UAC设备端点符Feedback端点描述符的校验判断
UAC的同步传输可以在同步(1101)和异步(0101)的方式工的时候,可以选择使用一个FeedBack端点进行数据的传输校准。当然,这里的01代表该端点是同步传输方式,其中11代表是同步,01代表的是异步。当然也有一种01代表自适应方式。这些概念可详见:UAC音频设备的同步传输(同步、自适应、......
USBIP urb_req结构体及生命周期
USB请求是通过URB实现的,Windows内核定义了其自己的URB数据结构。但由于URB请求需要在USBIP的服务端与客户端传输,这汲到一个新的URB系统请求,需要先对该URB保存然后对其IRP挂起。应用层通过读取该挂起的URB请求,并投递给远程真实设备。当远程真实设备执行完成后,该URB的状态需......
USBIP usbip_header与urb_req关系
urb_req仅用于内核标记USB请求,而到底是那种请求,其实是根据URB数据包中的内容URB功能号决定的。这些功能号可详见:URB功能大全 URB_FUNCTION:https://www.pnpon.com/article/detail-381.html......
urb_req数据的读取
urb_req代表了USB的请求包URB的信息,这其中包括USB控制信息和USB数据信息。这个可以参考USB标准请求,其包括了8字节的SETUP包和数据(有的数据长度为0)在USB设备PDO的结构体pvpdo_dev_t中,其中:struct urb_req*urbr_sent_partial......
USBIP的URB请求
URB请求对应的IRP主功能号为IRP_MJ_INTERNAL_DEVICE_CONTROL,IoControlCode功能号为IOCTL_INTERNAL_USB_SUBMIT_URB的IRP请求。该请求关联的是USB请求,USB请求又使用的是URB来封装,故这里又叫URB请求。drvobj-&......
USBIP 类特定请求和厂商自定义请求
前面主要介绍了USB的标准请求,但当bmRequestType的D6-D5为01和10时,分别为类特定请求和厂商自定义请求。详见https://www.usbzh.com/article/detail-417.htmlUSBIP的类特定请求和厂商自定义请求使用函数store_urb_class_v......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!