我是 DSP 新手,我必须在 C++ 中做一个音频均衡器。
我对它进行了大量研究并在上个月尝试了一些东西,但我对所有这些信息有点不知所措,而且它还没有工作。
我决定重新开始,现在我得到的只是一个用正弦波(1kHz)填充音频缓冲区的函数。我正在尝试对其应用具有这些值的过滤器。
<Filter>
<Bands num-bands="28">
<band0 freq="31.25" width="7.23625" gain="0" />
<band1 freq="39.3725" width="9.1171" gain="0" />
<band2 freq="49.6063" width="11.4868" gain="0" />
<band3 freq="62.5" width="14.4725" gain="0" />
<band4 freq="78.7451" width="18.2342" gain="0" />
<band5 freq="99.2126" width="22.9737" gain="0" />
<band6 freq="125" width="28.945" gain="0" />
<band7 freq="157.49" width="36.4684" gain="0" />
<band8 freq="198.425" width="45.9473" gain="0" />
<band9 freq="250" width="57.89" gain="0" />
<band10 freq="314.98" width="72.9368" gain="0" />
<band11 freq="396.85" width="91.8946" gain="0" />
<band12 freq="500" width="115.78" gain="0" />
<band13 freq="629.961" width="145.874" gain="0" />
<band14 freq="793.701" width="183.789" gain="0" />
<band15 freq="1000" width="231.56" gain="6" />
<band16 freq="1259.92" width="291.747" gain="0" />
<band17 freq="1587.4" width="367.579" gain="0" />
<band18 freq="2000" width="463.12" gain="0" />
<band19 freq="2519.84" width="583.495" gain="0" />
<band20 freq="3174.8" width="735.157" gain="0" />
<band21 freq="4000" width="926.24" gain="0" />
<band22 freq="5039.68" width="1166.99" gain="0" />
<band23 freq="6349.6" width="1470.31" gain="0" />
<band24 freq="8000" width="1852.48" gain="0" />
<band25 freq="10079.4" width="2333.98" gain="0" />
<band26 freq="12699.2" width="2940.63" gain="0" />
<band27 freq="16000" width="3704.96" gain="0" />
</Bands>
</Filter>
所以这是我的问题:
我应该使用哪种过滤器?我迷失了所有那些高通、低通、峰值、搁架滤波器;我不知道该选择哪一个。
我只找到“教程”来创建一个只修改一个频率/频段的滤波器。是否可以创建一个过滤器,它是多个过滤器的总和?或者对信号串联多个滤波器?
随意问我是否忘记了一些可能有助于理解我的问题的东西。
谢谢你的时间。
PS:对不起,如果这篇文章不是很具体,但我想在发布具体问题或代码之前清除它。