数字信号处理课程设计数字滤波器的设计.docx
《数字信号处理课程设计数字滤波器的设计.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计数字滤波器的设计.docx(18页珍藏版)》请在冰豆网上搜索。
数字信号处理课程设计数字滤波器的设计
临沂大学
课程设计报告
课程名称:
《数字信号处理》课程设计
设计名称:
IIR数字带通滤波器设计、IIR巴特沃斯低通滤波
器设计、FIR窗函数低通滤波器设计
姓名:
王志、赵传政、刘桂星
学号:
200909120151、200909120133、200909120143
班级:
电子信息工程09级01班
指导教师:
袁红
起止日期:
2010.12.03-2010.12.26
临沂大学理学院制
课程设计任务书
学生班级:
电子信息工程09级01班学生姓名:
王志、赵传政、刘桂星学号:
200909120151、200909120133、200909120143
设计名称:
IIR数字带通滤波器设计、IIR巴特沃斯低通滤波器设计、FIR窗函数低通滤波器设计
起止日期:
2010.12.03-2010.12.26指导教师:
袁红
设计要求:
1.设计报告一律按照规定的格式,使用A4纸,格式、封面统一给出模版。
2.报告内容
(1)设计题目:
包括三个题目。
在参考题目中IIR滤波器的设计中,模拟滤波器的设计选择一个、数字滤波器的设计选择一个;FIR滤波器的设计中,选择一种窗函数进行设计。
(2)设计要求
(3)设计原理
(4)源程序清单
(5)设计结果和仿真波形
(6)收获和体会
(7)参考文献
选题要求:
1.低通,高通,带通,带阻,4个人(学号)为一个周期进行选择;
2.IIR滤波器设计中,巴特沃思,切比雪夫,以2个人为一个周期进行选择;
3.在FIR滤波器设计中,矩形窗,升余弦窗,汉明窗,布莱克曼窗,频率抽样法,5个人(学号)为一个周期进行选择。
课程设计学生日志
时间
设计内容
2010.12.03上午
查阅资料,整理思路
2010.12.03下午
确定设计方案
2010.12.10-2010.12.25
程序设计及调试,并书写报告
2010.12.27
答辩
课程设计考勤表
上下午
第十三周周日
第十四周周日
第十五周周日
第十六周周日
上午
下午
课程设计评语表
指导教师评语:
小组成员
王志
200909120151
赵传政
200909120133
刘桂星
200909120143
成绩
指导教师:
袁红
2011年月日
目录
一、设计题目6
二、设计目的6
三、数字滤波器的工作原理6
四、数字信号处理课程设计所需要的硬件工具及软件7
五、设计内容及要求(含有设计源程序及相应的波形图)7
六、学习心得16
七、参考文献16
一、设计题目
IIR数字带阻滤波器设计、IIR巴特沃斯低通滤波器设计、FIR窗函数低通滤波器设计
二、设计目的
1.使学生增进对MATLAB的认识,加深对数字信号处理理论方面的理解。
2.使学生掌握数字信号处理中IIR和FIR滤波器的设计。
3.使学生了解和掌握用MATLAB实现IIR和FIR滤波器的设计方法、过程,为以后的设计打下良好基础。
三、数字滤波器的工作原理
在数字滤波中,我们主要讨论离散时间序列。
如图1.1所示。
设输入序列为
,离散或数字滤波器对单位抽样序列
的响应为
。
因
在时域离散信号和系统中所起的作用相当于单位冲激函数在时域连续信号和系统中所起的作用。
图1.1数字滤波器原理
数字滤波器的序列
将是这两个序列的离散卷积,即
(1.1)
同样,两个序列卷积的z变换等于个自z变换的乘积,即
(1.2)
用
代入上式,其中T为抽样周期,则得到
(1.3)
式中
和
分别为数字滤波器输入序列和输出序列的频谱,而
为单位抽样序列响应
的频谱。
由此可见,输入序列的频谱
经过滤波后,变为
,按照
的特点和我们处理信号的目的,选取适当的
使的滤波后的
符合我们的要求。
四、数字信号处理课程设计所需要的硬件工具及软件
PC机、Matlab软件
五、设计内容及要求(含有设计源程序及相应的波形图)
性能指标:
低通滤波器性能指标 fp=1000Hz,fs=1200Hz,As=100dB,Ap=1dB
1、IIR数字带阻滤波器设计
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%巴特沃斯带阻滤波器的设计%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Fs=8000;fp=1000;fs=1200;%给出滤波器性能指标
Ap=1;As=100;
Wp=fp*2*pi/Fs;%归一化处理
Ws=fs*2*pi/Fs;
Wp=[130/500,370/500];
Ws=[150/500,350/500];
[N,Wc]=buttord(Wp,Ws,Ap,As);
[zz,pz,kz]=butter(N,Ws,'stop');
[b,a]=butter(N,Ws,'stop');
[H,f]=freqz(b,a,512,Fs);
plot(f,abs(H))
xlabel('频率/(Hz)')
ylabel('幅度/(dB)')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%对语音信号的采集和加噪及图形显示%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[y,fs,bits]=wavread('D:
\你是我的眼');%读取音频信息
Y=fft(y,4096);%进行傅立叶变换
subplot(321);
plot(y);
title('声音信号的波形');
subplot(322);
plot(abs(Y));
title('声音信号的频谱');
y1=awgn(y,30);%对信号加高斯白噪声
Y1=fft(y1,4096);%进行傅立叶变换
subplot(323);
plot(y1);
title('加噪后的声音信号的波形');
subplot(324)
plot(abs(Y1));
title('加噪后的声音信号的频谱');
x=filter(b,a,y1);
X=fft(x,4096);
subplot(325);plot(x);title('滤波后声音信号波形');
subplot(326);plot(abs(X));title('滤波后声音信号频谱');
sound(x,fs,bits);%回放该音频
带阻滤波器波形图:
带阻滤波器相关图形:
2、IIR巴特沃斯低通滤波器设计
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%巴特沃斯低通滤波器的设计%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fp=1000;
fs=2000;
Fs=8000;
rp=1;
rs=100;%参数设置
wp=2*pi*fp/Fs;
ws=2*pi*fs/Fs;%归一化处理
wap=2*Fs*tan(wp/2);
was=2*Fs*tan(ws/2);
[n,wn]=buttord(wap,was,rp,rs,'s');
[z,p,k]=buttap(n);%把原型滤波器的阶数化为零点极点和增益
[bp,ap]=zp2tf(z,p,k)%把原型滤波器的零极点和增益化为分子分母的系数%求带宽
[bs,as]=lp2lp(bp,ap,wn)%把原型滤波器的系数化为模拟滤波器的系数
[b,a]=bilinear(bs,as,Fs)%把模拟滤波器系数化为数字滤波器的系数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%对语音信号的采集和加噪及图形显示%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[y,f,bits]=wavread('D:
\你是我的眼.wav');%原语音信号加入
Y=fft(y,4096);
figure
(1)
[h,w]=freqz(b,a);
plot(w,abs(h))
title('滤波器原图');
x=awgn(y,20);%对原信号加白噪声
X=fft(x,4096);%加噪声后的傅里叶变换
x1=filter(b,a,x)%进行滤波
X1=fft(x1,4096);
figure
(2)
subplot(311);
plot(y);
title('原波形');%对原信号进行波形显示
subplot(312);
plot(x);
title('加白噪声后的波形');
subplot(313);
plot(x1);
title('滤波后的信号波形');
figure(3)
subplot(311);
plot(abs(Y));%原信号取幅值
title('原波形频谱');
subplot(312);
plot(abs(X));%对噪声信号取幅值
title('加白噪声后的频谱')
subplot(313);
plot(abs(X1));
title('滤波后的频谱')
sound(x1,f,bits);%滤波后的语音播放
IIR巴特沃斯低通滤波器波形图:
声音信号的波形图:
声音信号的频谱图:
3、FIR窗函数低通滤波器设计
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%用汉明窗设计FIR低通滤波器
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fp=1000;
fc=1200;
fs=8000;
wp=2*fp*pi/fs;ws=2*fc*pi/fs;%性能指标
wdelta=ws-wp;%过渡带宽度
M=ceil(3.32*pi/wdelta);%滤波器长度,朝正无穷方向舍入
N=2*M+1;%窗口长度
wc=(ws+wp)/2;%截止频率
win=hamming(N);%因为衰减100大于50dB,可以选择汉明窗
b=fir1(N-1,wc/pi,win);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%取原始语音以及加入噪声
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[y,f,bits]=wavread('D:
\你是我的眼.wav');%原语音信号加入
figure
(1)
[h,w]=freqz(b,1);%频率响应
plot(w,abs(h))
title('滤波器原图');%滤波器图形显示
x=awgn(y,20);%对原信号加白噪声
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%用设计好的滤波器滤波以及进行fft变换
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x1=filter(b,1,x);%用汉明窗低通滤波器滤波
Y=fft(y,4096);%原信号进行傅里叶变换
X=fft(x,4096);%噪声信号进行傅里叶变换
X1=fft(x1,4096);%滤波后的信号傅里叶变换
c2=length(x1);%取长度
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%画图
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
n=0:
1:
N;
[hit]=impz(b,1,n);%得到脉冲响应
[hfw]=freqz(b,1,512);%得到频率响应
figure
(2);%图2画出单位脉冲响应,相频,幅频,
subplot(4,1,1);stem(n,hi);
xlabel('n');ylabel('幅度');title('单位脉冲响应');
subplot(4,1,2);plot(w/pi,20*log10(abs(hf)));
xlabel('频率(Hz)');ylabel('幅度(dB)');
title('幅频响应');
subplot(4,1,3);plot(w/pi,180/pi*unwrap(angle(hf)));
xlabel('频率(Hz)');ylabel('相位(degrees)');
title('相频响应');
subplot(4,1,4);plot(w,abs(hf));
xlabel('频率');ylabel('幅度');
title('幅频响应');
n2=0:
c2-1;
c1=length(x);%取长度
n1=0:
c1-1;
c0=length(y);%取长度
n0=0:
c0-1;
figure(3)%图3画出原始语音信号噪声信号和去噪声信号的信号频谱图
subplot(311);
[h1,w1]=freqz(y);
plot(w1,abs(h1));
title('加噪前的信号频谱');
subplot(312);
[h2,w2]=freqz(x);
plot(w2,abs(h2));
title('加噪后的信号频谱');
subplot(313);
[h22,w22]=freqz(x1);
plot(w22,abs(h22));
title('去噪后的信号频谱');
figure(4)%图4画出三种语音的fft频谱图
subplot(311);
plot(abs(Y));%做噪声语音信号的频谱图
title('原始语音信号的FFT频谱');
subplot(312);
plot(abs(X));%做噪声语音信号的频谱图
title('噪声语音信号的FFT频谱');
subplot(313);%创建两行一列绘图区间的第1个绘图区间
plot(abs(X1));%做去噪后的语音信号的频谱图(abs是绝对值,plot是直角坐标下线性刻度曲线)
title('去噪后的语音信号FFT频谱');
figure(5)%图5画出三种语音的信号波形
subplot(311);
plot(n0,y);
title('原始语音信号的波形');
subplot(312);
plot(n1,x);
title('噪声语音信号的波形');
subplot(313);
plot(n2,x1);
title('去噪后的语音信号波形');
sound(x1,44100);%播放加噪声后的语音
FIR窗函数低通滤波器波形图:
响应图:
声音信号波形图:
声音信号频谱图:
声音信号的FFT频谱图:
六、学习心得
通过该课程设计,我们学到了怎么样去设计一个滤波器,可以用不同的方法对声音信号去噪,虽然效果不同(主要和参数有关),但是我们尝试了,明白了滤波器的原理,理论方面有些不懂的地方通过亲身去写程序就让问题不攻自破了,让我们学到了不去实践无法理解的问题,同时通过和老师的交流更是受益匪浅,收获确实很大。
七、参考文献
[1]余成波数字图像处理及matlab实现重庆出版社2003
[2]高西全数字信号处理——原理、实现及应用(第二版)电子工业出版社2010
[3]程佩青数字信号处理教程清华大学出版社(第三版)2007