语音信号滤波去噪——使用flattopwin窗设计的FIR滤波器要点 联系客服

发布时间 : 星期日 文章语音信号滤波去噪——使用flattopwin窗设计的FIR滤波器要点更新完毕开始阅读d5a3805c78563c1ec5da50e2524de518964bd33f

黄珺 《吹管滤波去噪—使用FLATTOPWIN窗设计的FIR滤波器》 第13页,共21页

滤波器设计完成后,在MATLAB平台上用函数filter实现滤波。 滤波程序如下:

>> y_fil=filter(h_bs,1,y);% 用设计好的滤波器对y进行滤波 >> Y_fil=fft(y_fil);Y_fil=Y_fil(1:N/2); % 计算频谱取前一半 figure(4)

>> subplot(3,2,1);plot(t,x);xlabel('时间(t)');ylabel('幅度'); title('原始音乐信号'); >> subplot(3,2,2);plot(f,X);xlabel('频率(f)');ylabel('幅度谱');title('原始音乐信号幅度谱');axis([0,8000,0,600]);

>> subplot(3,2,3);plot(t,y);xlabel('时间(t)');ylabel('幅度');title('加干扰后的音乐信号'); >> subplot(3,2,4);plot(f,Y);xlabel('频率(f)');ylabel('幅度谱');title('加干扰后的音乐信号幅度谱');axis([0,8000,0,600]);

>> subplot(3,2,5);plot(t, y_fil);xlabel('时间(t)');ylabel('幅度'); title('滤波后音乐信号'); >> subplot(3,2,6);plot(f,Y_fil);xlabel('频率(f)');ylabel('幅度谱');title('滤波后音乐信号幅度谱');axis([0,8000,0,600]);

得到的滤波前后音乐信号的时域波形图和频谱图对比图如图3.5所示:

图3.5 滤波前后音乐信号的时域波形图和频谱图对比图

黄珺 《吹管滤波去噪—使用FLATTOPWIN窗设计的FIR滤波器》 第14页,共21页

3.5 结果分析

在MATLAB中,经过sound(x,fs,bits)函数,对经过Flattopwin窗设计的FIR滤波器之后的音乐信号进行回放,可以听出滤波之后的音乐信号跟原始音乐信号一样清晰,完全滤除掉了噪声的干扰,通过下面语句来进行音乐信号回放比较: >> sound (y_fil,fs,bits); 播放滤波后的音乐信号

所得结果证明了用Flattopwin窗设计的FIR滤波器和音乐信号去噪设计是成功的。

4

出现的问题及解决方法

在本次课程设计中我遇到的问题如下:

1、 在录音时,没有将录音的属性改为wav的格式,当在Matlab软件平台上调用时,

出现无法调用的提示,不知道如何将音乐信号截断成自己所需的长度。 2、对在开始录制音乐信号并将其导入MATLAB中的时候出现过错误原因是我所下载

的音乐信号是双音频信号,利用Flattopwin窗函数设计FIR滤波器的设计步骤很生疏。

3、在在最后对加噪音乐信号进行滤波并绘图的时也出现了错误,绘制出最后的滤波信号的频谱图时纵坐标出现了负值,但是原信号的频谱图中却没有,采用Flattopwin窗函数设计的FIR滤波器时得不到理想的滤波器,因而信号的恢复不是特别理想。

针对以上问题,相应的解决方案如下:

1、通过与同学讨论发现,不能直接更改文件后缀,应用转换器将其转换为wav格式, 向同学学习如何截取音乐。

2、在老师的指导下我将音乐信号变成了单声道信号,自己上网查阅资料,或向图书馆借阅资料,掌握利用Flattopwin窗函数设计FIR滤波器的方法和步骤。

3、对滤波的信号进行fft变换之后取绝对值,通过过不断设置参数的值,最终达到最理想的值,设计出理想的滤波器,使信号得到理想恢复。

黄珺 《吹管滤波去噪—使用FLATTOPWIN窗设计的FIR滤波器》 第15页,共21页

5 结束语

本次的课程设计,我的任务是利用Flattopwin窗函数设计FIR滤波器对吹管音乐信号滤波去噪。在本次课程设计之前,我对Flattopwin窗函数完全没有了解,因此在看到这个题目时,我是一头雾水。但是通过自己翻阅资料和询问同学,我掌握了用Flattopwin窗函数设计FIR滤波器的方法步骤,了解了窗函数的基本设计流程。经过这两周的课程设计,我学会了很多东西。

在此我要感谢学校为我们提供这次课程设计的机会,感谢老师对我的悉心指导,也感谢同学对我的帮助。这次的课程设计让我理论联系实际,不仅巩固了我们的理论知识,还提高了我的动手能力,经过这两周的课程设计经过为期两周的课程设计,这次课程设计比较的简单,根据老师给出的模板,再结合以前学过的知识,并在同学和老师的帮助下我顺利的完成了任务。不同于在教室里上的理论,这次的课程设计需要将我们平时所学习的知识运用到实践之中,将知识学以致用。因为是以所学理论为基础,所以在课程设计的过程中,我又重温滤波器、窗函数等知识,更加熟悉了MATLAB的操作。

课程设计是我们运用所学知识,动手实践的一个很好的机会。它既可以帮助我们加深对所学知识的理解,又能提高我们运用知识,联系实际,动手实践的能力。而且在设计过程中可能用到我们没学过的知识,需要我们去查阅资料获取相关信息,这又提高了我们查找信息和学习新知识的能力。在实物的调试与检测过程中,又会遇到许多意想不到的问题,需要我们去分析原因和解决问题。也体会到真正的去独立地完成一件事情是很困难的,同学以及老师的帮助和提醒是必须的。

通过这次课程设计,我拓宽了知识面,锻炼了实际操作能力,综合素质也得到了提高,进一步加深了了我们对专业的认识和激发了我们对专业的兴趣。虽然课程设计结束了,但是我们的学习还没结束,对知识的进一步学习还需要继续,很开心成功地完成了这次设计。

黄珺 《吹管滤波去噪—使用FLATTOPWIN窗设计的FIR滤波器》 第16页,共21页

参考文献

[1]张志涌.精通MATLAB 6.5版[M].北京:北京航空航天大学出版社,2003. [2]约翰·G·普罗克斯.数字信号处理[M].西安:西安交通大学出版社,2009. [3]张小虹.信号系统与数字信号处理[M].第1版.西安:西安电子科技出版社,2002. [4]谢德芳.数字信号处理[M].北京:科学出版社,2005.

[5]郝建军.数字通信[M].第2版.北京:北京邮电大学出版社,2010.

[6]张威.MATLAB 基础与编程入门[M].西安:西安电子科技大学出版社,2010.