数字信号处理课程设计基于窗函数设计法线性相位型FIRWord文档下载推荐.docx
《数字信号处理课程设计基于窗函数设计法线性相位型FIRWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计基于窗函数设计法线性相位型FIRWord文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
实验心得…………………………………………
参考文献………………………………………
源代码………………………………………
【内容概述】
FIR数字滤波器设计最简单的方法是窗函数法,通常也称之为傅里叶级数法。
它是在属于进行的,因而必须由理想滤波器的频率响应
推导出其单位冲击响应
,再设计一个FIR数字滤波器的单位冲击响应
去逼近
。
窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,先通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。
再由性能指标确定窗函数W(n)和窗口长度N。
最后求得实际滤波器的单位脉冲响应h(n)。
窗函数在设计FIR数字滤波器中有很重要的作用,正确的选择窗函数可以提高所涉及的数字滤波器的性能,或者在满足设计要求的情况下,减小FIR数字滤波器的阶数。
【题目要求细则】
基于窗函数设计法线性相位型FIR数字低通滤波器设计
目的:
①熟练掌握MATLAB工具软件在工程设计中的使用;
②熟练掌握窗函数法设计线性相位型FIR滤波器的方法。
要求:
①根据给定ALPF幅频特性指标,生成与之相对应的模拟滤波器h(t);
②根据h(t)取得与之相对应的数字滤波器冲击响应函数h(n);
③选择适当的窗函数,构建线性相位型FIR的冲击响应函数hd(n);
④设计与之相对应的DLPF,对比分析DLPF幅频特性是否符合要求;
⑤产生一个有干扰频率的时域序列(借助FFT分析说明其有干扰),使之通过所设计的DLPF,
对滤波输出结果作出分析,说明输出结果。
步骤:
①根据给定设计指标(通带截止频率fb=1000Hz,通带最大衰减αp=1dB,阻带截止频率fc
=1200Hz,阻带最小衰减αs=?
dB,令T=2)生成与之相对应的模拟滤波器h(t);
④设计与之相对应的DLPF,给出窗函数及所设计滤波器的幅度特性,并对比理想冲激响应
和实际冲击响应,对比分析DLPF幅频特性是否符合要求;
⑤试说明不同窗函数对所设计数字滤波器性能的影响;
⑥产生一个有干扰频率的时域序列(借助FFT分析说明其有干扰),使之通过所设计的DLPF,
【设计原理】
FIR数字滤波器设计最简单的方法是窗函数法,通常也称之为傅里叶级数法。
假设理想滤波器的频率响应
的表示为:
由于滤波器的频率响应与单位冲击响应序列是傅里叶变换对,据此:
求得理想滤波器的单位冲击响应
后,可得到该离散滤波器的系统传递函数
:
注意,该
为无限长序列,因此
是物理不可实现的。
为了使系统变为物理可实现的,且使实际的FIR滤波器频率响应尽可能逼急理想滤波器的频率响应,采用窗函数将无线脉冲响应
截取一段好
来近似表示
,可得:
,从而有
式中N表示窗口长度,这样
就是物理可实现的系统。
【设计过程】
先产生一个理想低通
,分别用三种不同的窗函数与之时域内点乘后,得到可物理实现的低通滤波器h(n),观察它的幅度相频特性。
产生一个正弦波,加上噪声后得到一个有毛刺的正弦波,通过三种加不同窗的滤波器,得出三个虑完波的时域序列和频谱。
比较三个虑后的时域频域波形,比较出三种不同滤波器的优劣。
【实验结果及分析】
Blackman窗、哈明窗、汉宁窗:
加blackman窗后的系统脉冲响应:
加哈明窗后的系统脉冲响应:
加汉宁窗后的系统脉冲响应:
加blackman窗后的系统损耗函数曲线:
加哈明窗后的系统损耗函数曲线:
加汉宁窗后的系统损耗函数曲线:
产生的余弦信号和加噪后的幅度、频谱函数:
通过加blackman窗的FIR滤波器后的幅度、频谱函数:
通过加哈明窗的FIR滤波器后的幅度、频谱函数:
通过加汉宁窗的FIR滤波器后的幅度、频谱函数:
滤波器性能分析:
(rp:
通带最大衰减;
as:
阻带最小衰减)
Blackman窗:
rp1=0.0027
as1=73.4793
海明窗:
rp2=0.0282
as2=51.1241
汉宁窗:
rp3=0.0888
as3=43.9969
通过分别对系统加海明窗,汉宁窗,blackman窗,得到以上结果。
从加窗后系统的损耗函数曲线可以看出,blackman窗引起的过渡带加宽现象和阻带波动较小,即截断效应较小,而且通过比较可以看出,blackman窗还具有最小的通带最大衰减和阻带最小衰减,综合比较发现blackman窗的各项性能优于哈明窗和汉宁窗,所以,blackman窗设计出的FIR滤波器滤波性能最好。
【实验心得】
在这次数字信号处理课程设计中,我通过选择基于窗函数设计法线性相位型FIR数字低通滤波器设计这个课题,熟练掌握了窗函数法设计线性相位型FIR滤波器的方法,尤其对blackman窗、哈明窗、汉宁窗这三种窗函数法设计的滤波器有了深入的认识,对FIR滤波器的设计过程与方法有了更牢固的掌握。
另外,通过上机使用MATLAB做此次课设,也使我学到了很多MATLAB方面的知识,特别是将MATLAB于数字信号处理结合起来的这部分内容有了更多的掌握,也对MATLAB的使用更为熟悉。
参考文献
1、高西全,数字信号处理(第三版)西安电子科技大学出版社
2、程佩青,数字信号处理教程(第三版),清华大学出版社
3、MATLAB7.0在数字信号处理中的应用
罗军辉
机械工业出版社
4、飞思科技产品研发中心编著.MATLAB7辅助信号处理技术与应用[M].北京:
电子
工业出版社,2005.
5、数字信号处理原理及其MATLAB实现
从玉良
电子工业出版社
【实验部分代码】
function[hd]=ideal_lp(wc,M)
alpha=(M-1)/2;
n=[0:
(M-1)];
m=n-alpha+eps;
hd=sin(wc*m)./(pi*m);
%求线性低通滤波器的单位脉冲响应
%blackman窗
clc,clear
fb=1000;
fc=1200;
fs=4000;
%对信号的采样频率为4000
ws=2*pi*fc/fs%t通带截至频率
wp=2*pi*fb/fs%阻带截至频率
tr_width=ws-wp;
%求过渡带
M=ceil(11*pi/tr_width)+1%利用blackman窗的过渡带=(11pi/M),求窗宽M
n=0:
1:
M-1;
wc=(ws+wp)/2;
%求通带截止频率wc
m=n-alpha;
h=sin(wc*m)./(pi*m);
hd=ideal_lp(wc,M);
%求系统单位脉冲响应hd(n)
w_black=(blackman(M))'
;
%根据阶数M求blackman窗
h=hd.*w_black;
%对FIR滤波器低通冲激响应加窗,h为低通滤波器的冲击相应
[H,w]=freqz(h,1,1000,'
whole'
);
db=20*log10((abs(H))/max(abs(H)));
%求FIR滤波器频响的dB值
delta_w=2*pi/1000;
%将2pi等分1000份
rp1=-min(db(1:
(wp/delta_w+1)))%求通带最大衰减
as1=-max(db(ws/delta_w+1:
501))%求阻带最小衰减
%海明窗
ws=2*pi*fc/fs;
%t通带截至频率
M=ceil(6.6*pi/tr_width)+1%利用Hamming窗的过渡带=(6.6pi/M),求窗宽M
%求单位脉冲响应hd(n)
w_ham=(hamming(M))'
h=hd.*w_ham;
%求FIR滤波器低通冲激响应h(n)
rp2=-min(db(1:
as2=-max(db(ws/delta_w+1:
%汉宁窗
fs=5000;
M=ceil(6.2*pi/tr_width)+1%利用Hanning窗的过渡带=(6.2pi/M),求窗宽M
w_han=(hanning(M))'
h=hd.*w_han;
db=20*log10((abs(H)+eps)/max(abs(H)));
rp3=-min(db(1:
as3=-max(db(ws/delta_w+1:
%产生干扰序列
figure(33);
clf;
%产生随机白噪声
t=0:
50;
m=cos(0.05*pi*t);
M=fft(m);
y=wgn(1,51,1);
%产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。
z=y+m;
Z=fft(z);
k=filter2(h,z);
K1=fft(k);