FIR数字滤波器设计实验_完整版
实验六FIR滤波器的设计

实验六、用窗函数法设计FIR 数字滤波器一、实验目的:(1)熟悉基本的窗函数,及其特点。
(2)掌握用窗函数法设计FIR 数字滤波器的原理和方法。
(3)熟悉线性相位FIR 数字滤波器特性。
二.实验原理(一)FIR 滤波器的设计FIR 滤波器具有严格的相位特性,这对于语音信号处理和数据传输是很重要的。
目前FIR 滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。
本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。
它是从时域出发,用一个窗函数截取一个理想的)(n h d 得到h(n),以有限长序列h(n)近似理想的)(n h d :如果从频域出发,用理想的)(jw d e h 在单位圆上等角度取样得到H (k ),根据h(k)得到H(z)将逼近理想的)(z H d 这就是频率取样法。
(二)窗函数设计法同其它的的数字滤波器设计的方法一样,用窗函数设计滤波器也是首先要对滤波器提出性能指标。
一般是给定一个理想的频率响应)(jw d e h ,使所设计的FIR 滤波器的频率响应)(jw e h 去逼近所要求的理想的滤波器的响应)(jw d e h 窗函数设计的任务在于寻找一个可实现(有限长单位脉冲响应)的传递函数。
∑-=-=1)()(N n jw jwn e n h e H去逼近)(jw d e h 。
我们知道,一个理想的频率响应)(jw d e h 的傅里叶变换⎰=ππ20)(21)(dw e e H n h jwnjw d d 所得到的理想的单位脉冲响应)(n h d 往往是一个无限长序列,对)(n h d 经过适当的加权、截取处理才得到一个所需要的有限长脉冲响应序列。
对应不同的加权、截断,就有不同的窗函数。
所要寻找的滤波器脉冲响应就等于理想脉冲响应和窗函数的乘积。
即:)()()(n w n h n h d =由此可见,窗函数的性质就决定了滤波器的品质。
实验7 窗函数法设计FIR数字滤波器

实验7窗函数法设计FIR数字滤波器一、实验目的掌握窗函数法设计F1R数字滤波器的原理和具体方法二、实验设备与环境计算机、Mat1ab软件环境三、实验基础理论1>基本原理窗函数设计法的基本思想为,首先选择一个适当的理想的滤波器Hd(,3),然后用窗函数截取它的单位脉冲响应%(九),得到线性相位和因果的FIR滤波器,这种方法的重点是选择一个合适的窗函数和理想滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。
2、设计步骤(1)给定理想滤波器的频率响应Hd("3),在通带上具有单位增益和线性相位,在阻带上具有零响应。
一个带宽为g(3c<Tr)的低通滤波器由下式给定h(e j^=(eW∣ω∣≤ωc虱)一1Oωc<∣ω∣<π其中α为采样延迟,其作用是为了得到因果的系统。
(2)确定这个滤波器的单位脉冲响应为了得到一个h(n)长度为N的因果的线性相位FIR滤波器,我们令N-Ia=-2-(3)用窗函数截取hd(τι)得到所设计FIR数字滤波器h(n)h(n)=h d(n)w(n)3、窗函数的选择常用的窗函数有矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗等。
Mat1ab提供了一些函数用于产生窗函数,如下表所示:在设计过程中我们需要根据给定的滤波器技术指标,选择滤波器长度N 和窗函数3(n)°表7.2列出了常用的窗函数的一些特性,可供设计时参考。
其中幻是修正的零阶贝塞尔函数,参数B 控制最小阻带衰减,这种窗函数对于相同的N 可以提供不同的过渡带宽。
由于贝塞尔函数比较更杂,这种窗函数的设计方程很难推导,然而幸运的是,有一些经验设计方程可以直接使用。
已知给定的指标叫Msc,Rp 和4,滤波器长度N 和凯瑟窗参数B 可以按如下凯瑟窗设计方程给出过渡带宽:∆ω=ωst -ωp入一7.95 2.285∆ω_(0.1102(4-8.7) ,P=iθ.5842(4-21)04+0.07886(4-21), 四、实验内容1、设计一个数字低通FIR 滤波器,其技术指标如下ωp =0.2τr,RP=0.25dBωst =0.3τr,A s =50dB分别采用矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗设计该滤波器。
实验四FIR数字滤波器的设计

实验四FIR数字滤波器的设计
FIR(有限冲击响应)数字滤波器是一种常见的数字信号处理器件,
可以用于滤波、降噪等应用。
下面是一种FIR数字滤波器的设计流程:
1.确定滤波器的需求:首先确定需要滤除的频率范围和滤波的类型,
例如低通、高通、带通、带阻等等。
2.设计滤波器的频率响应:根据滤波器的需求,设计其理想的频率响应。
可以使用窗函数、最小二乘法等方法获得一个理想的滤波器响应。
3.确定滤波器的阶数:根据设计的频率响应,确定滤波器的阶数。
阶
数越高,滤波器的响应越陡峭,但计算复杂度也会增加。
4.确定滤波器的系数:根据滤波器的阶数和频率响应,计算滤波器的
系数。
可以使用频域窗函数或时域设计方法。
5.实现滤波器:根据计算得到的滤波器系数,实现滤波器的计算算法。
可以使用直接形式、级联形式、传输函数形式等。
6.评估滤波器的性能:使用所设计的FIR滤波器对输入信号进行滤波,评估其滤波效果。
可以使用频率响应曲线、幅频响应、群延时等指标进行
评估。
7.调整滤波器设计:根据实际的滤波效果,如果不满足需求,可以调
整滤波器的频率响应和阶数,重新计算滤波器系数,重新实现滤波器。
以上是FIR数字滤波器的基本设计流程,设计过程中需要考虑滤波器
的性能、计算复杂度、实际应用需求等因素。
实验五FIR数字滤波器的设计

实验五FIR数字滤波器的设计FIR数字滤波器(Finite Impulse Response)是一种数字滤波器,它的输出仅由有限数量的输入样本决定。
设计FIR数字滤波器的步骤如下:1.确定滤波器的要求:首先需要明确滤波器的频率响应、截止频率、通带和阻带的幅频响应等要求。
2.选择滤波器类型:根据实际需求选择合适的滤波器类型,如低通滤波器、高通滤波器、带通滤波器或带阻滤波器等。
3.确定滤波器的阶数:根据滤波器类型和要求,确定滤波器的阶数。
通常情况下,滤波器的阶数越高,能够实现更陡峭的频率响应,但会引入更多的计算复杂度。
4.设计滤波器的理想频率响应:根据滤波器的要求和类型,设计滤波器的理想频率响应。
可以使用常用的频率响应设计方法,如窗函数法、最小最大法或线性相位法等。
这些方法可以实现平滑的频率响应或者良好的阻带衰减。
5.确定滤波器的系数:根据设计的理想频率响应,通过反变换或优化算法确定滤波器的系数。
常用的优化算法包括频域方法、时域方法、最小二乘法或最小相位法等。
6.实现滤波器:将所得的滤波器系数转化为滤波器的差分方程形式或直接计算滤波器的频域响应。
7.评估滤波器性能:使用合适的测试信号输入滤波器,并对滤波器的输出进行评估。
可以使用指标,如频率响应曲线、幅度响应误差、相位响应误差或阻带衰减等指标来评估滤波器性能。
8.优化滤波器性能:根据评估结果,进行必要的修改和优化设计,以满足滤波器的要求。
通过以上步骤,可以设计出满足需求的FIR数字滤波器。
需要注意的是,FIR数字滤波器设计的复杂度和性能需要权衡与平衡,以满足实际应用的要求。
FIR数字滤波器设计实验_完整版

FIR数字滤波器设计实验_完整版本实验旨在设计一种FIR数字滤波器,以滤除信号中的特定频率成分。
下面是完整的实验步骤:材料:-MATLAB或其他支持数字信号处理的软件-计算机-采集到的信号数据实验步骤:1.收集或生成需要滤波的信号数据。
可以使用外部传感器采集数据,或者在MATLAB中生成一个示波器信号。
2. 在MATLAB中打开一个新的脚本文件,并导入信号数据。
如果你是使用外部传感器采集数据,请将数据以.mat文件的形式保存,并将其导入到MATLAB中。
3.对信号进行预处理。
根据需要,你可以对信号进行滤波、降噪或其他预处理操作。
这可以确保信号数据在输入FIR滤波器之前处于最佳状态。
4.确定滤波器的设计规范。
根据信号的特性和要滤除的频率成分,确定FIR滤波器的设计规范,包括滤波器的阶数、截止频率等。
你可以使用MATLAB中的函数来帮助你计算滤波器参数。
5. 设计FIR滤波器。
使用MATLAB中的fir1函数或其他与你所使用的软件相对应的函数来设计满足你的规范条件的FIR滤波器。
你可以选择不同的窗函数(如矩形窗、汉宁窗等)来平衡滤波器的频域和时域性能。
6. 对信号进行滤波。
将设计好的FIR滤波器应用到信号上,以滤除特定的频率成分。
你可以使用MATLAB中的conv函数或其他相应函数来实现滤波操作。
7.分析滤波效果。
将滤波后的信号与原始信号进行比较,评估滤波效果。
你可以绘制时域图、频域图或其他特征图来分析滤波效果。
8.优化滤波器设计。
如果滤波效果不理想,你可以调整滤波器设计参数,重新设计滤波器,并重新对信号进行滤波。
这个过程可能需要多次迭代,直到达到最佳的滤波效果。
9.总结实验结果。
根据实验数据和分析结果,总结FIR滤波器设计的优点和缺点,以及可能的改进方向。
通过完成以上实验步骤,你将能够设计并应用FIR数字滤波器来滤除信号中的特定频率成分。
这对于许多信号处理应用都是非常重要的,如音频处理、图像处理和通信系统等。
实验六FIR数字滤波器的设计

实验六FIR数字滤波器的设计实验六FIR数字滤波器的设计⼀、实验⽬的(1)掌握⽤窗函数法设计FIR数字滤波器的原理和⽅法。
(2)掌握⽤等波纹最佳逼近法设计FIR数字滤波器的原理和⽅法。
(3)掌握⽤海明窗设计FIR数字滤波器的原理和⽅法。
(4)学会调⽤MATLAB函数设计与实现FIR滤波器。
⼆、实验内容及步骤(1)掌握⽤窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理;(2)调⽤信号产⽣函数xtg产⽣具有加性噪声的信号xt,并⾃动显⽰xt及其频谱;图1 具有加性噪声的信号x(t)及其频谱(3)请设计低通滤波器,从⾼频噪声中提取xt中的单频调幅信号,要求信号幅频失真⼩于0.1dB,将噪声频谱衰减60dB。
先观察xt的频谱,确定滤波器指标参数。
(4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调⽤MATLAB函数fir1设计⼀个FIR低通滤波器。
并编写程序,调⽤MATLAB快速卷积函数fftfilt实现对xt的滤波。
绘图显⽰滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。
(5)重复(3),滤波器指标不变,但改⽤等波纹最佳逼近法,调⽤MATLAB函数remezord和remez设计FIR数字滤波器。
并⽐较两种设计⽅法设计的滤波器阶数。
(6)⽤海明窗设计⼀个阶数为48,通带范围为0.35pi≤w≤0.65pi 的带通线性相位滤波器。
提⽰:1.采样频率Fs=1000Hz,采样周期T=1/Fs;2.可选择滤波器指标参数:通带截⽌频率fp=120Hz,阻带截⾄频率fs=150Hz,换算成数字频率,通带截⽌频率p 20.24pfωπ=T=π,通带最⼤衰为0.1dB,阻带截⾄频率s 20.3sfωπ=T=π,阻带最⼩衰为60dB。
3.实验程序框图:图2 实验程序框图附件:(1)信号产⽣函数xtg程序清单:function xt=xtg(N)%实验五信号x(t)产⽣,并显⽰信号的幅频特性曲线%xt=xtg(N) 产⽣⼀个长度为N,有加性⾼频噪声的单频调幅信号xt,采样频率Fs=1000Hz%载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz. N=2000;Fs=1000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=Fc/10;mt=cos(2*pi*f0*t); %产⽣单频正弦波调制信号mt,频率为f0ct=cos(2*pi*fc*t); %产⽣载波正弦波信号ct,频率为fcxt=mt.*ct; %相乘产⽣单频调制信号xtnt=2*rand(1,N)-1; %产⽣随机噪声nt%=======设计⾼通滤波器hn,⽤于滤除噪声nt中的低频成分,⽣成⾼通噪声=======fp=150; fs=200;Rp=0.1;As=70; % 滤波器指标fb=[fp,fs];m=[0,1]; % 计算remezord函数所需参数f,m,devdev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];[n,fo,mo,W]=remezord(fb,m,dev,Fs); % 确定remez函数所需参数hn=remez(n,fo,mo,W); % 调⽤remez函数进⾏设计,⽤于滤除噪声nt中的低频成分yt=filter(hn,1,10*nt); %滤除随机噪声中低频成分,⽣成⾼通噪声yt%============================================ ====================xt=xt+yt; %噪声加信号fst=fft(xt,N);k=0:N-1;f=k/Tp;subplot(3,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)');axis([0,Tp/5,min(xt),max(xt)]);title('(a) 信号加噪声波形') subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('(b) 信号加噪声的频谱')axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度')(2)⽤窗函数法设计FIR滤波器% FIR数字滤波器设计及软件实现clear all;close all;%==调⽤xtg产⽣信号xt, xt长度N=1000,并显⽰xt及其频谱,=========N=1000;xt=xtg(N);fp=120; fs=150;Rp=0.2;As=60;Fs=1000; T=1/Fs; % 输⼊给定指标% (1) ⽤窗函数法设计滤波器wc=(fp+fs)/Fs; %理想低通滤波器截⽌频率(关于pi归⼀化)B=2*pi*(fs-fp)/Fs; %过渡带宽度指标Nb=ceil(11*pi/B); %blackman窗的长度Nhn=fir1(Nb-1,wc,blackman(Nb));Hw=abs(fft(hn,1024)); % 求设计的滤波器频率特性ywt=fftfilt(hn,xt,N); %调⽤函数fftfilt对xt滤波figure(2);subplot(3,1,1);myplot(hn,xt); %调⽤绘图函数myplot绘制损耗函数曲线y1t='y_w(t)';subplot(3,1,2);tplot(ywt,T,y1t);(3) % ⽤等波纹最佳逼近法设计滤波器fb=[fp,fs];m=[1,0]; % 确定remezord函数所需参数f,m,devdev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)]; [Ne,fo,mo,W]=remezord(fb,m,dev,Fs); % 确定remez函数所需参数hn=remez(Ne,fo,mo,W); % 调⽤remez函数进⾏设计Hw=abs(fft(hn,1024)); % 求设计的滤波器频率特性yet=fftfilt(hn,xt,N); % 调⽤函数fftfilt对xt滤波figure(3);subplot(3,1,1);myplot(hn,xt); %调⽤绘图函数myplot绘制损耗函数曲线y2t='y_e(t)';subplot(3,1,2);tplot(yet,T,y2t)(4) 上⾯代码调⽤的⼦函数:(4-1) myplot:计算时域离散系统损耗函数并绘制曲线图。
FIR数字滤波器设计实验_完整版

FIR数字滤波器设计实验_完整版
在FIR数字滤波器设计实验中,我们需要完成以下步骤:
1.确定滤波器的规格:包括滤波器的类型(低通、高通、带通或带阻)、截止频率、通带波纹、阻带衰减等。
2.选择适当的滤波器设计方法:常见的设计方法包括窗函数法、频率抽样法等。
3.根据选择的设计方法,计算滤波器的系数。
4.实现滤波器:根据计算得到的系数,编写程序在计算机或嵌入式系统中实现滤波器。
5.对输入信号进行滤波处理:将需要滤波的信号输入到滤波器中,获得滤波后的输出信号。
6.评估滤波效果:通过对比输入和输出信号,评估滤波器的性能,包括频率响应、相位响应、时域响应等。
完成FIR数字滤波器设计实验需要具备一定的信号处理和数字滤波器设计的知识,以及一些编程和实验能力。
实验中通常会使用MATLAB、Python等工具进行滤波器设计和信号处理的仿真和实现。
这样的实验对于学习信号处理和数字滤波器设计非常有帮助,可以加深对理论知识的理解,并锻炼实际应用的能力。
实验七FIR数字滤波器设计

实验七 FIR 数字滤波器设计一、实验目的1.掌握利用窗函数设计FIR 滤波器;2.掌握线性相位滤波器的特点及其应用。
二、背景知识1.线性相位FIR 滤波器特性:如果FIR 滤波器单位冲激响应h(n)为实数,0≤n ≤N-1,且满足以下条件,则这种FIR 滤波器具有严格线性相位。
具体分四种形式:1)N 为奇数,h(n)偶对称则频率响应:212/)1(0)cos()()(---=⎥⎥⎦⎤⎢⎢⎣⎡=∑N jw N n jw e wn n a e H 其中,231)21(2)()21()0(-≤≤--⋅=-=N n n N h n a N h a振幅响应为: ∑-==2/)1(0)cos()()(N n wn n a w Hr ,它不同于幅值特性|H(e jw )| 2)N 为偶数,h(n)偶对称 则频率响应:212/1)}21(cos{)()(--=⎥⎥⎦⎤⎢⎢⎣⎡-=∑N jw N n jw e n w n b e H 其中,21)2(2)(N n n N h n b ≤≤-⋅= 振幅响应为: ∑=-=2/1)}21(cos{)()(N n n w n b w Hr ,3)N 为奇数,h(n)奇对称则频率响应:]212[2/)1(1)sin()()(w N j N n jw e wn n c e H ----=⎥⎥⎦⎤⎢⎢⎣⎡=∑π 其中,211)21(2)(-≤≤--⋅=N n n N h n c 振幅响应为: ⎥⎥⎦⎤⎢⎢⎣⎡=∑-=2/)1(1)sin()()(N n wn n c w Hr )1()(n N h n h --±=4)N 为偶数,h(n)奇对称则频率响应:212/1)}21(sin{)()(--=⎥⎥⎦⎤⎢⎢⎣⎡-=∑N jw N n jw en w n d e H 其中,21)2(2)(Nn n Nh n d ≤≤-⋅=振幅响应为: ∑=-=2/1)}21(sin{)()(N n n w n d w Hr ,2.各种窗函数:略三、实验内容ing Program10_1, complete EXAMPLE10.13 of Page 424ing Program10_2, complete EXAMPLE10.15 of Page 4253. Using Program10_4, complete EXAMPLE10.24 of Page 4374. Using Program10_5, complete EXAMPLE10.25 of Page 438四、实验程序及结果五、参考程序:1.% Program 10_1% Estimation of FIR Filter Order Using remezord%fedge = input('Type in the bandedges = ');mval = input('Desired magnitude values in each band = '); dev = input('Allowable deviation in each band = ');FT = input('Type in the sampling frequency = ');[N, fpts, mag, wt] = remezord(fedge, mval, dev, FT); fprintf('Filter order is %d \n',N);2.% Program 10_2% Design of Equiripple Linear-Phase FIR Filters%format longfedge = input('Band edges in Hz = ');mval = input('Desired magnitude values in each band = '); dev = input('Desired ripple in each band =');FT = input('Sampling frequency in Hz = ');[N,fpts,mag,wt] = remezord(fedge,mval,dev,FT);b = remez(N,fpts,mag,wt);disp('FIR Filter Coefficients'); disp(b)[h,w] = freqz(b,1,256);plot(w/pi,20*log10(abs(h)));grid;xlabel('\omega/\pi'); ylabel('Gain, dB');3.% Program 10_4% Kaiser Window Generation%fpts = input('Type in the bandedges = ');mag = input('Type in the desired magnitude values = '); dev = input('Type in the ripples in each band = ');[N,Wn,beta,ftype] = kaiserord(fpts,mag,dev)w = kaiser(N+1,beta); w = w/sum(w);[h,omega] = freqz(w,1,256);plot(omega/pi,20*log10(abs(h)));grid;xlabel('\omega/\pi'); ylabel('Gain, dB');4.% Program 10_5% Lowpass Filter Design Using the Kaiser Window%fpts = input('Type in the bandedges = ');mag = input('Type in the desired magnitude values = '); dev = input('Type in the ripples in each band = ');[N,Wn,beta,ftype] = kaiserord(fpts,mag,dev)kw = kaiser(N+1,beta);b = fir1(N,Wn, kw);[h,omega] = freqz(b,1,512);plot(omega/pi,20*log10(abs(h)));grid;xlabel('\omega/\pi'); ylabel('Gain, dB');。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
班级:姓名:学号:FIR数字滤波器设计实验报告一、实验目的1.掌握FIR数字滤波器的设计方法;2.熟悉MATLAB信号处理工具箱的使用;3.熟悉利用MATLAB软件进行FIR数字滤波器设计,以及对所设计的滤波器进行分析;4.了解FIR滤波器可实现严格线性相位的条件和特点;5.熟悉FIR数字滤波器窗函数设计法的MATLAB设计,并了解利用窗函数法设计FIR滤波器的优缺点;6.熟悉FIR数字滤波器频率采样设计法的MATLAB设计,并了解利用频率采样法设计FIR滤波器的优缺点;7.熟悉FIR数字滤波器切比雪夫逼近设计法的MATLAB设计,并了解利用切比雪夫逼近法设计FIR滤波器的优缺点。
二、实验设备及环境1.硬件:PC机一台;2.软件:MATLAB(6.0版以上)软件环境。
三、实验内容及要求1.实验内容:基于窗函数设计法、频率采样设计法和切比雪夫逼近设计法,利用MATLAB软件设计满足各自设计要求的FIR数字低通滤波器,并对采用不同设计法设计的低滤波器进行比较。
2.实验要求:(1)要求利用窗函数设计法和频率采样法分别设计FIR 数字低通滤波器,滤波器参数要求均为:0.3c w π=。
其中,窗函数设计法要求分别利用矩形窗、汉宁窗和布莱克曼窗来设计数字低通滤波器,且21N ≥,同时要求给出滤波器的幅频特性和对数幅频特性; 频率采样法要求分别利用采样点数21N =和63N =设计数字低通滤波器,同时要求给出滤波器采样前后的幅频特性,以及脉冲响应及对数幅频特性。
(2)要求利用窗函数设计法和切比雪夫逼近法分别设计FIR 数字低通滤波器,滤波器参数要求均为:0.2π,0.25dB,0.3π,50dB p p s s ωαωα====其中,窗函数设计法要求利用汉明窗来设计数字低通滤波器,且66N ≥,同时要求给出滤波器理想脉冲响应和实际脉冲响应,汉名窗和对数幅频特性; 切比雪夫逼近法要求采用切比雪夫Ⅰ型,同时要求给出滤波器的脉冲响应、幅频特性和误差特性。
(3)将要求(1)和(2)中设计的具有相同参数要求,但采用不同设计方法的滤波器进行比较,并以图的形式直观显示不同设计设计方法得到的数字低通滤波器的幅频特性的区别。
四、实验步骤1.熟悉MATLAB 运行环境,命令窗口、工作变量窗口、命令历史记录窗口,FIR 常用基本函数;2.熟悉MATLAB 文件格式,m 文件建立、编辑、调试;3.根据要求(1)的内容,设计FIR数字低通滤波器,建立M文件,编写、调试、运行程序;4.根据要求(2)的内容,设计FIR数字低通滤波器,建立M文件,编写、调试、运行程序;5.将要求(1)和(2)中设计的具有相同参数要求,但采用不同设计方法的滤波器进行比较分析;6.记录实验结果;7.分析实验结果;8.书写实验报告。
五、实验预习思考题1.FIR滤波器有几种常用设计方法?这些方法各有什么特点?2.FIR滤波器线性相位的条件和特点是什么?3. FIR数字滤波器窗函数设计法的流程是什么?具有什么样的优缺点?4.FIR数字滤波器频率采样设计法的流程是什么?具有什么样的优缺点?5.FIR数字滤波器切比雪夫逼近设计法的流程是什么?具有什么样的优缺点?6.利用MATLAB设计FIR数字滤波器以及进行分析时,都有哪些常用的基本函数?六、实验结果记录(一)满足实验要求(1)的数字低通滤波器设计实验记录1、利用窗函数法设计FIR低通滤波器得到的实验结果:滤波器的幅频特性和对数幅频特性如下:(N=21)0123400.20.40.60.811.21.401234-140-120-100-80-60-40-200202、利用频率采样法设计FIR 低通滤波器得到的实验结果:(1) 采样点数21N 时,通滤波器采样前后的幅频特性,以及脉冲响应及对数幅频特性如下:0.51H d (k)5101520脉冲响应h (n )0.510.51幅度响应H (w )0.51-60-40-200幅度响应w in pi20l o g H (w )(2) 采样点数63N 时,通滤波器采样前后的幅频特性,以及脉冲响应及对数幅频特性如下:0.51H d (k)204060脉冲响应h (n )0.510.51幅度响应H (w )0.51-60-40-200幅度响应w in pi20l o g H (w )(二)满足实验要求(2)的数字低通滤波器设计实验记录 1、利用窗函数法设计FIR 低通滤波器得到的实验结果:滤波器的理想脉冲响应和实际脉冲响应,汉名窗和对数幅频特性如下:204060理想脉冲响应h d (n )0204060汉明窗w (n )204060实际脉冲响应h (n )00.51幅度响应d B2、利用切比雪夫逼近法设计FIR 低通滤波器得到的实验结果: 滤波器的脉冲响应、幅频特性和误差特性如下:2040脉冲响应01234-100-50050对数幅频特性1234绝对幅频特性1234-0.02-0.0100.010.02误差特性七、实验分析针对上述实验结果,可以展开如下几个方面的实验分析:1.利用窗函数设计法设计FIR 数字低通滤波器,对于同样的设计指标,采用不同的窗函数,得到的数字低通滤波器的幅频特性有差异,根据实验发现:用矩形窗、汉宁窗和布莱克曼窗设计得到的数字低通滤波器中,汉宁窗和布莱克曼窗的幅度特性差别不大,而矩形窗的幅度特性在通带和阻带上相对于汉宁窗和布莱克曼窗存在着较大的纹波。
这个实验结果很好的验证了教材上关于不同窗函数所得滤波器的幅度特性差异的理论。
2. 利用频率采样法设计FIR 低通滤波器,对于同样的设计指标,采用不同的采样点数,得到的数字低通滤波器的幅频特性有差异,根据实验发现:N 较大的数字低通滤波器相对于N 较小的数字低通滤波器,具有更为密集的脉冲响应,同时幅频特性在通带和阻带内具有频率更大幅度相对较小的振荡纹波。
这个实验结果很好的验证了教材上关于不同采样点数得滤波器的脉冲响应和幅度特性差异的理论。
3. 利用切比雪夫逼近法(切比雪夫Ⅰ型)设计FIR低通滤波器,根据实验发现:利用切比雪夫Ⅰ型设计FIR低通滤波器得到的幅频特性通带具有较为明显的一致纹波,阻带纹波较小,因此其误差特性,在通带内具有较大的等纹波误差,阻带内具有较小的等纹波误差。
另外,对于同样的设计指标,采用窗函数设计法得到的数字低通滤波器相对于利用切比雪夫逼近法(切比雪夫Ⅰ型)设计FIR低通滤波器,在通带和阻带内均有较大的不等纹波。
八、实验体会通过本次实验主要有如下体会:1.掌握了FIR数字滤波器的设计方法;2.熟悉了MATLAB信号处理工具箱的使用;3.熟悉了利用MATLAB软件进行FIR数字滤波器设计,以及对所设计的滤波器进行分析;4.进一步熟悉了FIR数字滤波器窗函数设计法的MATLAB设计,并熟悉了利用窗函数法设计FIR滤波器的特点;5.进一步熟悉了FIR数字滤波器频率采样设计法的MATLAB设计,并熟悉了利用频率采样法设计FIR滤波器的特点;6.进一步熟悉了FIR数字滤波器切比雪夫逼近设计法的MATLAB设计,并了解了利用切比雪夫逼近法设计FIR滤波器的特点。
九、附录:设计的程序代码1.满足实验要求(1)的程序代码:(1)窗函数设计法之一的代码:WC=0.3*pi;N=21; %给出指标和长度Nhd=ideallp(WC,N); %求出给定指标下的理想脉冲响应Wd1=boxcar(N)';h1=hd.*Wd1; %用矩形窗设计Wd2=hamming(N)';h2=hd.*Wd2; %用汉明窗设计Wd3=blackman(N)';h3=hd.*Wd3; %用布莱克曼窗设计[H1,W]=freqz(h1,1); %求h1频率特性[H2,W]=freqz(h2,1); %求h2频率特性[H3,W]=freqz(h3,1); %求h3频率特性subplot(1,2,1);plot(W,abs(H1),W,abs(H2),':',W,abs(H3),'-.'); %画出幅频特性绝对值legend('Rectanle','Hamming','Blacman'); %标注subplot(1,2,2);plot(W,20*log10(abs(H1)),W,20*log10(abs(H2)),':',W,20*log10(abs(H3)),'-. '); %画对数特性legend('Rectanle','Hamming','Blacman'); %标注(2)频率采样法的代码:N =15;wc=0.3*pi; %给定指标N1=fix(wc/(2*pi/N));N2=N-2*N1-1; %N1为通带点数,N2为阻带长度HK = [ones(1,N1+1),zeros(1,N2),ones(1,N1)]; %理想幅度特性样本序列theta=-pi*[0:N-1]*(N-1)/N; %相位特性样本序列H=HK.*exp(j*theta); %频率特性样本序列h=real(ifft(H)); %求脉冲响应序列。
h应为实序列,故去掉虚部,减小误差[db,mag,pha,grd,w] = myfreqz(h,1);%求滤波器分贝幅频、绝对幅频、相频、群延时delta_w = 2*pi/1000; %1000等分2*piRp = -(min(db(1:wc/delta_w+1))) %求通带波动As = -(max(db((wc+1)/delta_w+1:501))) %求阻带衰减subplot(2,2,1);plot([0:2/N:(2/N)*(N-1) ],HK,'*');grid;%画理想低通样本序列axis([0,1,-0.1,1.1]);ylabel('Hd(k)')subplot(2,2,2);stem([0:N-1],h);title('脉冲响应'); %画所求滤波器脉冲响应axis([0 N -0.1 0.4]);ylabel('h(n)')subplot(2,2,3);plot(w/pi,mag); %画滤波器实际频率响应axis([0,1,-0.2,1.2]);title('幅度响应');ylabel('H(w)');grid;。