实验5 FIR滤波器设计与实现
fir滤波器设计实验报告
fir滤波器设计实验报告fir滤波器设计实验报告引言:滤波器是数字信号处理中常用的工具,它能够对信号进行去噪、频率分析和频率选择等处理。
其中,FIR(Finite Impulse Response)滤波器是一种常见的数字滤波器,具有线性相位和稳定性等优点。
本实验旨在设计一个FIR滤波器,并通过实际测试验证其性能。
一、实验目的本实验的目的是通过设计一个FIR滤波器,掌握FIR滤波器的设计方法和性能评估。
具体包括以下几个方面:1. 了解FIR滤波器的基本原理和特点;2. 学习FIR滤波器的设计方法,如窗函数法、最小二乘法等;3. 掌握MATLAB等工具的使用,实现FIR滤波器的设计和性能评估;4. 通过实际测试,验证所设计FIR滤波器的性能。
二、实验原理FIR滤波器是一种非递归滤波器,其输出仅依赖于当前和过去的输入样本。
其基本原理是将输入信号与一组滤波器系数进行卷积运算,得到输出信号。
FIR滤波器的频率响应由滤波器系数决定,通过调整滤波器系数的值,可以实现不同的滤波效果。
在本实验中,我们采用窗函数法设计FIR滤波器。
窗函数法是一种常见的FIR滤波器设计方法,其基本思想是通过对滤波器的频率响应进行窗函数加权,从而实现对信号频率的选择。
常用的窗函数有矩形窗、汉宁窗、布莱克曼窗等。
三、实验过程1. 确定滤波器的要求:根据实际需求,确定滤波器的截止频率、通带衰减和阻带衰减等参数。
2. 选择窗函数:根据滤波器的要求,选择合适的窗函数。
常用的窗函数有矩形窗、汉宁窗、布莱克曼窗等,不同窗函数有不同的性能特点。
3. 计算滤波器系数:根据所选窗函数的特性,计算滤波器的系数。
这一步可以使用MATLAB等工具进行计算,也可以手动计算。
4. 实现滤波器:使用MATLAB等工具,将计算得到的滤波器系数应用于滤波器的实现。
可以使用差分方程、卷积等方法实现滤波器。
5. 评估滤波器性能:通过输入不同的信号,观察滤波器的输出,并评估其性能。
FIR滤波器设计实验报告
FIR滤波器设计实验报告实验报告:FIR滤波器设计一、实验目的:本实验旨在通过设计FIR滤波器,加深对数字信号处理中滤波器原理的理解,掌握FIR滤波器的设计方法和调试技巧。
二、实验原理:在窗函数法中,常用的窗函数有矩形窗、三角窗、汉明窗和黑曼窗等。
根据实际需求选择适当的窗口函数,并通过将窗口函数应用到理想低通滤波器的冲激响应中,得到FIR滤波器的冲激响应。
三、实验步骤:1.确定滤波器的阶数和截止频率。
2.选择适当的窗口函数,如汉明窗。
3.计算出理想低通滤波器的冲激响应。
4.将选定的窗口函数应用到理想低通滤波器的冲激响应中。
5.得到FIR滤波器的冲激响应。
四、实验结果:假设要设计一个阶数为10的FIR滤波器,截止频率为800Hz,采样频率为1600Hz。
1.选择汉明窗作为窗口函数。
2.根据采样频率和截止频率计算出理想低通滤波器的冲激响应。
假设截止频率为f_c,则理想低通滤波器的冲激响应为:h(n) = 2f_c * sinc(2f_c * (n - (N-1)/2))其中,sinc(x)为正弦函数sin(x)/x。
3.将汉明窗应用到理想低通滤波器的冲激响应中,得到FIR滤波器的冲激响应。
具体计算过程如下:h(n) = w(n) * h_ideal(n)其中,w(n)为汉明窗:w(n) = 0.54 - 0.46 * cos(2πn/(N-1))h_ideal(n)为理想低通滤波器的冲激响应。
4.计算得到FIR滤波器的冲激响应序列。
五、实验总结:本次实验通过设计FIR滤波器,加深了对数字信号处理中滤波器原理的理解。
掌握了FIR滤波器的设计方法和调试技巧。
通过设计阶数为10的FIR滤波器,截止频率为800Hz,采样频率为1600Hz的实例,了解了窗函数法设计FIR滤波器的具体步骤,并得到了滤波器的冲激响应。
【备注】以上内容仅为参考,具体实验报告内容可能根据实际情况有所调整。
实验五FIR滤波器结构的实现
实验五FIR 滤波器结构的实现实验类别:设计性试验 实验目的:1) 熟悉FIR 滤波器横截性,级联型以及线性相位性结构的数字表达形式及结构 流图。
2) 熟悉FIR 滤波器横截性,级联型以及线性相位性结构的基本特点,并能根据 给定的传输函数选择合适的结构。
3) 掌握根据FIR 滤波器系统传输函数求FIR 滤波器的三种结构的方法。
实验内容:1)复习FIR 滤波器结构的有关内容。
2)设FIR 滤波器的系统函数为H(Z)=1 + 16.0625z+z 」,求出并画出它的直接形 式结构,线性相位性式结构和级联形式结构的信号流图。
要用MATLAB 协助,编写程序sy5_1.m 调用tf2cos 子程序。
3)用信号X b (n)=6(n)激励滤波器,观察输出序列的时域和频域特性。
求出单位冲 击响应,零极点图以及频率响应。
设计的程序名称为 sy5_2m实验结构及分析: 试验用到的MATLAB 源程序清单:要求可读性好,必要时加注释。
(1)画出三种形式结构的信号流图。
⑵打印出该滤波器单位冲击响应及其频率响应图形。
3) 分析以下结果:程序未调试出,结果不正确,误差过大2) 实验结果:1)结果如下:sy6_1.m RIR 滤波器三种结构>> b=[1 0 0 0 16.0625 0 0 0 1];>> a=[1 0 0 0 0 0 0 0 0 ];>> [sos,g]=tf2sos(b,a)sos =1.00002.8284 4.0000 1.0000 0 01.0000 -2.8284 4.0000 1.0000 0 0 1.0000 0.7071 0.2500 1.0000 0 0 1.0000 -0.7071 0.2500 1.0000 0 0直接形式信号流图• x(n) ---- M — 上 Z -4 —M线性相位形式信号流图级联形式信号流图•x(n USy6_2・m1■单位冲击响应、零极点图绘制b=[1 0 0 0 16.0625 0 0 0 1]; w=[0:1:5001* pi/500;-1 z 2.8284 -1 z0.7071 z -1 -0.7071 -1 z -2.8284 -1 z 4.0 -1 z 0.25 -1z 0.25 -1z 4.0 y(n)卜16.0625*» a=[1 0 0 0 0 0 0 0 0 ]; x2=1;x1=1+16.0625*ex p(-4*j*w)+ex p(-8*j*w);magx=abs(x);sub plot(2,2,1);sub plot(2,2,3);sub plot(2,2,2);sub plot(2,2,4);imp z(b,a,15);zplan e(b,a);pl ot(w/pi,magx);pl ot(w/pi,a ngx);x=x1./x2;an gx=a ngle(x).*180/pi;title('冲击响应'); title('零极点图'); title('幅度部分'); title('相位部分');ylabel('振幅'); xlabel('以pi为单位的频率'); ylabel('相位');n (sam pl es)零极点图I■8 \}位相200-200相位部分100-1000 0.5 1以pi为单位的频率-2-1012Real Part2频率响应>> b=[1 0 0 0 16.0625 0 0 01]; >>a=[1 0 0 0 0 0 0 0 0 ];>> freqz(b,a,'whole')22262524230 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2Normalized Freque ncy ( X兀rad/sam ple)Normalized Freque ncy ( X兀rad/sam pie)简要回答思考问题FIR滤波器的结构有哪几种形式?答:直接型、级联型、线性相位型、频率采样型。
实验五 FIR数字滤波器的设计
实验六 FIR 数字滤波器的设计一、实验目的1.熟悉FIR 滤波器的设计基本方法2.掌握用窗函数设计FIR 数字滤波器的原理与方法。
二、实验内容1.FIR 数字滤波器的设计方法FIR 滤波器的设计问题在于寻求一系统函数)(z H ,使其频率响应)(ωj e H 逼近滤波器要求的理想频率响应)(ωj d e H ,其对应的单位脉冲响应为)(n h d 。
(1)用窗函数设计FIR 滤波器的基本原理设计思想:从时域从发,设计)(n h 逼近理想)(n h d 。
设理想滤波器)(ωj d e H 的单位脉冲响应为)(n h d 。
以低通线性相位FIR 数字滤波器为例。
⎰∑--∞-∞===ππωωωωωπd e e H n h e n he H jn j d d jn n d j d )(21)()()( (6-1) )(n h d 一般是无限长的,且是非因果的,不能直接作为FIR 滤波器的单位脉冲响应。
要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断)()()(n w n h n h d =,即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR 滤波器的单位脉冲响应。
按照线性相位滤波器的要求,h(n)必须是偶对称的。
对称中心必须等于滤波器的延时常数,即⎩⎨⎧-==2/)1()()()(N a n w n h n h d (6-2) 用矩形窗设计的FIR 低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,这个现象称为吉布斯(Gibbs )效应。
为了消除吉布斯效应,一般采用其他类型的窗函数。
(2) 典型的窗函数① 矩形窗(Rectangle Window))()(n R n w N = (6-3)② 三角形窗(Bartlett Window)⎪⎩⎪⎨⎧-≤<----≤≤-=121,122210,12)(N n N N n N n N n n w (6-4) ③ 汉宁(Hanning)窗,又称升余弦窗)()]12cos(1[21)(n R N n n w N --=π (6-5) ④ 汉明(Hamming)窗,又称改进的升余弦窗)()]12cos(46.054.0[)(n R N n n w N --=π (6-6) ⑤ 布莱克曼(Blankman)窗,又称二阶升余弦窗)()]14cos(08.0)12cos(5.042.0[)(n R N n N n n w N -+--=ππ (6-7) ⑥ 凯泽(Kaiser)窗 10,)())]1/(21[1()(020-≤≤---=N n I N n I n w ββ (6-8) 其中:β是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,β越大,过渡带越宽,阻带越小衰减也越大。
FIR滤波器的设计与实现
index=128+j; % y(i)=b0*x_temp(index); %for 循环,按直接法公式计算输出值 for k=1:jieshu %每次都是直接从 x_temp 当前的值开始算, 不再依次对 x_temp 进行移位处理 if(index -k<=0) %发现标称<0 后,需要给调头跑到缓存区的最后。 y(i)=y(i)+b(k)*x_temp(index -k+jieshu); else y(i)=y(i)+b(k)*x_temp(index -k); end end end end end end (2)主函数中,通过 my_filter.m 的调用,实现了按帧(每帧长度 128 点)处理,模拟实 际情况对对信号 x 进行滤波。代码如下: %========================================================= %编写 my_fir_filter.m 文件模拟实际处理过程,按帧对 x 进行低通滤波处理,每帧 128 点 %========================================================= t=(0:length(x)-1)/fs; figure(4); %绘制经 my_filter.m,低通滤波器处理后的信号图像 subplot(2,2,1); plot(t,x); title('原信号'); subplot(2,2,3) plot(t,y_low); xf=fft(x);%FFT 得到的是一个 X(k),k 表示频率,abs(X(k))表示增益 % plot(ab%s(xf));%直接绘制,是一个关于 Fs/2 对称 title('低通滤波信号'); fm=5000*length(xf)/fs;%为了对比度更强 取前 5000 个点 f=(0:fm)*fs/length(xf); subplot(2,2,2); plot(f,abs(xf(1:length(f)))); y_lowf=fft(y_low); title('原信号频谱'); subplot(2,2,4); plot(f,abs(y_lowf(1:length(f)))); title('低通滤波信号频谱');
实验五FIR数字滤波器的设计
实验五FIR数字滤波器的设计
FIR数字滤波器的设计可以分为以下几个步骤:
1.确定滤波器的类型和规格:根据实际需求确定滤波器的类型(如低通、高通、带通等)以及滤波器的截止频率、通带衰减以及阻带衰减等规格。
2.选择滤波器的窗函数:根据滤波器的规格,选择合适的窗函数(如矩形窗、汉宁窗、布莱克曼窗等)。
窗函数的选择会影响滤波器的频率响应以及滤波器的过渡带宽度等特性。
3.确定滤波器的阶数:根据滤波器的规格和窗函数的选择,确定滤波器的阶数。
通常来说,滤波器的阶数越高,滤波器的性能越好,但相应的计算和处理也会更加复杂。
4.设计滤波器的频率响应:通过在频率域中设计滤波器的频率响应来满足滤波器的规格要求。
可以使用频率采样法、窗函数法或优化算法等方法。
5. 将频率响应转换为差分方程:通过逆Fourier变换或其他变换方法,将频率响应转换为滤波器的差分方程表示。
6.量化滤波器的系数:将差分方程中的连续系数离散化为滤波器的实际系数。
7.实现滤波器:使用计算机编程、数字信号处理芯片或FPGA等方式实现滤波器的功能。
8.测试滤波器性能:通过输入一组测试信号并观察输出信号,来验证滤波器的性能是否符合设计要求。
需要注意的是,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滤波器的设计原理y(n)=b0*x(n)+b1*x(n-1)+b2*x(n-2)+...+bM*x(n-M)其中,b0、b1、..、bM是滤波器的系数,M是滤波器的阶数。
在设计FIR滤波器时,需要确定滤波器的截止频率、滤波器类型(低通、高通、带通、带阻)以及滤波器的阶数。
通常情况下,滤波器的阶数越高,滤波器的性能越好,但计算复杂度也越高。
1.确定滤波器的截止频率和滤波器类型。
根据信号的频谱特性和滤波器的要求,确定滤波器的截止频率和滤波器类型。
2.确定滤波器的阶数。
根据滤波器的设计要求和计算资源的限制,确定滤波器的阶数。
3.计算滤波器的系数。
通过设计方法(如窗函数法、频率采样法、最优化法等),计算滤波器的系数。
4.实现滤波器。
根据计算得到的滤波器系数,使用差分方程或直接形式等方法实现FIR滤波器。
二、FIR滤波器的实现方法1.差分方程形式差分方程形式是FIR滤波器的一种常见实现方法,它基于差分方程对输入信号进行逐点计算。
根据滤波器的差分方程,可以使用循环结构对输入信号进行滤波。
2.直接形式直接形式是另一种常见的FIR滤波器实现方法,它基于滤波器的系数和输入信号的历史值对输出信号进行逐点计算。
直接形式的计算过程可表示为:y(n)=b0*x(n)+b1*x(n-1)+b2*x(n-2)+...+bM*x(n-M)其中,b0、b1、..、bM是滤波器的系数,x(n)、x(n-1)、..、x(n-M)是输入信号的历史值。
直接形式的优点是计算过程简单,缺点是计算量比较大,特别是当滤波器的阶数较高时。
除了差分方程形式和直接形式外,还有其他一些高级实现方法如离散余弦变换(DCT)和快速卷积等,它们能够进一步提高FIR滤波器的计算效率和性能。
总结:本文介绍了FIR滤波器的设计原理和实现方法。
FIR滤波器采用离散时间信号的卷积运算,通过确定截止频率、滤波器类型和阶数,计算滤波器系数,并使用差分方程或直接形式等方法实现滤波器。
FIR滤波器的设计实验报告
EDAFIR滤波器的设计实验报告班级:学号:姓名:指导老师;2015年 5月 6日一.实验目的(1)熟悉Quartus Ⅱ软件的基本使用方法。
(2)熟悉B-ICE-EDA/SOPC或其它EDA实验开发系统的基本使用方法。
(3)学习VHDL基本路基电路的综合设计应用。
二.实验条件(1)开发软件:Quartus Ⅱ。
(2)拟用芯片:Cyclone lll-EP3C55F484C8三.实验内容设计并调试好一个滤波器长度为4的DaubechiesDB4转置FIR滤波器,并用EDA实验开发系统进行硬件验证。
四.实验设计1.图1-1实验原理图:图1-1 转置结构的FIR滤波器2.FIR的电路采用VHDL文本输入,有关VHDL程序如下LIBRARY LPM;USE IEEE;USE FIR ISGENERIC(W1:INTEGER:=9;W2:INTEGER:=18;W3:INTEGER:=19;W4:INTEGER:=11;L:INTEGER:=4;MPIPE:INTEGER:=3);PORT(CLK:IN STD_LOGIC;LOAD_X:IN STD_LOGIC;X_IN:IN STD_LOGIC_VECTOR(W1-1 DOWNTO 0);C_IN:IN STD_LOGIC_VECTOR(W1-1 DOWNTO 0);Y_OUT:OUT STD_LOGIC_VECTOR(W4-1 DOWNTO 0));END ENTITY FIR;ARCHITECTURE ART OF FIR ISSUBTYPE N1BIT IS STD_LOGIC_VECTOR(W1-1 DOWNTO 0);SUBTYPE N2BIT IS STD_LOGIC_VECTOR(W2-1 DOWNTO 0);SUBTYPE N3BIT IS STD_LOGIC_VECTOR(W3-1 DOWNTO 0);TYPE ARRAY_N1BIT IS ARRAY (0 TO L-1) OF N1BIT;TYPE ARRAY_N2BIT IS ARRAY (0 TO L-1) OF N2BIT;TYPE ARRAY_N3BIT IS ARRAY (0 TO L-1) OF N3BIT;SIGNAL X:N1BIT;SIGNAL Y:N3BIT;SIGNAL C:ARRAY_N1BIT;SIGNAL P:ARRAY_N2BIT;SIGNAL A:ARRAY_N3BIT;BEGINLOAD:PROCESS ISBEGINWAIT UNTIL CLK='1';IF(LOAD_X='0') THENC(L-1)<=C_IN;FOR I IN L-2 DOWNTO 0 LOOPC(I)<=C(I+1);END LOOP;ELSEX<=X_IN;END IF;END PROCESS LOAD;SOP:PROCESS(CLK) ISBEGINIF CLK'EVENT AND (CLK='1') THEN FOR I IN 0 TO L-2 LOOPA(I)<=(P(I)(W2-1)&P(I))+A(I+1); END LOOP;A(L-1)<=P(L-1)(W2-1)&P(L-1);END IF;Y<=A(0);END PROCESS SOP;MULGEN:FOR I IN 0 TO L-1 GENERATEMULS:LPM_MULTGENERIC MAP(LPM_WIDTHA=>W1,LPM_WIDTHB=>W1,LPM_PIPELINE=>MPIPE,LPM_REPRESENTATION=>"SIGNED",LPM_WIDTHP=>W2,LPM_WIDTHS=>W2)PORT MAP(CLOCK=>CLK,DATAA=>X,DATAB=>C(I),RESULT=>P(I));END GENERATE;Y_OUT<=Y(W3-1 DOWNTO W3-W4);END ARCHITECTURE ART;3.新建工程,将文件添加到对应的工程中,对工程进行设置。
FIR滤波器设计与实现
FIR 滤波器设计与实现一、实验目的(1)通过实验巩固FIR 滤波器的认识和理解。
(2)熟练掌握FIR 低通滤波器的窗函数设计方法。
(3)理解FIR 的具体应用。
二、实验内容在通信、信息处理以及信号检测等应用领域广泛使用滤波器进行去噪和信号的增强。
FIR 滤波器由于可实现线性相位特性以及固有的稳定特征而等到广泛应用,其典型的设计方法是窗函数设计法。
设计流程如下: (1)设定指标:截止频率c f ,过渡带宽度△f ,阻带衰减A 。
(2)求理想低通滤波器(LPF )的时域响应)(n h d 。
(3)选择窗函数()n w ,确定窗长N 。
(4)将)(n h d 右移(N-1)/ 2点并加窗获取线性相位FIR 滤波器的单位脉冲响应()n h 。
(5)求FIR 的频域响应H (e jw),分析是否满足指标。
如不满足,转(3)重新选择,否则继续。
(6)求FIR 的系统函数H (z )。
(7)依据差分方程由软件实现FIR 滤波器或依据系统函数由硬件实现。
实验要求采用哈明(Hamming)窗设计一个FIR 低通滤波器并由软件实现。
哈明窗函数如下:()⎪⎭⎫⎝⎛--=12cos 46.054.0N n n w π,10-≤≤N n ;设采样频率为kHz f s 10=。
实验中,窗长度N 和截止频率c f 应该都能调节。
具体实验内容如下:(1)设计FIR 低通滤波器(FIR_LPF )(书面进行)。
(2)依据差分方程编程实现FIR 低通滤波器。
(3)输入信号()()()n n n x ππ8.0cos 16.0sin 0.3+=到Hz f c 2000=,N=65的FIR_LPF ,求输出信号()n y ,理论计算并画出s f f ≤≤0范围输入信号()n x 和输出信号()n y 的幅度谱,标出峰值频率,观察滤波器的实际输出结果,分析其正确性。
(4)输入信号()()())9.0sin(2.14.0cos 2.0sin 5.1n n n n x πππ+-=到Hz f c 1100=,N=65的FIR_LPF ,求输出信号()n y ,理论计算并画出s f f ≤≤0范围输入信号()n x 和输出信号()n y 的幅度谱,标出峰值频率,观察滤波器的实际输出结果,分析其正确性。
最新实验5FIR数字滤波器设计与软件实现
信息院 14电信(师范)1实验五:FIR数字滤波器设计与软件实现23一、实验指导41.实验目的5(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。
6(2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。
7(3)掌握FIR滤波器的快速卷积实现原理。
8(4)学会调用MATLAB函数设计与实现FIR滤波器。
92.实验内容及步骤1011(1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理;1213(2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及14其频谱,如图1所示;1516图1 具有加性噪声的信号x(t)及其频谱如图17程序代码:(信号产生函数xtg程序清单)18function xt=xtg(N)19%ʵÑéÎåÐźÅx(t)²úÉú,²¢ÏÔʾÐźŵķùƵÌØÐÔÇúÏß20%xt=xtg(N)21²úÉúÒ»¸ö³¤¶ÈΪN,ÓмÓÐÔ¸ßƵÔëÉùµÄµ¥Æµµ÷·ùÐźÅxt,²ÉÑùƵÂÊ22Fs=1000Hz23%Ôز¨ÆµÂÊfc=Fs/10=100Hz,µ÷ÖÆÕýÏÒ²¨ÆµÂÊf0=fc/10=10Hz.24N=1000;Fs=1000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;2526fc=Fs/10;f0=fc/10; %Ôز¨ÆµÂÊfc=Fs/10£¬µ¥Æµµ÷ÖÆÐźÅƵÂÊΪf0=Fc/10;2728mt=cos(2*pi*f0*t); %²úÉúµ¥ÆµÕýÏÒ²¨µ÷ÖÆÐźÅmt£¬ÆµÂÊΪf 29ct=cos(2*pi*fc*t); %²úÉúÔز¨ÕýÏÒ²¨ÐźÅct£¬ÆµÂÊΪfc3031xt=mt.*ct; %Ïà³Ë²úÉúµ¥Æµµ÷ÖÆÐźÅxt32nt=2*rand(1,N)-1; %²úÉúËæ»úÔëÉùnt33%=======Éè¼Æ¸ßͨÂ˲¨Æ÷hn,ÓÃÓÚÂ˳ýÔëÉùntÖеĵÍƵ³É·Ö, 34Éú³É¸ßͨÔëÉù=======35fp=150; fs=200;Rp=0.1;As=70; % Â˲¨Æ÷Ö¸±êfb=[fp,fs];m=[0,1]; %3637¼ÆËãremezordº¯ÊýËùÐè²ÎÊýf,m,dev38dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];[n,fo,mo,W]=remezord(fb,m,dev,Fs); %3940È·¶¨remezº¯ÊýËùÐè²ÎÊý41hn=remez(n,fo,mo,W); %42µ÷ÓÃremezº¯Êý½øÐÐÉè¼Æ,ÓÃÓÚÂ˳ýÔëÉùntÖеĵÍƵ³É·Ö43yt=filter(hn,1,10*nt); %Â˳ýËæ»úÔëÉùÖеÍƵ³É·Ö£¬Éú44³É¸ßͨÔëÉùyt45%======================================================= 46=========47xt=xt+yt; %ÔëÉù¼ÓÐźÅ48fst=fft(xt,N);k=0:N-1;f=k/Tp;subplot(3,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t4950)');51axis([0,Tp/5,min(xt),max(xt)]);title('(a)52ÐźżÓÔëÉù²¨ÐÎ')53subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title 54('(b) ÐźżÓÔëÉùµÄƵÆ×')55axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('·ù¶È')56输出波形:5758(3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。
FIR滤波器设计与实现实验报告
FIR滤波器设计与实现实验报告目录一、实验概述 (2)1. 实验目的 (3)2. 实验原理 (3)3. 实验设备与工具 (4)4. 实验内容与步骤 (6)5. 实验数据与结果分析 (7)二、FIR滤波器设计 (8)1. 滤波器设计基本概念 (9)2. 系数求解方法 (10)频谱采样法 (11)最小均方误差法 (14)3. 常用FIR滤波器类型 (15)线性相位FIR滤波器 (16)非线性相位FIR滤波器 (18)4. 设计实例与比较 (19)三、FIR滤波器实现 (20)1. 硬件实现基础 (21)2. 软件实现方法 (22)3. 实现过程中的关键问题与解决方案 (23)4. 滤波器性能评估指标 (25)四、实验结果与分析 (26)1. 实验数据记录与处理 (27)2. 滤波器性能测试与分析 (29)通带波动 (30)虚部衰减 (31)相位失真 (32)3. 与其他设计方案的对比与讨论 (33)五、总结与展望 (34)1. 实验成果总结 (35)2. 存在问题与不足 (36)3. 未来发展方向与改进措施 (37)一、实验概述本次实验的主要目标是设计并实现一个有限脉冲响应(Finite Impulse Response,简称FIR)滤波器。
FIR滤波器是数字信号处理中常用的一种滤波器,具有线性相位响应和易于设计的优点。
本次实验旨在通过实践加深我们对FIR滤波器设计和实现过程的理解,提升我们的实践能力和问题解决能力。
在实验过程中,我们将首先理解FIR滤波器的基本原理和特性,包括其工作原理、设计方法和性能指标。
我们将选择合适的实验工具和环境,例如MATLAB或Python等编程环境,进行FIR滤波器的设计。
我们还将关注滤波器的实现过程,包括代码编写、性能测试和结果分析等步骤。
通过这次实验,我们期望能够深入理解FIR滤波器的设计和实现过程,并能够将理论知识应用到实践中,提高我们的工程实践能力。
本次实验报告将按照“设计原理设计方法实现过程实验结果与分析”的逻辑结构进行组织,让读者能够清晰地了解我们实验的全过程,以及我们从中获得的收获和启示。
实验五FIR数字滤波器的设计
实验五FIR数字滤波器的设计一:实验目的(1)掌握用窗函数法,频率采样法及优化设计法设计FIR滤波器的原理及方法,熟悉响应的matlab编程;(2)熟悉线性相位FIR滤波器的幅频特性和相频特性;(3)了解各种不同窗函数对滤波器性能的影响。
二:实验原理:(一)线性相位实系数FIR滤波器按其N值奇偶和h(n)的奇偶对称性分为四种:1、h(n)为偶对称,N为奇数;H(e jω)的幅值关于ω=0,π,2π成偶对称。
2、h(n)为偶对称,N为偶数;H(e jω)的幅值关于ω=π成奇对称,不适合作高通。
3、h(n)为奇对称,N为奇数;H(e jω)的幅值关于ω=0,π,2π成奇对称,不适合作高通和低通。
=0,不适合作低通。
4、h(n)为奇对称,N为偶数;H(e jω)ω=0、2π(二) 窗口法窗函数法设计线性相位FIR 滤波器步骤确定数字滤波器的性能要求:临界频率{ωk },滤波器单位脉冲响应长度N ;根据性能要求,合理选择单位脉冲响应h(n)的奇偶对称性,从而确定理想频率响应H d (e jω)的幅频特性和相频特性;求理想单位脉冲响应h d (n),在实际计算中,可对H d (e jω)按M(M 远大于N)点等距离采样,并对其求IDFT 得h M (n),用h M (n)代替h d (n);选择适当的窗函数w(n),根据h(n)= h d (n)w(n)求所需设计的FIR 滤波器单位脉冲响应; 求H(e jω),分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N ,重复上述设计过程,以得到满意的结果。
窗函数的傅式变换W(e jω)的主瓣决定了H(e jω)过渡带宽。
W(e jω)的旁瓣大小和多少决定了H(e jω)在通带和阻带范围内波动幅度,常用的几种窗函数有:(1)矩形窗(Rectangle Window))()(n R n w N =(2)汉宁(Hanning)窗,又称升余弦窗)()]12cos(1[21)(n R N n n w N --=π (3)汉明(Hamming)窗,又称改进的升余弦窗)()]12cos(46.054.0[)(n R N n n w N --=π(4)布莱克曼(Blankman)窗,又称二阶升余弦窗 )()]14cos(08.0)12cos(5.042.0[)(n R N n N n n w N -+--=ππ(5)凯塞(Kaiser)窗 10,)())]1/(21[1()(020-≤≤---=N n I N n I n w ββ其中:β是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,β越大,过渡带越宽,阻带越小衰减也越大。
FIR滤波器设计与实现-毕业设计
FIR滤波器设计与实现-毕业设计实验二 FIR滤波器设计与实现班级:10通信成员:一、实验目的通过实验巩固FIR滤波器的认识和理解。
熟练掌握FIR低通滤波器的窗函数设计方法。
理解FIR的具体应用。
二、实验内容在通信、信息处理以及信号检测等应用领域广泛使用滤波器进行去噪和信号的增强。
FIR滤波器由于可实现线性相位特性以及固有的稳定特征而等到广泛应用,其典型的设计方法是窗函数设计法。
设计流程如下:(1)设定指标:截止频率fc,过渡带宽度△f,阻带衰减A。
(2)求理想低通滤波器(LPF)的时域响应hd(n)。
(3)选择窗函数w(n),确定窗长N。
(4)将hd(n)右移(N-1)/2点并加窗获取线性相位FIR滤波器的单位脉冲响应h(n)。
(5)求FIR的频域响应H(e),分析是否满足指标。
如不满足,转(3)重新选择,否则继续。
(6)求FIR的系统函数H(z)。
(7)依据差分方程由软件实现FIR滤波器或依据系统函数由硬件实现。
实验要求采用哈明窗设计一个FIR低通滤波器并由软件实现。
哈明窗函数如下:w(n) 0.54-0.46cos(),0≤n≤N-1;设采样频率为fs 10kHz。
实验中,窗长度N和截止频率fc应该都能调节。
具体实验内容如下:(1)设计FIR低通滤波器(FIR_LPF)(书面进行)。
(2)依据差分方程编程实现FIR低通滤波器。
(3)输入信号x(n) 3.0sin(0.16)+cos(0.8)到fc 2000Hz,N 65的FIR_LPF,求输出信号y(n),理论计算并画出0≤f≤fs范围输入信号x(n)和输出信号y(n)的幅度谱,标出峰值频率,观察滤波器的实际输出结果,分析其正确性。
(4)输入信号x(n) 1.5sin(0.2)-cos(0.4)+1.2sin(0.9)到fc 1100Hz,N 65的FIR_LPF,求输出信号y(n),理论计算并画出0≤f≤fs范围输入信号x (n)和输出信号y(n)的幅度谱,标出峰值频率,观察滤波器的实际输出结果,分析其正确性。
FIR滤波器实验
FIR滤波器实验(一)实验目的熟悉数字滤波的基本原理和实现方法;熟悉线性相位FIR数字滤波器特性;通过观察对实际信号的滤波作用,获得对数字滤波的感性认识。
(二)实验原理FIR 滤波器算法的函数表达式:short oflag = fir (DA TA *x, DA TA *h, DA TA *r, DA TA **dbuffer,ushort nh, ushort nx) (定义于fir.asm)参数说明使用系数向量h,计算实数的FIR滤波。
输入数据存于向量x中。
该例程使用一个缓冲内存d,来保存前一次的输入值。
可以进行块滤波操作,或者单个数据滤波(nx=1)。
算法r[j] =∑=-nhkkjxkh][][0 <=j <=nx(三)实验步骤(1)用MA TLAB设计软件设计出FIR数据文件,可采用随机光盘里WA VE文件夹中的数据文件。
(2)启动CCS,编写实验程序代码(可参考随机光盘中的alldsp4\Simulator\ hpassfir例程),进行编译并加载到DSP中。
(3)采用单步运行或执行到光标处,或全速运行,并打开波形观察窗口,跟踪观察其执行过程和滤波效果。
此处举例介绍随机光盘里的例程低通滤波器的程序运行,以及如何观察滤波效果:①先打开项目,然后编译、加载实验程序,然后点击菜单debug—Go main 就进入实验程序test.c(如图一)。
图一程序②然后我们打开波形观察窗口,路径是V iew—Graph—Time/Frequence,将出现如下图二所示的图形属性框,因为本程序编写的是输入向量放在x 中,而滤波后的输出向量放在r中,因此图形属性框应选择:在Display Type 一栏中选择Dual Time 项;Interleaved Data Sources一栏中选择No项; Start Address-upper display一栏中输入x,Start Address-upper display 一栏中输入r;Acquistition Buffer Size 一栏中输入256;Display Data Size 一栏中输入256;DSP Data Type一栏中选择16-bit signed integer项;其他为默认值,然后点击“OK”就可打开图形观察窗口如图三。
实验四 FIR滤波器的设计
实验五 FIR滤波器的设计(一)一、实验目的(1) 掌握用窗函数法设计FIR滤波器的原理及方法,熟悉响应的计算机编程;(2) 熟悉线性相位FIR滤波器的幅频特性和相频特性;(3)了解各种不同窗函数对滤波器性能的影响。
二、实验原理与方法线性相位实系数FIR滤波器按其N值奇偶和h(n)的奇偶对称性分为四种: 1、h(n)为偶对称,N为奇数H(e jω)的幅值关于ω=0,π,2π成偶对称。
2、h(n)为偶对称,N为偶数H(e jω)的幅值关于ω=π成奇对称,不适合作高通。
3、h(n)为奇对称,N为奇数H(e jω)的幅值关于ω=0,π,2π成奇对称,不适合作高通和低通。
4、h(n)为奇对称,N为偶数H(e jω)ω=0、2π=0,不适合作低通。
窗函数法设计线性相位FIR滤波器步骤a)确定数字滤波器的性能要求:临界频率{ωk},滤波器单位脉冲响应长度N;b)根据性能要求,合理选择单位脉冲响应h(n)的奇偶对称性,从而确定理想频率响应Hd(e jω)的幅频特性和相频特性;c)求理想单位脉冲响应h d(n),在实际计算中,可对H d(e jω)按M(M远大于N)点等距离采样,并对其求IDFT得hM (n),用hM(n)代替hd(n);d)选择适当的窗函数w(n),根据h(n)= h d(n)w(n)求所需设计的FIR滤波器单位脉冲响应;e)求H(e jω),分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述设计过程,以得到满意的结果。
窗函数的傅式变换W(e jω)的主瓣决定了H(e jω)过渡带宽。
W(e jω)的旁瓣大小和多少决定了H(e jω)在通带和阻带范围内波动幅度,常用的几种窗函数有:a)矩形窗 w(n)=R N(n);b)Hanning窗;c)Hamming窗;d)Blackmen窗;e)Kaiser窗。
(x)为零阶贝塞尔函数。
式中Io三、实验内容。
用Hanning窗设计一线性相位带通滤波器,(1)N=15,观察它的实际3dB和20dB带宽。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5 FIR滤波器设计与实现以下为参考中文实验指导,原文请参见:\GuideSlide\DSP_Primer\chinese\print下:Xilinx_DSP_workbook_A4.pdf5.FIR滤波器在这一部分中,我们将利用多种不同方法实现FIR滤波器。
为了说明问题,首先来看一下如下图所示的简单的四抽头FIR滤波器:滤波器的系数按如下选择:w0= -10,w1= 20,w2= 50,w3= 80 [5.1] 这些系数并不是针对某个具体的频率响应而设计的,如此选择只是为了说明问题。
5.1.字长增长为了说明字长效应的影响,我们当然只能选择有限精度的信号。
在本例中,我们让输入信号为2位整数。
因此信号x[k]的范围在-2和1之间。
在下面各实验中,我们将考虑滤波器系数为8位的情况,即w的范围在-128和+127之间实验 5.1简单FIR滤波器打开以下系统:\filter\cut_set\FIR1\FIR1.mdl(a)在上图中画出关键路径,并回答在关键路径上共有多少乘法单元和加法单元。
答:(b)运行该系统并在示波器中观察其冲激响应。
(c)观察加法链上的字长变化并验证字长由8位增长到10位。
(d)使用System Generator模块生成所需ISE工程文件。
打开ISE工程,对该设计经行时序模拟以及布局与布线(Place & Route),然后完成下列表格。
Report ResultValuesPlace and RouteReportNumber of BUFGXMUXs Number of External IOBs Number of 18 x 18 multipliers Number of slicesPost place & route static timing reportMinimum Period Maximum Frequency(注意在本例中并没有使用到内嵌乘法器)实验 5.2时序变更(Retiming)打开以下系统:\filter\cut_set\FIR2\FIR2.mdl对图中上面的系统应用cut sets分割得到的割集进行适当变换便得到了下面的系统。
变换后的系统的关键路径长度被大大缩减。
但同时需要注意的是,系统的延迟增加了。
(a)运行该系统并在示波器中观察其冲激响应。
可以看出该系统与之前的系统相比其关键路径大大缩短。
新系统的关键路径长度是多少?答:(b)使用System Generator模块生成所需ISE工程文件。
打开ISE工程,对该设计经行时序模拟以及布局与布线(Place & Route),然后完成下列表格。
Report ResultValuesPlace and RouteReportNumber of BUFGXMUXs Number of External IOBs Number of 18 x 18 multipliers Number of slicesPost place & route static timing reportMinimum Period Maximum Frequency得益于更短的关键路径长度,该系统与之前系统相比运行速度要高出许多,但同时硬件开销增加了。
实验 5.3转置FIR滤波器打开以下系统:\filter\cut_set\fir_transpose\fir_transpose.mdl(a)运行该系统并在示波器中观察其冲激响应。
该转置FIR滤波器的延迟(关键路径长度)是多少?答:(b)使用System Generator模块生成所需ISE工程文件。
打开ISE工程,对该设计经行时序模拟以及布局与布线(Place & Route),然后完成下列表格。
Report Result ValuesPlace and RouteReportNumber of BUFGXMUXs Number of External IOBs Number of 18 x 18 multipliers Number of slicesPost place & route Minimum Periodstatic timing report Maximum Frequency实验 5.4减小转置FIR滤波器的关键路径长度在乘法器后引入管线(Pipeline)延迟可以更进一步的减小转置FIR滤波器的关键路径长度。
按照下图所示对下面的系统进行集分割(cut sets):\filter\cut_set\fir_transpose\fir_transpose.mdl(在乘法器后添加延迟/寄存器结构)对修改后的设计新建名为fir_tranpose2的文件:\filter\cut_set\fir_transpose2\fir_transpose2.mdl(a)运行该系统并在示波器中观察其冲激响应。
该转置FIR滤波器的延迟(关键路径长度)是多少?答:(b)使用System Generator模块生成所需ISE工程文件。
打开ISE工程,对该设计经行时序模拟以及布局与布线(Place & Route),然后完成下列表格。
Report Result ValuesPlace and RouteReportNumber of BUFGXMUXsNumber of External IOBsNumber of 18 x 18 multipliersNumber of slicesPost place & routestatic timing reportMinimum PeriodMaximum Frequency该设计相比与之前非管线乘法器的设计结构,速度是否提高?实验 5.5不同FIR滤波器的系统开销在该实验中,我们将接触到许多种不同设计结构的FIR滤波器。
他们的实现结构包括各种不同组合的LUT,Slice逻辑结构,块乘法器,以及不同类型的延迟线。
任何一种滤波器的系数个数都是4,输入数据和滤波器系数的数据宽度设置为8,且仅在最后一级加法单元中引入四舍五入运算。
在Simulink中运行各系统并通过place and route reports和timing reports比较他们的时序与硬件开销。
(i)采用SRL16s延迟线结构的FIR滤波器\ filter \ fir_srl16 \ fir_srl16.mdl:Report Result ValuesPlace and RouteReportNumber of BUFGXMUXsNumber of External IOBsNumber of 18 x 18 multipliers Number of slicesPost place & route static timing reportMinimum Period Maximum Frequency(ii)采用FF延迟线结构的FIR滤波器\ filter \ fir_ff \ fir_ff.mdl:Report Result ValuesPlace and RouteReportNumber of BUFGXMUXs Number of External IOBs Number of 18 x 18 multipliers Number of slicesPost place & route static timing reportMinimum Period Maximum Frequency(iii)采用分布式运算核心的FIR滤波器\ filter \ fir_ff_da \ fir_ff_da.mdl:Report Result ValuesPlace and RouteReportNumber of BUFGXMUXs Number of External IOBs Number of 18 x 18 multipliers Number of slicesPost place & route static timing reportMinimum Period Maximum Frequency(iv)采用块乘法器的FIR滤波器\ filter \ fir_block \ fir_block.mdl:Report Result ValuesPlace and RouteReportNumber of BUFGXMUXs Number of External IOBs Number of 18 x 18 multipliers Number of slicesPost place & route static timing reportMinimum Period Maximum Frequency(v)采用线性乘加(MAC)和一个块乘法器的FIR滤波器\ filter \ fir_MAC \ fir_MAC.mdl:Report Result Values Place and Route Number of BUFGXMUXsReport Number of External IOBsNumber of 18 x 18 multipliersNumber of slicesPost place & route static timing reportMinimum Period Maximum Frequency5.2.使用FDATool Block设计滤波器Xilinx Blockset中包含一个称为FDATool的滤波器设计模块。
它在Xilinx模块与Matlab中的信号处理工具箱中起接口作用。
如果MatLab中未安装信号处理工具箱则该模块不能正常使用。
我们随后将看到,利用FDATool模块能够轻松且快速地设计数字滤波器。
FDATool模块在一般情况下与FIR滤波器模块一起使用,利用FDATool设计好的滤波器系数直接可用于FIR滤波器模块上。
在下面的几个实验中我们将看到它的使用方法。
此外,设计好的滤波器将在XUPV2P板上通过硬件协同模拟的方式进行验证。
在硬件协同模拟期间,System Generator设计结果和硬件设计结果将可以使用相同的输入数据,并通过两者在同一时刻的输出结果经行对比分析。
实验 5.6设计低通FIR滤波器在这个实验中我们将使用FDATool工具设计一个低通FIR滤波器。
(a)打开以下系统:\ FDA_block \ FDA_cosim . mdl(b)打开FDATool模块并查看参数值。
(c)按以下值设计一下滤波器参数:单位:MhzFs : 1.5(1.5Mhz采样频率)Fpass : 0.2(200kHz通带频率)Fstop : 0.3(300kHz阻带频率)(d)在“Design Filter”按钮上。