当前位置:首页 > FIR数字滤波器设计与实现
此例调用了fircls1函数。
在实际应用中,remez算法是一种比较常用的设计滤波器的算法。
其优点有:它靠一次次的迭代求得一组交错点组频率,避免了直接的烦琐的计算 下面列举使用REMEZ函数设计滤波器的例子
例四:用雷米兹算法设计一个滤波器.程序及波形如下。 Tsign of equiripple liner-phrase fir filters N=14;
f=[0 0.2 0.4 0.7 0.8 1.0]; m=[0.1 0.1 1 1 0.1 0.1]; b=remez(N,f,m);
>> [h,w]=freqz(b,1,256); >> mag=20*log10(abs(h)); >> plot(w/pi,mag);grid; >> figure; >> k=0:N; >> stem(k,b);
例五: 用凯塞窗设计一FIR低通滤波器,低通边界频率
,阻带衰减
不小于50dB。
来决定凯塞窗的N和
,阻带边界频率
解 :首先由过渡带宽和阻带衰减
凯塞窗设计对应的MATLAB程序为: wn=kaiser(30,4.55); nn=[0:1:29]; alfa=(30-1)/2;
hd=sin(0.4*pi*(nn-alfa))./(pi*(nn-alfa)); h=hd.*wn';
[h1,w1]=freqz(h,1);
plot(w1/pi,20*log10(abs(h1))); axis([0,1,-80,10]);
grid; xlabel('归一化频率/?') ; ylabel('幅度/dB')
例六:利用雷米兹交替算法,设计一个线性相位低通FIR数字滤波器,其指标为:通带边界频率fc=800Hz,阻带边界fr=1000Hz,通带波动 阻带最小衰减At=40dB,采样频率fs=4000Hz。
解:
在MATLAB中可以用remezord 和remez两个函数设计,其结果如图,MATLAB程序如下: fedge=[800 1000]; mval=[1 0];
dev=[0.0559 0.01]; fs=4000;
[N,fpts,mag,wt]=remezord(fedge,mval,dev,fs); b=remez(N,fpts,mag,wt); [h,w]=freqz(b,1,256);
plot(w*2000/pi,20*log10(abs(h))); grid;
xlabel('频率/Hz') ylabel('幅度/dB')
函数remezord中的数组fedge为通带和阻带边界频率,数组mval是两个边界处的幅值,而数组dev是通带和阻带的波动,fs是采样频率单位为Hz。
(四)设计心得与体会
作为一个电子信息类专业的学生,数字信号处理是我们的重要专业课程,是我们将来从
事通信事业的基本保障。通过对该课程的学习,我们对数字通信理论有了更进一步的理解;通过对该数字滤波器的设计,我们也了解了数字滤波器的基本结构和基本特性,而且还掌握了基本的撰写论文的形式和思路。通过对作为该论文的重要部分—MATLAB的运用,从而大大提高了我们对集计算,编程与绘图于一体的该应用软件的运用能力。MATLAB包含的几十个工具箱,覆盖了通信,自动控制,信号处理,图象处理,财经,化工,生命科学等科学技术领域,汲取了当今世界这些领域的最新研究成果,已经成为从事科学研究和工程设计不可缺少的工具软件。该论文将数字信号处理的 有关教学内容和MATLAB语言紧密,有机地结合起来,使我们在学习基础理论知识的同时学会了应用MATLAB,在学习应用MATLAB的同时,加深了对基本知识的理解,增强了我们的计算机应用能力,提高了学习效果。总之,无论是从教学知识掌握出发,还是从对MATLAB的应用出发,通过对数字滤波器的设计,我们受益非浅。
参考文献:
[1] 程佩青编. 数字信号处理教程. 北京:清华大学出版社,2001
[2] 丁玉美,高西全编著. 数字信号处理.西安:西安电子科技大学出版社,2000
[3] 黄文梅,熊桂林,杨勇编著. 信号分析与处理-MATLAB语言及应用.长沙:国防科技大学出版社
共分享92篇相关文档