数字信号处理课程设计滤波器设计模板.docx
《数字信号处理课程设计滤波器设计模板.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计滤波器设计模板.docx(16页珍藏版)》请在冰豆网上搜索。
![数字信号处理课程设计滤波器设计模板.docx](https://file1.bdocx.com/fileroot1/2023-1/3/4a49f5ab-3fa2-47fc-b544-32ab4a1467ec/4a49f5ab-3fa2-47fc-b544-32ab4a1467ec1.gif)
数字信号处理课程设计滤波器设计模板
二○一一~二○一二学年第一学期
电子信息工程系
课程设计报告书
班级:
电子信息工程0级0班
课程名称:
数字信号处理课程设计
学号:
2###5008
姓名:
###武
学时学分:
1周1学分
指导教师:
杨##
二○一二年一月一日
一课程设计目的
“数字信号处理”课程是信息和通信工程专业必修的专业技术基础课程。
课程以信号与系统作为研究对象,研究对信号进行各种处理和利用的技术。
通过该课程的学习,学生应牢固掌握确定性信号和系统的分析方法、相关算法、系统实现等的相关知识的,借助于数字滤波器的设计及实现,学生可掌握数字系统的分析以及设计方法。
数字信号处理是理论性和工程性都很强的学科,本课程设计的目的就是使该课程的理论与工程应用的紧密结合,使学生深入理解信号处理的内涵和实质。
本课程设计要求学生在理解信号处理的数学原理的基础上,应用计算机编程手段,实现一种信号分析或处理的设计,达到对所学内容融会贯通,综合各部分知识,按照题目要求独立设计完成。
二课程设计任务
滤波器设计:
产生一个连续信号,包含低频,中频,高频分量,对其进行采样,进行频谱分析,分别设计低通,带通,高通滤波器对信号进行滤波处理,观察滤波前后信号的频谱。
三设计原理
在本设计中,采用了窗函数(哈明窗)法来设计FIR滤波器,在此主要简述窗函数法设计滤波器的原理:
如下
如果希望得到的滤波器的理想频率响应为
,要求设计一个FIR数字滤波器频率响应
去逼近
。
有两种直接的方法实现这种逼近:
一种是从时域入手,即窗函数设计法;另一种是从频域入手,即频率采样法。
下面介绍用窗函数法设计FIR数字滤波器的步骤:
1、给定理想的频率响应函数
;
2、求出理想的单位响应:
一般采用IFFT在计算机上实现。
对
从
到
采样
点,令采样频率为
则有
频域的采样造成时域的周期延拓,延拓周期为
,则有如下关系
如果
选的较大,即
,可以保证
有效逼近
。
3、确定窗函数形状,估计长度
根据对过渡带宽度和阻带衰减的要求,选择窗函数的形状,并估计窗口长度
。
原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数。
4、求所设计的FIR数字滤波器的单位冲激响应
:
如果要求线性相位,则要求
和
均对
对称。
5、求所设计的滤波器的频率响应:
检验是否满足设计要求,如不满足,则需重新设计。
w=hamming(N):
产生一长度为N的哈明窗(改进的升余弦窗)。
哈明窗时域表达式:
下图给出了常用的五种窗函数的波形。
表1给出了六种窗函数的特性参数。
表1六种窗函数的基本参数
窗函数
旁瓣峰值幅度/dB
过渡带宽
阻带最小衰减/dB
矩形窗
-13
4π/N
-21
三角形窗
-25
8π/N
-25
汉宁窗
-31
8π/N
-44
哈明窗
-41
8π/N
-53
布莱克曼窗
-57
12π/N
-74
凯泽窗
-57
10π/N
-80
四设计结果、仿真波形及结果分析
输入信号为y(t)=sin(2p200t)+2cos(2p1000t)+0.8cos(2p3000t)+0.2w(t)
此信号最高频率为3000Hz,采样频率最少应为6000Hz,为处理简便,可取采样频率为8000Hz。
采样后的信号为:
y(n)=sin(p/20n)+2cos(p/4n)+0.8cos(3p/4n))+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带通滤波器的实际单位采样响应');gridon
subplot(223)
plot(w*fs/(2*pi),dbH);grid
axis([03000-350200]);title('幅频响应');xlabel('f(Hz)');
ylabel('dB');
subplot(224)
plot(w*fs/(2*pi),angle(H));grid
axis([050-44]);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('输入波的频谱'),gridon
subplot(212);plot(abs(fft(y))),title('输出波的频谱'),gridon
防真后结果如下图:
图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带通滤波器的实际单位采样响应');gridon
subplot(223)
plot(w*fs/(2*pi),dbH);grid
axis([03000-350200]);title('幅频响应');xlabel('f(Hz)');
ylabel('dB');
subplot(224)
plot(w*fs/(2*pi),angle(H));grid
axis([050-44]);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('输入波的频谱'),gridon
subplot(212);plot(abs(fft(y))),title('输出波的频谱'),gridon
防真结果如下:
图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带通滤波器的实际单位采样响应');gridon
subplot(223)
plot(w*fs/(2*pi),dbH);grid
axis([03000-350200]);title('幅频响应');xlabel('f(Hz)');
ylabel('dB');
subplot(224)
plot(w*fs/(2*pi),angle(H));grid
axis([050-44]);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('输入波的频谱'),gridon
subplot(212);plot(abs(fft(y))),title('输出波的频谱'),gridon
防真结果如下:
图7高通滤波器的相关参数
图8高频输入输出信号图
图9输入输出频谱图
五.收获和体会
做为电信专业重要的一门专业课程,数字信号处理所涉及的内容相当广泛,单纯地理论学习比较抽象。
在较系统的学习了理论知识的情况下,设置此次课程设计相当有意义。
在完成课程设计的过程中,我进一步深入了对理论知识的理解,同时通过自已动手完成了上述滤波器的设计,使我对DSP这门课程产生了一定的兴趣,并且对课程的总体知识框架有了一个清晰的认识。
利用MATLAB进行编程防真时,遇到了不少问题,通过查阅相当书籍和上网查询,让我的自学能力得到一定的提升。
总之,通过此次课程设计,我对滤波器有了一个较直观的了解,在以后的专业学习中,也需要不断地去实践,去提升。
六.参考文献
《信号与系统》机械工业出版社,程耕国等编著
《MATLAB函数查询手册》机械工业出版社,占君张倩等编著
《数字信号处理实验指导书(MATLAB版)》电子工业出版社,孙洪、余翔宇等译