啸叫检测与抑制算法及其fpga实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

啸叫检测:

(参考框图而已,也不十分准确)

原理描述:通俗的说,ADC采样进来的数据划分为1024点(或更大,越大分辨率越大)为一组,对每组进行1024点FFT变换,对频域1024个复数计算1024个瞬时能量即模方,再将其分别与实验得出的啸叫检测门限值进行比较,大于门限值的标记为啸叫点(注意,根据实际实验情况而定:1,峰值功率门限判别法还可改为PAPR 峰值平均功率比门限判别法,或二者结合;2,每帧检测一次啸叫点,还可考虑改为连续多帧检测,即若连续多帧都在某频点处大于门限值,再将其判决为啸叫点),再映射出啸叫频率值(判断啸叫点时只判断前513个数;频率0到fH之间划分为512份,513个点对应513个频点,0频点为无效频点,实际为512个可能的啸叫频点;其播放的音乐的频率范围肯定在200Hz ~ 10kHz范围内,因为功放频率响应范围题目已经给出,所以其最大频率fH=10KHz,则奈奎斯特采样速率下对应频率分辨率为19.53Hz)(注:ADC采样频率选择fs=2fH好

些,同样fft点数下,分辨率高些,同样分辨率下fft点数可以少些)

FPGA实现:1,涉及ADC配置采样频率;2,涉及FFT 的IP核使用;3,复数模方计算;4,与门限值比较,确定啸叫点序号;5,啸叫点映射到频率值;6,频率值的LCD显示(随着采样帧实时的进入与计算,啸叫点的序号可能会实时变化,则啸叫频率相应实时变化,LCD可以实时显示)

啸叫抑制:

一,移频移相法:

直接将FFT后的1024点数据乘以(2-2-6)函数,再IFFT 输出到DAC。(进入DAC之前需要进行基带后处理,上采样+数字低通滤波+DAC+模拟低通滤波;或者用补零后的大数据IFFT代替)

FPGA实现:1,波形表查找法或cordic产生移相函数;2,乘法运算;3,IFFT的IP核使用;4,DAC配置;

5,数字低通滤波器

二,陷波器法

按照(3-12)(3-13)计算出二阶IIR滤波器系数(陷波器阻带宽度B取值尝试等于啸叫检测最小频率分辨率18.75Hz),送给(3-10)IIR陷波器。输入时域采样信号经滤波器滤波后输出到DAC。(进入DAC之前需要进行基带后处理,上采样+数字低通滤波+DAC+模拟低通滤波)

FPGA实现:1,波形表查找法或cordic产生滤波器系数;2,IIR数字滤波器(根据实验可能同时出现的最多啸叫点个数,设置相应数量的级联滤波器);3,数字低通滤波器;4,DAC配置

参考:南京大学硕士论文

抑制算法有待确定二选一。如果前者好使就用前者。

我可以matlab仿真下抑制算法的性能+ 具体fpga实现给你们提供技术支持

相关文档
最新文档