数字信号处理课程设计-滤波器设计模板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二○一一~二○一二学年第一学期
电子信息工程系
课程设计报告书
班级:电子信息工程0级0 班
课程名称:数字信号处理课程设计
学号:2###5008
姓名:###武
学时学分:1周1学分
指导教师:杨##
二○一二年一月一日
一 课程设计目的
“数字信号处理”课程是信息和通信工程专业必修的专业技术基础课程。
课程以信号与系统作为研究对象,研究对信号进行各种处理和利用的技术。
通过该课程的学习,学生应牢固掌握确定性信号和系统的分析方法、相关算法、系统实现等的相关知识的,借助于数字滤波器的设计及实现,学生可掌握数字系统的分析以及设计方法。
数字信号处理是理论性和工程性都很强的学科,本课程设计的目的就是使该课程的理论与工程应用的紧密结合, 使学生深入理解信号处理的内涵和实质。
本课程设计要求学生在理解信号处理的数学原理的基础上,应用计算机编程手段,实现一种信号分析或处理的设计,达到对所学内容融会贯通,综合各部分知识,按照题目要求独立设计完成。
二 课程设计任务
滤波器设计:产生一个连续信号,包含低频,中频,高频分量,对其进行采
样,进行频谱分析,分别设计低通,带通,高通滤波器对信号进行滤波处理,观察滤波前后信号的频谱。
三 设计原理
在本设计中,采用了窗函数(哈明窗)法来设计FIR 滤波器,在此主要简述窗函数法设计滤波器的原理:如下
如果希望得到的滤波器的理想频率响应为
)(ω
j d e H ,要求设计一个FIR 数字滤波器频率响应)(ω
j e H 去逼近
)(ωj d e H 。
有两种直接的方法实现这种逼近:一种是从时域入手,即窗函数设计法;另一种是从频域入手,即频率采样法。
下面介绍用窗函数法设计FIR 数字滤波
器的步骤:
1、给定理想的频率响应函数
)(ω
j d e H ; 2、求出理想的单位响应:
ω
π
ωπ
π
ωd e e H n h n j j d d ⎰-
=
)(21)(
()d h n 一般采用IFFT 在计算机上实现。
对)(ωj d e H 从0=ω到πω2=采样M 点,
令采样频率为
1
,,2,1,0,2-==M k k M k πω 则有
kn M j k M j M k d M e
e H M
n h ππ22
1
01
)(⎪⎪⎭⎫ ⎝⎛=
∑-=
频域的采样造成时域的周期延拓,延拓周期为M ,则有如下关系
∑∞
-∞
=+=
r d
M rM n h n h )
()(
如果M 选的较大,即N M >>,可以保证)(n h M 有效逼近)(n h d 。
3、确定窗函数形状,估计长度
根据对过渡带宽度和阻带衰减的要求,选择窗函数的形状,并估计窗口长度N 。
原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数。
4、求所设计的FIR 数字滤波器的单位冲激响应)(n h :
()()()d h n h n w n = 1,,1,0-=N n
如果要求线性相位,则要求)(n h d 和)(n w 均对2/)1(-N 对称。
5、求所设计的滤波器的频率响应:
∑-=-=10
)()(N n n
j j e n h e H ωω
检验是否满足设计要求,如不满足,则需重新设计。
w= hamming (N):产生一长度为N 的哈明窗(改进的升余弦窗)。
哈明窗时域表达式:
下图给出了常用的五种窗函数的波形。
表1给出了六种窗函数的特性参数。
2
n
四设计结果、仿真波形及结果分析
输入信号为y(t)=sin(2p⋅200t)+2cos(2p⋅1000t)+0.8cos(2p⋅3000t)+0.2w(t) 此信号最高频率为3000Hz,采样频率最少应为6000Hz,为处理简便,可取采样频率为8000Hz。
采样后的信号为:
y(n)=sin(p/20⋅n)+2cos(p/4⋅n) +0.8cos(3p/4⋅n) )+0. 2randn(n ) 在y(t)中含有三个频率,分别为200Hz、1000Hz、3000Hz外加干扰信号,利用8000Hz采样,得y(n),为采样后的函数。
1.FIR低通滤波器的设计
对200Hz信号,其数字频率为pi/20,这里可选用低通滤波器。
wp=pi/10,ap=3dB,ws=pi/5,ast=40dB
设计的FIR数字低通滤波器滤出200Hz,抑制1000Hz和3000Hz的信号分量。
其程序清单如下:
fs=8000;
T=1/fs;
wp=pi/10;ap=3;
ws=pi/5;ast=40
tr_width=ws-wp;
N=ceil(8*pi/tr_width);%阻带衰减为40,确定哈明窗
n=0:N-1;
wc=(ws+wp)/2;
alpha=(N-1)/2;
m=n-alpha;
hd=sin(wc*m)./(pi*m)
w_ham=(hamming(N))';
h=hd.*w_ham;
w=0:0.01:pi;
H=freqz(h,1,w);
dbH=20*log10(abs(H)/max(abs(H)));
figure(1)
subplot(221)
plot(n,w_ham);title('哈明窗');xlabel('n');ylabel('w(n)');
subplot(222)
plot(dbH);title('FIR带通滤波器的实际单位采样响应');grid on subplot(223)
plot(w*fs/(2*pi),dbH);grid
axis([0 3000 -350 200]);title('幅频响应');xlabel('f(Hz)');
ylabel('dB');
subplot(224)
plot(w*fs/(2*pi),angle(H));grid
axis([0 50 -4 4]);title('相频相应');xlabel('f(Hz)');ylabel('弧度');
tp=1;
N1=300;
n1=0:N1-1;
t=n1*T;
x=sin(2*pi*200*t)+2*cos(2*pi*1000*t)+0.8*cos(2*pi*3000*t);
figure(2)
subplot(211)
plot(t,x);grid
title('输入信号');xlabel('t');
y=filter(h,1,x);
subplot(212)
plot(t,y);grid
title('滤出后的信号');xlabel('t');
figure(3)
subplot(211) ; plot(abs(fft(x))), title('输入波的频谱'),grid on
subplot(212); plot(abs(fft(y))), title('输出波的频谱'),grid on
防真后结果如下图:
图1 滤波器的相关参数
图2 输入滤出波形
图3 输入输出频谱图
由以上防真结果可知:输入信号通过fir低通滤波器,一定时间的延迟后,达到稳定状态。
输入输出相比,在输出波普中只有低频分量,采样点数取N=300,点数过多,可以很好反应输入输出的对应频谱,但是如果采样点数太高,则会导致输出低频波间距太小,为能够清晰识图,这里取300。
2. 数字带通FIR滤波器的设计
对1000Hz信号,其数字频率为pi/4,这里可选用带通滤波器。
wp1=pi/8,wp2=3pi/8,ap=3dB,
ws1=pi/10,ws2=pi/2,ast=40dB
设计的FIR数字带通滤波器滤出1000Hz,抑制300Hz和3000Hz的信号分量。
程序清单:
fs=8000;
T=1/fs;
wp1=pi/8;
wp2=3*pi/8;ap=3;
ws1=pi/10;
ws2=pi/2;ast=40;
tr_width=min((wp1-ws1),(ws2-wp2));
N=ceil(8*pi/tr_width);
n=0:N-1;
wc1=(ws1+wp1)/2;wc2=(ws2+wp2)/2;
alpha=(N-1)/2;
m=n-alpha;
hd=sin(wc2*m)./(pi*m)-sin(wc1*m)./(pi*m);
w_ham=(hamming(N))';
h=hd.*w_ham;
w=0:0.01:pi;
H=freqz(h,1,w);
dbH=20*log10(abs(H)/max(abs(H)));
figure(1)
subplot(221)
plot(n,w_ham);title('哈明窗');xlabel('n');ylabel('w(n)');
subplot(222)
plot(dbH);title('FIR带通滤波器的实际单位采样响应');grid on
subplot(223)
plot(w*fs/(2*pi),dbH);grid
axis([0 3000 -350 200]);title('幅频响应');xlabel('f(Hz)');
ylabel('dB');
subplot(224)
plot(w*fs/(2*pi),angle(H));grid
axis([0 50 -4 4]);title('相频相应');xlabel('f(Hz)');ylabel('弧度'); tp=1;
N1=300;
n1=0:N1-1;
t=n1*T;
x=sin(2*pi*200*t)+2*cos(2*pi*1000*t)+0.8*cos(2*pi*3000*t);
figure(2)
subplot(211)
plot(t,x);grid
title('输入信号');xlabel('t');
y=filter(h,1,x);
subplot(212)
plot(t,y);grid
title('滤出后的信号');xlabel('t');
figure(3)
subplot(211);plot(abs(fft(x))),title('输入波的频谱'),grid on subplot(212);plot(abs(fft(y))),title('输出波的频谱'),grid on
防真结果如下:
图4 带通滤波器的设计
图5 中频输入输出信号图
图6 中频输入输出频谱图
3. 数字带通FIR滤波器的设计
.对3000Hz信号,其数字频率为3pi/4,这里可选用高通滤波器。
wp=7pi/10,ap=3dB,
wst=pi/2,ast=60dB
设计的FIR数字高通滤波器滤出3000Hz,抑制300Hz和1000Hz的信号分量。
程序清单:
fs=8000;
T=1/fs;
wp=7*pi/10;ap=3;
ws=pi/2;ast=40;
tr_width=wp-ws;
N=ceil(8*pi/tr_width);
n=0:N-1;
wc=(ws+wp)/2;
alpha=(N-1)/2;
m=n-alpha;
hd=(sin(pi*m)-sin(wc*m))./(pi*m)
w_ham=(hamming(N))';
h=hd.*w_ham;
w=0:0.01:pi;
H=freqz(h,1,w);
dbH=20*log10(abs(H)/max(abs(H)));
figure(1)
subplot(221)
plot(n,w_ham);title('哈明窗');xlabel('n');ylabel('w(n)');
subplot(222)
plot(dbH);title('FIR带通滤波器的实际单位采样响应');grid on
subplot(223)
plot(w*fs/(2*pi),dbH);grid
axis([0 3000 -350 200]);title('幅频响应');xlabel('f(Hz)');
ylabel('dB');
subplot(224)
plot(w*fs/(2*pi),angle(H));grid
axis([0 50 -4 4]);title('相频相应');xlabel('f(Hz)');ylabel('弧度'); tp=1;
N1=300;
n1=0:N1-1;
t=n1*T;
x=sin(2*pi*200*t)+2*cos(2*pi*1000*t)+0.8*cos(2*pi*3000*t);
figure(2)
subplot(211)
plot(t,x);grid
title('输入信号');xlabel('t');
y=filter(h,1,x);
subplot(212)
plot(t,y);grid
title('滤出后的信号');xlabel('t');
figure(3)
subplot(211); plot(abs(fft(x))), title('输入波的频谱') ,grid on subplot(212) ;plot(abs(fft(y))), title('输出波的频谱'),grid on
防真结果如下:
图7 高通滤波器的相关参数
图8 高频输入输出信号图
图9 输入输出频谱图
五.收获和体会
做为电信专业重要的一门专业课程,数字信号处理所涉及的内容相当广泛,单纯地理论学习比较抽象。
在较系统的学习了理论知识的情况下,设置此次课程设计相当有意义。
在完成课程设计的过程中,我进一步深入了对理论知识的理解,同时通过自已动手完成了上述滤波器的设计,使我对DSP这门课程产生了一定的兴趣,并且对课程的总体知识框架有了一个清晰的认识。
利用MATLAB进行编程防真时,遇到了不少问题,通过查阅相当书籍和上网查询,让我的自学能力得到一定的提升。
总之,通过此次课程设计,我对滤波器有了一个较直观的了解,在以后的专业学习中,也需要不断地去实践,去提升。
六.参考文献
《信号与系统》机械工业出版社,程耕国等编著
《MATLAB函数查询手册》机械工业出版社,占君张倩等编著
《数字信号处理实验指导书(MATLAB版)》电子工业出版社,孙洪、余翔宇等译。