基于频率采样法FIR数字滤波器的设计.docx
- 文档编号:5410422
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:6
- 大小:91.67KB
基于频率采样法FIR数字滤波器的设计.docx
《基于频率采样法FIR数字滤波器的设计.docx》由会员分享,可在线阅读,更多相关《基于频率采样法FIR数字滤波器的设计.docx(6页珍藏版)》请在冰豆网上搜索。
基于频率采样法FIR数字滤波器的设计
信息工程学院
课程设计报告
课程:
数字信号处理
学号:
********************
姓名:
班级:
通信0903
教师:
日期:
2012-5-22
摘要:
随着计算机和信息科学的飞速发展,数字信号处理逐渐发展成为一门独立的学科,成为信息科学的重要组成部分。
在语音处理、雷达、图形处理、通信、生物医学工程等众多的领域中得到广泛的应用。
下面主要介绍数字信号处理的使用软件MATLAB以及使进行语音信号的分析处理、应用。
MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。
由于信号与系统课程的许多内容都是基于公式演算,而借助符号数学工具箱提供的符号运算功能基本满足信号与系统课程的需求。
MATLAB主要包括五大通用的功能:
数值计算功能(Nemeric)符号运算功能,数据可视化功能(Graphic);数据图形文字统一处理功能(Notebook);建模仿真可视化功能(Simulink)本次数字信号处理课程设计采用Matlab和建模仿真可视化功能(Simulink)本次数字信号处理课程设计采用Matlab软件对数。
例如,解微分方程、傅里叶正反变换、拉普拉斯正反变换、z正反变换等。
MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲激响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分域分析、零极点图绘制等内容。
数值计算仿真分析可以帮助我们能更深入分析系统S域分析、零极点图绘制等内容。
并为将来使用MATLAB进行信号处理领域的各种分析和实际应用打下基础
设计名称:
基于频率采样法FIR数字滤波器的设计
设计内容要求:
采取最优化的设计方法通过频率采样实现FIR滤波器,这种方法是为了得到更大的衰减,增大M值,并使过渡带中的样本成为自由样本,这个问题可以采用线性规划技术来解决。
在下面的例子中,仍设低通滤波器指标为:
设计原理与说明:
FIR滤波器设计方法:
频率采样法的基本思想是使所设计的FIR数字滤波器的频率特性在某些离散频率点上的值准确地等于所需滤波器在这些频率点处的值,在其它频率处的特性则有较好的逼近。
在实际使用时,为了设计线性相位的FIR滤波器,采样值H(k)要满足一定的约束条件,具有线性相位FIR滤波器,其单位采样响应函数h(n)是实序列,且满足h(n)=±(h-1-n),由此得到幅频和
相频特性就是对H(k)的约束。
有限冲激响应(FIR)滤波器的基本结构是一个分节的延时线,把每一节的输出加权累加,得到滤波器的输出。
滤波网络传输函数为:
。
根据频域的采样定理,对给定理想滤波器的频率响应
进行等间隔的采样:
k=0,1,……N-1
(1)
|把
当作待设计的FIR数定滤波器的频率特性的采样值H(k),即:
k=0,1⋯.,N-l
(2)
由H(k)通过IDFT可得有限长序列h(n):
n=0,1,⋯,N-1(3)
利用频域的N个采样点的值,通过下式求出滤波器的系统函数和频率响应:
其中
是一个内插函数,即:
所以,在每个采样点上,频率响应
严格与理想特性H(k)一致,在采样点之间,频率响应由各采样点的内插函数延伸叠加而形成,因而有一定的逼近误码差,误差大小与理想频率响应的曲线形状有关。
理想特性平滑,则误差小,反之,误差大,并且在理想频率响应的不连续点处会产生肩峰和波纹。
设计过程(步骤)或程序代码:
仿真流程:
频率采样技术是基于频率采样理论的一种设计方法,一个任意长的序列,对它的频谱进行N等分间隔抽样,利用离散傅里叶反变换,可以得到一个N点有限长序列,这个有限长序列是原序列以N为周期的周期序列的主值序列,它是原序列的近似,因而它的频率特性也将逼近原序列所对应的频率特性,对于一个理想频响
,其对应的单位抽样响应是
,对
在单位圆上作N等分间隔抽样得到N个频率采样值
,由
经IDFT得到N点有限长序列h(n)。
代码:
频率取样法设计FIR滤波器的程序如下:
%T1=0.5
%设计条件:
wp=0.2pi;ws=0.3pi;Rp=0.25dB;Rp=50dB;
M=40;alpha=(M-1)/2;l=0:
M-1;w1=(2*pi/M)*l;
Hrs=[ones(1,5),0.5,zeros(1,29),0.5,ones(1,4)];%理想滤波器振幅响应抽样
Hdr=[1,1,0,0];wdl=[0,0.25,0.25,1];%理想滤波器振幅响应
k1=0:
floor((M-1)/2);k2=floor((M-1)/2)+1:
M-1;
angH=[-alpha*(2*pi)/M*k1,alpha*(2*pi)/M*(M-k2)];
H=Hrs.*exp(j*angH);
h=real(ifft(H,M));
[db,mag,pha,grd,w]=freqz_m(h,1);
[Hr,ww,a,L]=Hr_type2(h);
subplot(1,1,1);
subplot(2,2,1);plot(w1(1:
21)/pi,Hrs(1:
21),'o',wdl,Hdr);
axis([0,1,-0.1,1.1]);title('FrequencySamples:
M=40,T1=0.5');
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);
set(gca,'YTickMode','manual','YTick',[0,0.5,1]);grid
xlabel('frequencyinpiunits');ylabel('Hr(k)')
subplot(2,2,2);stem(l,h);axis([-1,M,-0.1,0.3]);
title('ImpulseResponse');xlabel('n');ylabel('h(n)')
xa=0.*l;
holdon
plot(l,xa,'k');
holdoff
subplot(2,2,3);
plot(ww/pi,Hr,w1(1:
21)/pi,Hrs(1:
21),'o');
axis([0,1,-0.2,1.2]);title('AmplitudeResponde')
xlabel('frequencyinpiunits');ylabel('Hr(w)')
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);
set(gca,'YTickMode','manual','YTick',[0,0.5,1]);grid
subplot(2,2,4);plot(w/pi,db);axis([0,1,-100,10]);
title('MagnitudeResponse');xlabel('frequencyinunits');ylabel('Decibels');
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);
set(gca,'YTickMode','manual','YTick',[-30,0]);grid
set(gca,'YTickLabelMode','manual','YTickLabels',[30;0])
程序中可能用到的函数M文件:
Hr_type2(h)
function[Hr,ww,a,L]=Hr_type2(h)
M=length(h);L=M/2;
a=2*h(L:
-1:
1);
n=[1:
1:
L];n=n-0.5;
ww=[0:
1:
500]'*2*pi/500;
Hr=cos(ww*n)*a';
freqz_m
function[db,mag,pha,grd,w]=freqz_m(h,l)
[H,w]=freqz(h,l,1000,'whole');
H=(H(1:
1:
501))';w=(w(1:
501))';
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
grd=grpdelay(h,l,w);
实验结果图形:
结论:
频率采样法的优点是可以在频域直接设计,并且适合于最优化设计,MATLAB仿真结果表明:
对于频率响应只有少数几个非零值采样的窄带选频滤波器特别有效,且效果也很好。
但由于频率抽样点的分布必须符合一定规律,在规定通、阻带截止频率方面不够灵活。
比如当截止频率不是整数倍数时会产生较大逼近误差.
这次课程设计基本是大家一起完成的,应为我没有电脑所以只能在同学做完以后自己在去尝试。
由于《数字信号处理》是上个学期的课程所以一些知识点有所遗忘还好书还在,在图书馆借阅了好几本本有关有MATLAB的数字信号处理设计的书,往往一本书里的内容覆盖不全要看好几本书,所以这段时间自己过的还算很匆忙。
分析课题题目:
应用MATLAB对语音信号进行谱分析及滤波,考虑到几个方面的内容:
(1)加强对MATLAB基础知识的学习,尤其MATLAB在信号处理这方面的学习,这就需要多方面的查找资料,如上互联网,图书馆等;
(2)加强学习信号处理知识理论尤其是FFT频谱变换理论和各种数字滤波器设计理论;(3)要突出重点,其重点是谱分析和数字滤波器的设计和分析结果。
通过为期两周的实习,大家都有自己的感想。
现在总结下自己的心得体会:
(1)通过数字信号处理课程设计,使我进一步巩固了所学的知识,将所学知识进行实践。
同时我学会了MATLAB的使用方法,熟悉了滤波器的功能,使信号在计算机中得到处理。
(2)在知识有限的情况下,只有通过查阅资料来解决问题,在查阅资料中,我们也复习了信息检索的相关知识,也增加了对信息检索这门课程的认识。
我还感到合作的重要性,实验中有时候很长时间都得不到结果,这时只有请教同学,了解他人的思维,弥补自己的不足,这样又使自己得到进步。
同时在老师的耐心指导下和在其他同学的大力帮助下,终于对本次课程设计有了深刻的了解。
(3)在本次课程设计中,遇到了许许多多的困难,在我的坚持不懈下终于完成了本次课程设计,在巩固了已学知识点的基础上,对本门课程有了更深刻的了解,大大的拓宽了我的知识面,谢谢老师们的培养!
此次实习不仅对数字信号有了进一步的了解还学会了应用MATLAB软件相信对以后的学习或者参加工作会有一定的帮助。
最后谢谢老师和同学们的指导和建议。
参考文献:
[1]程佩清.数字信号处理教程[M].北京:
清华大学出版社。
1995.
[2]孙强.运用MATLAB实现数字滤波器的设计[J].电脑学习,2005
(2):
32-33.
[3]蔡建平.黄晓红,孙丽英,等.基于频率采样法的线性相位滤波器设计及MATI.AB仿真[J].电气自动化设备,2006,26(7):
59—61
[4]李勇,徐震.MATLAB辅助现代工程数字信号处理[M].西安:
西安电子科技大学出版社,2002.
[5]sAL0uss.ThedesignoflinearphaseFIRfilterusingIDFT[J].IEEETransactiononEducation,1998,41(6):
229—261.
[6]MITRASK.Digitalsignalprocessing,acomputer—basedapproach[M].北京:
清华大学出版社。
2001.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 频率 采样 FIR 数字滤波器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)