吹管音乐滤波去噪:基于汉宁创的fir滤波器(编辑修改稿)内容摘要:

%改变横纵坐标的范围 axis([0,2,])。 %加上标题和横坐标名称 grid on。 % 加上网格 subplot(2,2,2)。 plot(f,X)。 title(39。 原始音乐信号频谱 39。 )。 xlabel(39。 频率 (f)39。 )。 ylabel(39。 幅度谱 39。 )。 axis([0,3000,0,3000])。 grid on。 subplot(2,2,3)。 plot(t,y)。 title(39。 加入干扰后的音乐信号 39。 )。 xlabel(39。 时间 (t)39。 )。 ylabel(39。 幅度 39。 )。 axis([0,2,])。 grid on。 subplot(2,2,4)。 plot(f,Y)。 title(39。 加入单频干扰后的音乐信号频谱 39。 )。 xlabel(39。 频率 (f)39。 )。 ylabel(39。 幅度谱 39。 )。 axis([0,3000,0,3000])。 grid on。 用绘图命令分别画出加噪前后的时域 和频域波形,如下图 33 所示。 《 吹管音乐 滤波去噪 使用 汉宁 窗设计的 FIR滤波器 》 第 9 页 共 20 页 图 33 吹管音乐信号加入单频噪声前后的时域与频谱波形图 由上图可以看到,语音信号加入单频噪声后的时域波形比未加之前在幅度范围内有了明显的增加,在频谱方面可以看到除了在加了噪声之后的频谱图上的 2100Hz 出现一个明显的冲激信号外,其它地方均与未加时的原始吹管音乐信号 频谱相同,这一现象表现在音乐播放时,可以听见一声尖锐的啸叫声。 滤波器设计 本次课程设计中主要应用汉宁窗设计出 FIR 滤波器。 利用 Matlab 中的函数 freqz 画出各滤波器的频率响应 ,首先利用数字信号处 理里面学过的知识,根据选定的参数,用汉宁窗函数法设计 FIR 数字滤波器,得到数字滤波器的参数 b, a。 其中 b 为系统函数的分子系数, a 为系统函数分母系数。 再调用 freqz(b,a,512,fs)即可得到该滤波器的频率响应。 主程序如下: fpd=1450。 fsd=1650。 fsu=2fpu=2350。 % FIR 滤波器的上下截止频率 Rp=1。 As=37。 % 带阻滤波器设计指标 《 吹管音乐 滤波去噪 使用 汉宁 窗设计的 FIR滤波器 》 第 10 页 共 20 页 fcd=(fpd+fsd)/2。 fcu=(fpu+fsu)/2。 df=min((fsdfpd),(fpufsu))。 % 计算上下边带中心频率,和频率间隔 wcd=fcd/fs*2*pi。 wcu=fcu/fs*2*pi。 dw=df/fs*2*pi。 % 将 Hz为单位的模拟频率换算为 rad为单位的数字频率 wsd=fsd/fs*2*pi。 wsu=fsu/fs*2*pi。 M=ceil(*pi/dw)+1。 % 计算汉宁窗设计该滤波器时需要的阶数 n=0:M1。 % 定义时间范围 w_ham=hanning(M)。 % 产生 M 阶的汉宁窗 hd_bs=ideal_lp(wcd,M)+ideal_lp(pi,M)ideal_lp(wcu,M)。 % 调用自编函数计算理想带阻滤波器的脉冲响应 h_bs=w_ham39。 .*hd_bs。 % 用窗口法计算实际滤波器脉冲响应 [db,mag,pha,grd,w]=freqz_m(h_bs,1)。 % 调用自编函数计算滤波器的频率特性 通过绘图工具可得出滤波器的波形图,如图 34 所示。 图 34 FIR 滤波器的频率响应 《 吹管音乐 滤波去噪 使用 汉宁 窗设计的 FIR滤波器 》 第 11 页 共 20 页 上图为用汉宁窗设计的 FIR 滤波器图,可以看出,阻带最大衰减为 100dB, FIR 滤波器的主瓣宽度很小,这样可以使过渡宽度很陡,旁瓣相 对于主瓣也比较小。 信号滤波处理 用自己设计的各滤波器分别对采集的信号进行滤波,在 Matlab 中, FIR 滤波器利用函数 fftfilt 对信号进行滤波, IIR 滤波器利用函数 filter 对信号进行滤波 , 对语音信号进行滤波后,仔细对比滤波前和滤波后的语音信号图,得出结论。 主程序如下: y_fil=filter(h_bs,1,y)。 % 用设计好的滤波器对 y 进行滤波 Y_fil=fft(y_fil)。 Y_fil=Y_fil(1:N/2)。 % 计算频谱取前一半 由绘图工具可以得出滤波前后的吹管音乐信号 波形图、原始吹管音乐信号波形图和加入噪声后的吹管音乐信号波形图,如图 35 所示。 图 35 滤波前后的波形图 《 吹管音乐 滤波去噪 使用 汉宁 窗设计的 FIR滤波器 》 第 12 页 共 20 页 由上图可以看出,加噪后的吹管音乐信号经过 FIR 滤波器的滤噪处理,时域和频域图几乎相同,这说明噪声被完全滤掉,同时也说明 FIR 滤波器设计很理想,能满足课设要求。 结果分析 语音信号经过 FIR 滤波器的滤除噪声的处理, 在 Matlab 中,函数 sound 可以对声音进行回放。 其调用格式: sound (x, fs, bits) 我们 可以 明显 感觉滤波前后的声音有变化。 声音中刺耳的声音没有了,几乎恢复成 原始的声音,但较原始的声音更平滑一些。 这说明用汉宁窗设计 FIR 滤波器滤掉了语音中的噪声同时,也把原始语音的很小的一部分也滤掉了,所以回放语音的时候听起来比以前的更加平滑,说明这段程序设计是成功的。 4 出现的问题及解决方法 在设计课程设计时,出现了以下几个问题: 1.、在编辑 .wav 音乐时,由于没有控制好所需音乐信号的时间,导致结果不理想。 对各时域、频谱图的范围没有好的预计,导致出图时波形效果不理想。 因为 多次改动单频噪声频率值 ,所设计的滤波器的 性能指标 没有随之变化, 出现了滤波上的错误。 在 确定单频噪声频率值后,由于不能很好的掌握其它参数的调试指标,导致多次调试都无法得到理想的滤波。 5 结束语 在此次课程设计中, 我的任务是利用汉宁窗函数设计 FIR 滤波器,对吹管音乐信号进行滤波去。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。