使用NUTTALLWIN设计的FIR滤波器(3)

2018-12-19 23:07

《拉弦音乐滤波去噪--使用NUTTALLWIN设计的FIR滤波器》 第11页 共18页 fpd=2000;fsd=2050;fsu=2150;fpu=2200;Rp=1;As=40; % 带阻滤波器设计指标

fcd=(fpd+fsd)/2;fcu=(fpu+fsu)/2;df=min((fsd-fpd),(fpu-fsu)); % 计算上下边带中心频率,和频率间隔

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(15.4*pi/dw)+1; % 计算汉宁窗设计该滤波器时需要的阶数 n=0:M-1; % 定义时间范围 w_ham=NUTTALLWIN(M);

hd_bs=ideal_lp(wcd,M)+ideal_lp(pi,M)-ideal_lp(wcu,M); % 调用自编函数计算理想带阻滤波器的脉冲响应

h_bs=w_ham'.*hd_bs; % 用窗口法计算实际滤波器脉冲响应

[db,mag,pha,grd,w]=freqz_m(h_bs,1); % 调用自编函数计算滤波器的频率特性; 然后用绘图命令分别画出窗口法设计出来的滤波器的幅度响应和脉冲响应如图3-3所示:

滤波器幅度响应图100-101.41.21滤波器幅度响应图幅度mag-20-30-40-50-600.050.060.070.080.090.1w/pi0.110.120.130.140.15幅度mag0.80.60.40.200.050.060.070.080.090.1w/pi0.110.120.130.140.15滤波器相位响应图41.2120.8滤波器脉冲响应图相位pha0h(n)00.10.20.30.40.5w/pi0.60.70.80.910.60.40.20-2-4-0.20100020003000n4000500060007000

图3.11

3.5 结果分析

通过滤波后可听到已经没有尖锐的单频啸叫声,再通过对滤波前后语音信号

《拉弦音乐滤波去噪--使用NUTTALLWIN设计的FIR滤波器》 第12页 共18页 的波形及频谱比较分析可以知道该NUTTALLWIN窗FIRDF达到了滤波的效果,滤波后滤除了噪声信号还原了原来的语音信号“空山鸟语”。完成了设计指标。

4出现的问题及解决方法

在做课程设计的过程中还是遇到了不少的问题,主要由于学校教材上面虽有几种常见的窗函数设计FIRDF,但没有关于NUTTALLWIN窗的说明,具体操作起来还是有些生疏。所以做之前先上网查了有关NUTTALLWIN窗方面的知识。这无形之中就比别的同学多了工作量。

4.1出现的问题

(1)在画滤波器幅响应图红线的时候,由于取值范围大了而不能得出正确结果;

(2)在滤波处理的时候,单频噪声部分噪声频率设置的为2200,但滤波器参数设置部分最高带阻为2200。

4.2 解决的方法

(1)缩小取值范围,最后的出正确结果; (2)把噪声信号改到2100。

在本次课程设计中还遇到了很多小问题,就比如因为不熟悉仿真平台,对学过的知识应用不够熟练,所以很多问题就要请教老师和去翻看教材看,虽然这样浪费了很多时间,但是最后还是把问题解决了,自己也从请教老师和翻看教材过程中巩固了自己以前学的知识,除此之外也学到了很多新的知识。

5 结束语

《拉弦音乐滤波去噪--使用NUTTALLWIN设计的FIR滤波器》 第13页 共18页

每一次的课程设计总会有许多的收获,无论是之前的数字信号处理还是通信原理的课程设计,我都能在各种挑战中有所成长。而当我拿到这个课程设计的题目时,在我有些感叹这个题目很难时,也高兴有了一个更进一步的机会。其中所遭遇的种种困难,让我对于我们的专业,有了更深的理解,明白了以后要走的路的艰辛。

这次课程设计的顺利完成,不得不去感谢在这段旅程中给予我帮助的同学和老师。在和同学激烈的探讨中,我获得了新鲜的想法,获得了不断的鼓励,获得了完成设计的自信。而在这段新的挑战旅程中,我真的很感谢我的老师。感谢老师给了我无私的指导。我想,要是没有这些陪我一起走过,为我加油的同学老师们,我不会那么顺利地完成这次的设计。

在整个课程设计的过程当中,不仅使我学到了许多知识,也培养了我独立解决问题的能力,加深了我对专业知识的了解,树立了我对自己独立完成任务的信心,大大提高了我的动手动脑能力,收集整理资料的能力。我相信对以后的工作会有很大的帮助,会提高自己对待事物的分析解决能力,思考问题的角度也会更全面。

当然,这次的收获不仅仅是完成任务后满满的成就感,还有需要更加努力学习实践的动力。在这次的设计课程观中,我深刻地发现了自己在知识和实践方面仍有许多的不足。把理论知识放到实践中完全是另外一回事,单单掌握理论知识是远远不够的。实践需要的不仅仅是知识,还需要迁移能力,动手能力,与人合作的能力等等。所以我也希望学校能够多提供更多的实践机会,这才能让我们获得真正的提高。实践不仅仅是检验真理的唯一标准,也是提高实践能力的途径,发现问题解决问题的途径。

虽然课程设计的任务已经顺利完成,但是这是一个不成熟的作品,其中必然包含着许许多多的问题。其中的不足之处还希望老师能谅解并给予指正。我真诚地期待老师给予的建议。

参考文献

《拉弦音乐滤波去噪--使用NUTTALLWIN设计的FIR滤波器》 第14页 共18页

[1] 张威 MATLAB基础与编程入门. 西安:西安电子科技大学出版社,2007 [2] 维纳K 英格尔,约翰 G 普罗克斯 数字信号处理(MATLAB版).西安:西安交通大学出版社,2007

[3] 樊昌信,曹丽娜 通信原理(第6版).北京:国防工业出版社, 2006 [4] 程佩青.数字信号处理教程.北京:清华大学出版社,2007 [5] 吴大正.信号与线性系统分析.北京:高等教育出版社.2008

《拉弦音乐滤波去噪--使用NUTTALLWIN设计的FIR滤波器》 第15页 共18页 附录1:语音信号采集源程序 %程序名称:拉弦音乐信号的采集

%程序功能:实现语音信号的采集,并且画出音频信号的时域和频域图 %程序作者:

%最后修改日期:2012-2-29

[x,fs,bits]=wavread('C:\\Documents and Settings\\Administrator\\桌面\\246-张韶-空山鸟语') % 输入参数为文件的全路径和文件名,输出的第一个参数是每个样本的值,fs是生成该波形文件时的采样率,bits是波形文件每样本的编码位数。 sound(x,fs,bits); % 按指定的采样率和每样本编码位数回放 N=length(x); % 计算信号x的长度 fn=2100;; % 单频噪声频率,此参数可改

t=0:1/fs:(N-1)/fs; % 计算时间范围,样本数除以采样频率 x=x'; y=x+0.1*sin(fn*2*pi*t);

sound(y,fs,bits); % 应该可以明显听出有尖锐的单频啸叫声

X=abs(fft(x)); Y=abs(fft(y)); % 对原始信号和加噪信号进行fft变换,取幅度谱 X=X(1:N/2); Y=Y(1:N/2); % 截取前半部分 deltaf=fs/N; % 计算频谱的谱线间隔 f=0:deltaf:fs/2-deltaf; % 计算频谱频率范围

subplot(2,2,1);plot(t,x);axis([0,2.8,-0.4,0.4]);title('语音信号时域波形');xlabel('时间(单位:s)');ylabel('幅度'); n=(1:N/2)*deltaf;

subplot(2,2,2);plot(n,X);axis([0,2500,0,2000]);title('语音信号频域波形');xlabel('频率(单位:Hz)');ylabel('幅度谱');

subplot(2,2,3);plot(t,y);axis([0,2.8,-0.5,0.5]);title('语音加噪信号时域波形');xlabel('时间(单位:s)');ylabel('幅度');

subplot(2,2,4);plot(n,Y);axis([0,5000,0,8000]);title('语音加噪信号频域波形');xlabel('频率(单位:Hz)');ylabel('幅度谱');

附录2:滤波器设计源程序


使用NUTTALLWIN设计的FIR滤波器(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:企业偿债能力分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: