实验3 用MATLAB窗函数法设计FIR滤波器

合集下载

用MATLAB设计FIR数字滤波器

用MATLAB设计FIR数字滤波器

实验八 用MATLAB 设计FIR 数字滤波器(二)一、实验目旳:1、加深对窗函数法设计FIR 数字滤波器旳基本原理旳理解。

2、学习用MATLAB 语言旳窗函数法编写设计FIR 数字滤波器旳程序。

3、理解MATLAB 语言有关窗函数法设计FIR 数字滤波器旳常用函数用法。

二、实验原理:1、用窗函数法设计FIR 数字滤波器 FIR 数字滤波器旳系统函数为N-1-n n=0H(z)=h(n)z ∑这个公式也可以当作是离散LSI 系统旳系统函数M-m -1-2-mmm=0012m N -1-2-k-k12k k k=1bz b +b z +b z ++b z Y(z)b(z)H(z)====X(z)a(z)1+a z +a z ++a z1+a z ∑∑ 分母a 0为1,其他a k 全都为0时旳一种特例。

由于极点所有集中在零点,稳定和线性相位特性是FIR 滤波器旳突出长处,因此在实际中广泛使用。

FIR 滤波器旳设计任务是选择有限长度旳h(n),使传播函数H(e j ω)满足技术规定。

重要设计措施有窗函数法、频率采样法和切比雪夫等波纹逼近法等。

本实验重要简介窗函数法。

用窗函数法设计FIR 数字滤波器旳基本环节如下:(1)根据过渡带和阻带衰减指标选择窗函数旳类型,估算滤波器旳阶数N 。

(2)由数字滤波器旳抱负频率响应H(e j ω)求出其单位脉冲响应h d (n)。

可用自定义函数ideal_lp实现抱负数字低通滤波器单位脉冲响应旳求解。

程序清单如下:function hd=ideal_lp(wc,N) %点0到N-1之间旳抱负脉冲响应%wc=截止频率(弧度)%N=抱负滤波器旳长度tao=(N-1)/2;n=[0:(N-1)];m=n-tao+eps; %加一种小数以避免0作除数hd=sin(wc*m)./(pi*m);其他选频滤波器可以由低通频响特性合成。

如一种通带在ωc1~ωc2之间旳带通滤波器在给定N值旳条件下,可以用下列程序实现:Hd=ideal_lp(wc2,N)-ideal_lp(wc1,N)(3)计算数字滤波器旳单位冲激响应h(n)=w(n)h d(n)。

使用MATLAB设计FIR滤波器

使用MATLAB设计FIR滤波器

使⽤MATLAB设计FIR滤波器1. 采⽤fir1函数设计,fir1函数可以设计低通、带通、⾼通、带阻等多种类型的具有严格线性相位特性的FIR滤波器。

语法形式:b = fir1(n, wn)b = fir1(n, wn, ‘ftype’)b = fir1(n, wn, ‘ftype’, window)b = fir1(n, wn, ‘ftype’, window, ‘noscale’)参数的意义及作⽤:b:返回的FIR滤波器单位脉冲响应,脉冲响应为偶对称,长度为n+1;n:滤波器的介数;wn:滤波器的截⽌频率,取值范围为0<wn<1,1对应信号采样频率⼀半。

如果wn是单个数值,且ftype参数为low,则表⽰设计截⽌频率为wn的低通滤波器,如果ftype参数为high,则表⽰设计截⽌频率为wn的⾼通滤波器;如果wn是有两个数组成的向量[wn1wn2],ftype为stop,则表⽰设计带阻滤波器,ftype为bandpass,则表⽰设计带通滤波器;如果wn是由多个数组成的向量,则根据ftype的值设计多个通带或阻带范围的滤波器,ftype为DC-1,表⽰设计的第⼀个频带为通带,ftype为DC-0,表⽰设计的第⼀个频带为阻带;window:指定使⽤的窗函数,默认为海明窗;noscale:指定是否归⼀化滤波器的幅度。

⽰例:N=41; %滤波器长度fs=2000; %采样频率%各种滤波器的特征频率fc_lpf=200;fc_hpf=200;fp_bandpass=[200 400];fc_stop=[200 400];%以采样频率的⼀半,对频率进⾏归⼀化处理wn_lpf=fc_lpf*2/fs;wn_hpf=fc_hpf*2/fs;wn_bandpass=fp_bandpass*2/fs;wn_stop=fc_stop*2/fs;%采⽤fir1函数设计FIR滤波器b_lpf=fir1(N-1,wn_lpf);b_hpf=fir1(N-1,wn_hpf,'high');b_bandpass=fir1(N-1,wn_bandpass,'bandpass');b_stop=fir1(N-1,wn_stop,'stop');%求滤波器的幅频响应m_lpf=20*log(abs(fft(b_lpf)))/log(10);m_hpf=20*log(abs(fft(b_hpf)))/log(10);m_bandpass=20*log(abs(fft(b_bandpass)))/log(10);m_stop=20*log(abs(fft(b_stop)))/log(10);%设置幅频响应的横坐标单位为Hzx_f=0:(fs/length(m_lpf)):fs/2;%绘制单位脉冲响应%绘制单位脉冲响应subplot(421);stem(b_lpf);xlabel('n');ylabel('h(n)');subplot(423);stem(b_hpf);xlabel('n');ylabel('h(n)');subplot(425);stem(b_bandpass);xlabel('n');ylabel('h(n)');subplot(427);stem(b_stop);xlabel('n');ylabel('h(n)');%绘制幅频响应曲线subplot(422);plot(x_f,m_lpf(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);subplot(424);plot(x_f,m_hpf(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);subplot(426);plot(x_f,m_bandpass(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);subplot(428);plot(x_f,m_stop(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);2. 采⽤fir2函数设计,函数算法是:⾸先根据要求的幅频响应向量形式进⾏插值,然后进⾏傅⾥叶变换得到理想滤波器的单位脉冲响应,最后利⽤窗函数对理想滤波器的单位脉冲响应激进型截断处理,由此得到FIR滤波器系数。

利用MATLAB窗函数法设计一个可实现的FIR低通滤波器。

利用MATLAB窗函数法设计一个可实现的FIR低通滤波器。

一、实验目的1.掌握在MATLAB中窗函数的使用方法,了解不同窗函数之间的差别。

2.使用窗函数法设计一个可实现的FIR低通滤波器。

3.观察在相同长度下,不同的窗函数设计出来的滤波器有什么差别。

4.观察同一个窗在不同长度下设计出来的滤波器有什么差别。

二、实验条件PC机,MATLAB7.0三、实验内容1)通过help查找窗函数在MATLAB中如何实现通过example了解MATLAB中窗函数的实现,并且利用矩形窗,汉宁窗,哈明窗,布莱克曼窗和凯塞窗来进行接下来的实验。

2)设计物理可实现的低通滤波器设计思路:因为要设计FIR有限脉冲响应滤波器,通常的理想滤波器的单位脉冲响应h是无限长的,所以需要通过窗来截断它,从而变成可实现的低通滤波器。

程序如下:clc;clear all;omga_d=pi/5;omga=0:pi/30:pi;for N=3:4:51;w1= window(@blackman,N);w2 = window(@hamming,N);w3= window(@kaiser,N,2.5);w4= window(@hann,N);w5 = window(@rectwin,N);M=floor(N/2);subplot(311);plot(-M:M,[w1,w2,w3,w4,w5]); axis([-M M 0 1]);legend('Blackman','Hamming','kaiser','hann','rectwin');n=1:M;hd=sin(n*omga_d)./(n*omga_d)*omga_d/pi;hd=[fliplr(hd),1/omga_d,hd];h_d1=hd.*w1';h_d2=hd.*w2';h_d3=hd.*w3';h_d4=hd.*w4';h_d5=hd.*w5';m=1:M;H_d1=2*cos(omga'*m)*h_d1(M+2:N)'+h_d1(M+1);H_d2=2*cos(omga'*m)*h_d2(M+2:N)'+h_d2(M+1);H_d3=2*cos(omga'*m)*h_d3(M+2:N)'+h_d3(M+1);H_d4=2*cos(omga'*m)*h_d4(M+2:N)'+h_d4(M+1);H_d5=2*cos(omga'*m)*h_d5(M+2:N)'+h_d5(M+1);subplot(312);plot(omga,[H_d1,H_d2,H_d3,H_d4,H_d5]);legend('Blackman','Hamming','kaiser','hann','rectwin');subplot(313);plot(abs([fft(h_d1);fft(h_d2);fft(h_d3);fft(h_d4);fft(h_d5)] )');pause();end程序分析:整个对称窗的长度为N,然而为了在MATLAB中看到窗函数在负值时的形状需将N 变为它的一半,即为2M+1个长度。

基于MATLAB设计FIR滤波器

基于MATLAB设计FIR滤波器

基于MATLAB设计FIR滤波器FIR(Finite Impulse Response)滤波器是一种数字滤波器,它具有有限的冲激响应长度。

基于MATLAB设计FIR滤波器可以使用signal工具箱中的fir1函数。

fir1函数的语法如下:b = fir1(N, Wn, window)其中,N是滤波器的阶数,Wn是截止频率,window是窗函数。

要设计一个FIR低通滤波器,可以按照以下步骤进行:步骤1:确定滤波器的阶数。

阶数决定了滤波器的截止频率的陡峭程度。

一般情况下,阶数越高,滤波器的陡峭度越高,但计算复杂度也会增加。

步骤2:确定滤波器的截止频率。

截止频率是指在滤波器中将信号的频率限制在一定范围内的频率。

根据应用的需求,可以选择适当的截止频率。

步骤3:选择窗函数。

窗函数是为了在时域上窗口函数中心增加频率衰减因子而使用的函数。

常用的窗函数有Hamming、Hanning等。

窗函数可以用来控制滤波器的幅度响应特性,使得它更平滑。

步骤4:使用fir1函数设计滤波器。

根据以上步骤确定滤波器的阶数、截止频率和窗函数,可以使用fir1函数设计FIR滤波器。

具体代码如下:N=50;%设定阶数Wn=0.5;%设定截止频率window = hanning(N + 1); % 使用Hanning窗函数步骤5:使用filter函数对信号进行滤波。

设计好FIR滤波器后,可以使用filter函数对信号进行滤波。

具体代码如下:filtered_signal = filter(b, 1, input_signal);其中,input_signal是输入信号,filtered_signal是滤波后的信号。

以上,便是基于MATLAB设计FIR滤波器的简要步骤和代码示例。

根据具体需求和信号特性,可以进行相应的调整和优化。

(实验三窗函数的特性分析)

(实验三窗函数的特性分析)

实验报告实验课程:数字信号处理实验开课时间:2020—2021 学年秋季学期实验名称:窗函数的特性分析实验时间:2020年9月16日星期三学院:物理与电子信息学院年级:大三班级:182 学号:1843202000234 姓名:武建璋一、实验预习(2)固定N=60,分别取beta=1,5,11。

clc,clear,close allbeat1=1;beat2=5;beat3=11;N=60;figure(1)subplot(3,2,[1,2])W=kaiser(N,beat1);stem([0:N-1],W);subplot(3,2,[3,4]);Ww=kaiser(N,beat2);stem([0:N-1],Ww);subplot(3,2,[5,6]);WW=kaiser(N,beat3);stem([0:N-1],WW);figure(2)subplot(3,2,[1,2])W1=fft(W,N)plot([0:N-1],abs(fftshift(W1))) subplot(3,2,[3,4]);W2=fft(Ww,N)plot([0:N-1],abs(fftshift(W2))) subplot(3,2,[5,6]);W3=fft(WW,N)plot([0:N-1],abs(fftshift(W3)))4、某序列为x[k] = (11πk/20) + cos(9πk/20),使用fft函数分析其频谱。

(1) 利用不同宽度N的矩形窗截短该序列,N分别为20,40,160,观察不同长度N 的窗对谱分析结果的影响。

clc,clear,close allN1=20;N2=40;N3=160;k1=0:N1;k2=0:N2;k3=0:N3;X1=0.5.*cos((11*pi*k1)/20)+cos((9*pi*k1)/20)X2=0.5.*cos((11*pi*k2)/20)+cos((9*pi*k2)/20)X3=0.5.*cos((11*pi*k3)/20)+cos((9*pi*k3)/20)figure(1)subplot(3,2,[1,2])W1=fft(X1,N1)plot([0:N1-1],abs(fftshift(W1)))subplot(3,2,[3,4]);W2=fft(X2,N2)plot([0:N2-1],abs(fftshift(W2)))subplot(3,2,[5,6]);W3=fft(X3,N3)plot([0:N3-1],abs(fftshift(W3)))figure(2)subplot(3,2,[1,2])W=abs(fftshift(W1))stem([0:N1-1],W);subplot(3,2,[3,4]);Ww=abs(fftshift(W2))stem([0:N2-1],Ww);subplot(3,2,[5,6]);WW=abs(fftshift(W3))stem([0:N3-1],WW);(2) 利用汉明窗重做(1)。

用MATLAB结合窗函数法设计数字带通FIR滤波器

用MATLAB结合窗函数法设计数字带通FIR滤波器

武汉理工大学《Matlab课程设计》报告目录摘要 (I)Abstract (II)1 原理说明 (1)1.1 数字滤波技术 (1)1.2 FIR滤波器 (1)1.3 窗函数 (2)1.4 MATLAB简介 (4)1.5 MATLAB结合窗函数设计法原理 (4)2 滤波器设计 (2)2.1 滤波器设计要求 (2)2.2 设计函数的选取 (2)2.3 窗函数构造 (3)2.4 设计步骤 (4)2.5 利用MATLAB自带函数设计 (4)3 滤波器测试 (9)3.1 滤波器滤波性能测试 (9)3.2 滤波器时延测量................................................................................错误!未定义书签。

3.3 滤波器稳定性测量............................................................................错误!未定义书签。

5 参考文献 (12)附件一: ........................................................................................................ 错误!未定义书签。

摘要现代图像、语声、数据通信对线性相位的要求是普遍的。

数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。

根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。

与IIR滤波器相比,FIR的实现是非递归的,总是稳定的;更重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性。

因此,具有线性相位的FIR数字滤波器在高保真的信号处理,如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。

完整版使用MATLAB设计ISE中FIR滤波器系数方法

完整版使用MATLAB设计ISE中FIR滤波器系数方法

使用 MATLAB 设计 ISE中 FIR 滤波器系数的方法
1、翻开 MATLAB,在命令行窗口输入“fdatool”,翻开“Filter Designer& Analysis Tool”工具。

以下列图所示:
2、因为 FPGA中滤波器的系数需要为整数,所以需要在此处将系数设置为“Fixed
-point ”种类。

点击上图中红色方框内的按钮,在新出现的页面中将“ Filter arithmetic ”设置为“ Fixed -point ”。

设置达成后以下列图所示:
3、点击上图中红色方框内的按钮,进入滤波器参数设置页面,在此中设置采样
频次( Fs)、通带频次( Fpass)、阻带频次( Fstop )以及阻带衰减( Astop )等参数,并按最下边的“ Design Filter”按钮生成滤波器系数。

以下列图所示,采样频次为 62MHz,通带频次为 2MHz,阻带频次为 4MHz,阻带衰减为 -80dB。

4、而后导出 coe 文件,点击下列图方框中的按钮即可导出coe 文件:
5、在 ISE 中新建一个 FIR 滤波器 IP 核,在第一页设置中将“ Select Source ”改为“ COE File ”,而后在下边选择上一步生成的 coe 文件即可。

用MAtlab实现FIR数字滤波器的设计

用MAtlab实现FIR数字滤波器的设计

设计方法
• 一、窗函数设计法 • 二、频率抽样设计法 • 三、最小二乘逼近设计法
FIR 数 字 滤 波 器 的 文 件
一、fir1.m
• 本文件采用窗函数法设计FIR数字滤波器,其调用格式是
• 1)b=fir1(N ,W c)
• 2)b=fir1(N,W c ,’high’) • 3)b=fir1(N,W c ,’stop’)
实践课题
FIR 数 字 滤 波 器 的 设 计
实践目的


通过实践加深对Matlab软件的认识。 能熟练应用并基本掌握Matlab软件, 通过实践对课本以外的内容有初步的 了解。 通过设计FIR数字滤波器,对滤波器 的功能和原理有初步的认识和了解。
实践课题简介
在数字信号处理的许多领域中, 如图像处理、数字通信等领域,常 常要求滤波器具有线性相位。FIR数 字滤波器的最大优点就是容易设计 成线性相位特性,而且它的单位冲 激响应是有限长的,所以它永远是 稳定的。

Hale Waihona Puke 上式中N为滤波器的阶次,W c是通带截止频率,其值在0~1之间, 1对应采样频率的一半,b是设计好的滤波器系数(单位冲激响应序 列)其长度为N+1。
对于格式(1)若W c是一标量,则可用来设计低通滤波器;若W c 是 的向量,则用来设计带通滤波器。 格式(2)用来设计高通滤波器。 格式(3)用来设计带阻滤波器。
部分滤波器的例子(频率抽样法)

部分滤波器的例子(最小二乘逼近设计法)

Fircls1设计的低通滤波器,归一化截止频率 为0.3,通带波纹为0.02,阻带波纹为0.008。
实践总结

通过这次实践课题的设计与制作,使我 对Matlab这个软件有了进一步的了解,并且 加深了课本上的知识。与此同时,使我对 滤波器有了初步的认识。提高了我的理解 以及分析能力,理论和实践相结合,不仅 巩固了我的理论知识,同时更提高了我的 实践能力,使我受益匪浅。

MATLAB在FIR滤波器中的应用

MATLAB在FIR滤波器中的应用

一、基本窗函数 二、窗函数法设计FIR滤波器 三、频率抽样法设计FIR滤波器
基本窗函数
• 1、矩形窗(Rectanglar Window) W=boxcar(n) n-窗函数的长度 example
n=50; y=boxcar(n); [h,w]=freqz(y,1); subplot(2,1,1); stem(y); subplot(2,1,2); plot(w/pi,20*log(abs(h)/abs(h(1))))
• • • •
6、凯塞窗 w=kaiser(n,beta) n-窗函数的长度, beta-用于控制旁瓣的高度,n一定, beta越大,其旁瓣就越小。
二、利用窗函数法设计FIR滤波器
• 1、Fir1函数:设计具有标准频率响应的FIR
• • • • • • (1) b=fir1(n,wn) b=fir1(n,wn,’high’) b=fir1(n,wn,’low’) b=fir1(n,wn,’bandpass’) b=fir1(n,wn,’stop’)
• • • • • •
2、三角窗 w=triang(n) 3、汉宁窗函数 w=hanning(n) w=hanning(n,’symmetric’) w=hanning(n,’periodic’)
• 4、海明窗函数 w=hamming(n) w=hamming(n,sflag) 5、布莱克曼窗函数 w=blackman(n) w=blackman(n,sflag)
三、频率抽取法设计FIR数字滤波器
• 1、Remez函数:通过最佳逼近法设计 FIR滤波器 • b=remez(n,f,a) • 通过最大误差最小化原则,设计一个由f 和a指定幅频响应和实线性相位对称的n 阶FIR数字滤波器

基于MATLAB的FIR滤波器设计及实现.

基于MATLAB的FIR滤波器设计及实现.

1引言数字滤波是数字信号处理的一种重要算法,广泛用于对信号的过滤、检测与参数的估计等信号处理中。

数字滤波器是使用最为广泛的装置,在工业、农业和其他行业均有应用[1]。

数字滤波器按其单位脉冲响应的长度可分为有限脉冲响应(FIR )滤波器和无限脉冲响应(IIR )滤波器两类。

FIR 滤波器的线性与稳定性使其应用更为广泛。

本文主要介绍采用窗函数法设计FIR 滤波器及其MATLAB 的软件实现方法。

2FIR 数字滤波器设计原理FIR 数字滤波器可以用下面的差分方程来描述y (n )=N -1m =0∑ h (m )x(n -m )=x (n )*h (n )其中x (n )是输入序列,y (n )是输出序列,h(n )是系统的单位脉冲响应。

由于其采用卷积的方法得到输出,故可以采用快速算法FFT 进行卷积计算,提高信号处理速度。

FIR 数字滤波器满足线性相位的条件是其乘法器的系数关于中点对称,又因为其结构无反馈的回路,所以是无条件的稳定系统。

3窗函数法设计及MATLAB 实现FIR 滤波器目前常用的设计方法有窗函数法和频率采样法,窗函数法是从时域进行设计,而频率采样法是从频域进行设计。

窗函数法由于简单、物理意义清晰,因而得到了较为广泛的应用[2]。

窗函数法设计的基本思想是:首先根据技术指标要求,选取合适的阶数N 和窗函数的类型w (n ),使其幅频特性逼近理想滤波器幅频特性。

其次,因为理想滤波器的h d(n )是无限长的,所以需要对h d (n )进行截断,数学上称这种方法为窗函数法。

h d(n )=FT -1H d e j ω( [ ] h (n )=h d (n )w(n )其中h d (n )是希望逼近的滤波器的单位脉冲响应,H d e j ω( 是希望逼近的滤波器的幅频特性,h (n )是所设计的滤波器的单位脉冲响应,w(n )是窗函数。

在截断的过程中要保证FIR 滤波器的稳定性与线性邵毅温艳(宿州学院宿州234000)基金支持:宿州学院自然科学研究项目(2008yzk09);宿州学院硕士科研启动基金(2008yss14)。

实验三 用窗函数设计FIR滤波器

实验三   用窗函数设计FIR滤波器

实验三 用窗函数设计FIR 滤波器一、实验目的1.熟悉FIR 滤波器设计的基本方法。

2.掌握用窗函数设计FIR 数字滤波器的原理及方法,熟悉相应的计算机高级语言编程。

3.熟悉线性相位FIR 滤波器的幅频特性和相位特性。

4.了解各种不同窗函数对滤波器性能的响应。

二、实验原理与方法(一)FIR 滤波器的设计目前FIR 滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。

常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。

本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。

它是从时域出发,用一个窗函数截取理想的h d (n)得到h(n),以有限长序列h(n)近似理想的h d (n);如果从频域出发,用理想的H d (Ω)在单位圆上等角度取样得到H(k),根据h(k)得到H(z)将逼近理想的H d (Z ),这就是频率取样法。

(二)窗函数设计法同其它的数字滤波器的设计方法一样,用窗函数设计滤波器也是首先要对滤波器提出性能指标。

一般是给定一个理想的频率响应H d (Ω),使所设计的FIR 滤波器的频率响应H(Ω)去逼近所要求的理想的滤波器的相应H d (Ω)。

窗函数法设计的任务在于寻找一个可实现(有限长单位脉冲响应)的传递函数去逼近H d (Ω)。

11()()N j n n H h n e --Ω=Ω=∑我们知道,一个理想的频率响应H d (Ω)的傅理叶变换1()()2j n d d h n H e d πππΩ-=ΩΩ⎰所得到的理想单位脉冲响应h d (n)往往是一个无限长序列。

对h d (n)经过适当的加权、截断处理才得到一个所需要的有限长脉冲响应序列。

对应不同的加权、截断,就有不同的窗函数。

所要寻找的滤波器脉冲响应就等于理想脉冲响应和窗函数的乘积。

即h (n)=h d (n)w (n),由此可见,窗函数的性质就决定了滤波器的品质。

FIR数字滤波器的Matlab实现

FIR数字滤波器的Matlab实现

FIR数字滤波器的Matlab实现一、实验目的1、学习用窗函数法设计FIR数字滤波器的原理及其设计步骤;2、学习编写数字滤波器的设计程序的方法,并能进行正确编程;三、实验内容与步骤,阻带边界频率1、设计一FIR低通滤波器,通带边界频率π3.0Ω=pπ5.0,阻带衰减不小于50dB。

=Ωs程序代码与仿真图分别见下:clear all;Wp=0.3*pi;Ws=0.5*pi;tr_width=Ws-Wp;%过渡带宽度N=ceil(6.6*pi/tr_width)+1%滤波器长度n=0:1:N-1;Wc=(Ws+Wp)/2; %理想低通滤波器的截止频率hd=ideal_lp1(Wc,N); %理想低通滤波器的单位冲激响应w_ham=(hamming(N))';%海明窗h=hd.*w_ham; %截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1]); %计算实际滤波器的幅度响应delta_w=2*pi/1000;Ap=-(min(db(1:1:Wp/delta_w+1))); %实际通带纹波As=-round(max(db(Ws/delta_w+1:1:501))); %实际阻带纹波subplot(2 2 1);stem(n,hd);title('理想单位脉冲响应hd(n)');subplot(2 2 2);stem(n,w_ham);title('海明窗w(n)');subplot(2 2 3);stem(n,h);title('实际单位脉冲响应hd(n)');10203040理想单位脉冲响应hd(n)010203040海明窗w(n)10203040实际单位脉冲响应hd(n)0.51-100-50幅度响应(dB)subplot(2 2 4);plot(w/pi,db);title('幅度响应(dB)');axis([0,1,-100,10]); function[db,mag,pha,w]=freqz_m2(b,a) [H,w]=freqz(b,a,1000,'whole'); H=(H(1:1:501))'; w=(w(1:1:501))';mag=abs(H); db=20*log10((mag+eps)/max(mag)); pha=angle(H);function hd=ideal_lp1(Wc,N);所调用的函数 alpha=(N-1)/2; n=0:1:N-1; m=n-alpha+eps; hd=sin(Wc*m)./(pi*m);2、设计一个数字带通滤波器,指标要求如下:通带边缘频率:π45.01=ΩP ,π65.02=ΩP ,通带峰值起伏:][1dB p ≤α。

利用MATLAB进行基于窗函数的FIR数字滤波器的设计

利用MATLAB进行基于窗函数的FIR数字滤波器的设计

西南石油大学实验报告一实验目的:学习利用MATLAB进行基于窗函数的FIR数字滤波器的设计。

二实验内容:利用矩形窗、哈明窗、汉宁窗和布莱克曼窗设计一个FIR低通滤波器,已知ωc=0.25π,N=10三实验步骤:1、实验程序N=10;M=128;b1=fir1(N,0.25,boxcar(N+1)); %用矩形窗作为冲激响应的窗函数b2=fir1(N,0.25,hamming(N+1)); %用哈明窗作为冲激响应的窗函数b3=fir1(N,0.25,blackman(N+1)); %用布莱克曼窗作为冲激响应的窗函数b4=fir1(N,0.25,hanning(N+1)); %用汉宁窗作为冲激响应的窗函数h1=freqz(b1,1,M); %矩形窗对应的频率响应h2=freqz(b2,1,M); %哈明窗对应的频率响应h3=freqz(b3,1,M); %布莱克曼窗对应的频率响应h4=freqz(b4,1,M); %汉宁窗对应的频率响应f=0:0.5/M:0.5-0.5/M;plot(f,abs(h1),'-.',f,abs(h2),f,abs(h3),'*',f,abs(h4),':');legend('¾ØÐδ°','¹þÃ÷´°','BLACKMAN','ººÄþ´°');grid;ylabel('magnitude response');xlabel('w/(2*pi)');axis([0 0.5 0 1.2]);set(gca,'XTickMode','manual','XTick',[0,0.25,0.5]);set(gca,'YTickMode','manual','XTick',[0,0.5,1]);2、运行结果如下图所示四、实验结论在实验后,我对MATLAB软件有了进一步的了解,也在不断的实践中,更多的熟悉了MATLAB的编程,在编程方面一点点的有了进步。

MATLAB窗函数法实现FIR的高通-带通和低通滤波器的程序要点

MATLAB窗函数法实现FIR的高通-带通和低通滤波器的程序要点

MATLAB课程设计报告学院:地球物理与石油资源学院班级: 测井(基)11001姓名:大牛啊啊啊学号:班内编号:指导教师: 陈义群完成日期: 2013年6月3日一、 题目 FIR 滤波器的窗函数设计法及性能比较1. FI R滤波器简介数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。

根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。

与I IR滤波器相比,FIR 滤波器的主要特点为: a. 线性相位;b.非递归运算。

2. FIR滤波器的设计FIR 滤波器的设计方法主要有三种:a.窗函数设计法;b.频率抽样发;c.最小平法抽样法; 这里我主要讨论在MA TLAB 环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能。

窗函数法设计F IR 滤波器的一般步骤如下:a. 根据实际问题确定要设计的滤波器类型;b. 根据给定的技术指标,确定期望滤波器的理想频率特性;c. 求期望滤波器的单位脉冲响应;d. 求数字滤波器的单位脉冲响应;e. 应用。

常用的窗函数有同。

时与布莱克曼窗结果相当时与海明窗结果相同;时与矩形窗一致;当当885.84414.50]!)2/([1)(120===+=∑∞=x x x m x x I m m4. 常用窗函数的参数函数,可定义为是零阶式中Bessel x I n R I N n I n w windowKaiser n R N n N n n w windowBalckm an n R N n n w windowHam m ing n R N n n w windowHanning N N N N )()5.2.9()(])(})]1/(2[1{[)()4()4.2.9()()]14cos(08.0)12cos(5.042.0[)()3()3.2.9()()]12cos(46.054.0[)()2()2.2.9()()]1cos(5.05.0[)()1(0020ββππππ--=-+--=--=--=5.FIR滤波器的MATLAB实现方式在MATLAB信号分析与处理工具箱中提供了大量FIR窗函数的设计函数,本次用到主要有以下几种:hanning(N) hanning窗函数的调用hamming(N) hamming窗函数的调用blackman(N) blackman窗函数的调用kaiser(n+1,beta) kaiser窗函数的调用kaiserord 计算kaiser窗函数的相关参数freqz求取频率响应filter 对信号进行滤波的函数6.实验具体步骤本次实验分别通过调用hanning ,hamming ,Blackman,kaiser窗函数,给以相同的技术参数,来设计低通,带通,高通滤波器,用上述窗函数的选择标准来比较各种窗函数的优劣,并给以一个简谐波进行滤波处理,比较滤波前后的效果。

毕业设计(论文)-基于matlab的fir滤波器设计[管理资料]

毕业设计(论文)-基于matlab的fir滤波器设计[管理资料]

基于Matlab的FIR滤波器设计摘要介绍了利用MATLAB信号处理工具箱进FIR滤波器设计的三种方法:窗函数法、频率采样法和最优化设计,给出了详细的设计步骤,并将设计的滤波器应用到一个混和正弦波信号,以验证滤波器的性能。

关键词:MATLAB,数字滤波器,有限冲激响应,窗函数,仿真The FIR filter design based on MATLABAuthor:Liu JunyueTutor:Huang LiqunAbstractIntroduced into the signal processing toolbox using MATLAB FIR filter design in three ways: Window function method, frequency sampling method and the most optimal design, detailed design steps are given, and the design of the filter is applied to a sine wave mixing signal, to verify the filter performance.Key Words: MATLAB, digital filter, finite impulse response, the window function,simulation目录1 绪论 (1)数字滤波器的研究背景和意义 (1)数字滤波器的应用及现状 (1)数字滤波器的设计方法 (1)2 数字滤波器的结构 (3)直接型 (3)级联型 (3)频率取样型 (4)3 FIR滤波器 (9)FIR滤波器的基本概念 (9)FIR滤波器的特点 (9)FIR滤波器的种类 (10)数字集成电路FIR滤波器 (10)DSP芯片FIR滤波器 (10)可编程FIR滤波器 (10)4 FIR数字滤波器设计 (11)窗函数法 (11)矩形窗 (11)海宁(Hanning)窗与汉明(Hamming)窗 (12)布来克曼窗(Blackman) (12)凯泽窗(Kaiser) (13)窗函数法设计步骤及举例 (14)频率采样法 (18)基本思想 (19)约束条件 (19)设计误差 (19)最优化设计 (21)等波纹切比雪夫逼近准则 (23)仿真函数 (23)5 结果分析 (24)窗函数法仿真结果 (24)频率采样法 (25)最优化设计 (27)结论 (29)致谢 ........................................................................................... 错误!未定义书签。

MATLAB与窗函数法结合设计FIR数字滤波器的研究

MATLAB与窗函数法结合设计FIR数字滤波器的研究

谢谢观看
数字滤波器的基本原理
数字滤波器的基本原理
数字滤波器是一种通过数字信号处理技术对输入信号进行滤波处理的系统。 它通过一定的算法,对输入信号进行线性或非线性的时间域或频率域处理,以达 到特定的信号特征提取、增强或抑制的效果。FIR数字滤波器是一种离散时间滤 波器,其输出仅与过去的输入有关,具有易于实现、稳定性和线性相位等优点。
MATL AB与窗函数法结合 设计FIR数字滤波器的研究
01 引言
目录
02
数字滤波器的基本原 理
03 MATLAB在数字滤波器 设计中的应用
04
窗函数法在数字滤波 器设计中的应用
05 参考内容
引言
引言
随着数字化时代的到来,数字滤波器在信号处理领域的应用越来越广泛。其 中,FIR(有限冲激响应)数字滤波器因其特有的性质,如易于实现、稳定性和 线性相位等,成为应用最广泛的一种数字滤波器。在设计中,窗函数法作为一种 有效的优化技术,可以降低滤波器的复杂性并提高其性能。本次演示将介绍 MATLAB与窗函数法结合设计FIR数字滤波器的研究,旨在为相关领域的研究和实 践提供有益的参考。
1、简单易行,便于实现; 2、可以根据需要选择不同的窗函数,以满足不同的性能要求;
3、设计的滤波器具有稳定的线 性相位特性。
3、设计的滤波器具有稳定的线性相位特性。
1、设计的滤波器在过渡带可能会有较高的旁瓣水平,导致频率选择性能不够 理想;
2、对于某些窗函数,旁瓣衰减速度较慢,导致滤波器性能下降;
3、对滤波器进行实施:将优化后的系数用于滤波器的实现,可采用直接型、 级联型等不同的结构。
3、对滤波器进行实施:将优化 后的系数用于滤波器的实现
3、对滤波器进行实施:将优化后的系数用于滤波器的实现,可采用 直接型、级联型等不同的结构。

基于matlab的FIR数字滤波器设计(多通带,窗函数法)

基于matlab的FIR数字滤波器设计(多通带,窗函数法)

数字信号处理课程设计报告设计名称:基于matlab的FIR数字滤波器设计彪一、课程设计的目的1、通过课程设计把自己在大学中所学的知识应用到实践当中。

2、深入了解利用Matlab设计FIR数字滤波器的基本方法。

3、在课程设计的过程中掌握程序编译及软件设计的基本方法。

4、提高自己对于新知识的学习能力及进行实际操作的能力。

5、锻炼自己通过网络及各种资料解决实际问题的能力。

二、主要设计内容利用窗函数法设计FIR滤波器,绘制出滤波器的特性图。

利用所设计的滤波器对多个频带叠加的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器的效果。

三、设计原理FIR 滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的。

目前 FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。

常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。

本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求高的时候是比较灵活方便的。

如果 FIR 滤波器的 h(n)为实数, 而且满足以下任意条件,滤波器就具有准确的线性相位:第一种:偶对称,h(n)=h(N-1-n),φ (ω)=-(N-1)ω/2第二种:奇对称,h(n)=-h(N-1-n), φ(ω)=-(N-1)ω/2+pi/2对称中心在n=(N-1)/2处四、设计步骤1.设计滤波器2.所设计的滤波器对多个频带叠加的正弦信号进行处理3.比较滤波前后信号的波形及频谱五、用窗函数设FIR 滤波器的基本方法基本思路:从时域出发设计 h(n)逼近理想 hd(n)。

设理想滤波器的单位响应在时域表达为hd(n),则Hd(n) 一般是无限长的,且是非因果的,不能直接作为FIR 滤波器的单位脉冲响应。

要想得到一个因果的有限长的滤波器单位抽样响应 h(n),最直接的方法是先将hd(n)往右平移,再迕行截断,即截取为有限长因果序列:h(n)=hd(n)w(n),并用合适的窗函数迕行加权作为FIR 滤波器的单位脉冲响应。

fir数字滤波器设计实验报告

fir数字滤波器设计实验报告

fir数字滤波器设计实验报告fir数字滤波器设计实验报告引言:数字滤波器是一种广泛应用于信号处理和通信系统中的重要工具。

其中,有一类常见的数字滤波器是FIR(Finite Impulse Response)数字滤波器。

FIR数字滤波器具有线性相位特性、稳定性好、易于设计和实现等优点,被广泛用于音频处理、图像处理、通信系统等领域。

本实验旨在通过设计一个FIR数字滤波器,探索其设计原理和实际应用。

一、实验目的本实验的目的是通过设计一个FIR数字滤波器,实现对特定信号的滤波处理。

具体来说,我们将学习以下几个方面的内容:1. FIR数字滤波器的基本原理和特点;2. FIR数字滤波器的设计方法和流程;3. 使用MATLAB软件进行FIR数字滤波器的设计和仿真。

二、实验原理1. FIR数字滤波器的基本原理FIR数字滤波器是一种线性时不变系统,其输出仅与当前输入和过去若干个输入有关,没有反馈回路。

这种特性使得FIR数字滤波器具有线性相位特性,适用于对信号的频率响应要求较高的应用场景。

FIR数字滤波器的输出可以通过卷积运算来计算,即将输入信号与滤波器的冲激响应进行卷积运算。

2. FIR数字滤波器的设计方法FIR数字滤波器的设计方法有很多种,常见的包括窗函数法、频率采样法和最优化方法等。

在本实验中,我们将使用窗函数法进行FIR数字滤波器的设计。

窗函数法的基本思想是将理想滤波器的频率响应与一个窗函数相乘,从而得到实际可实现的滤波器。

三、实验步骤1. 确定滤波器的设计要求在设计FIR数字滤波器之前,我们首先需要明确滤波器的设计要求。

包括滤波器的通带、阻带、过渡带的频率范围和响应要求等。

2. 选择窗函数和滤波器的阶数根据设计要求,选择合适的窗函数和滤波器的阶数。

常见的窗函数有矩形窗、汉宁窗、汉明窗等。

不同的窗函数对滤波器的性能有一定影响,需要根据实际情况进行选择。

3. 计算滤波器的冲激响应利用所选窗函数和滤波器的阶数,计算滤波器的冲激响应。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验10 用MATLAB 窗函数法设计FIR 滤波器
一、实验目的
㈠、学习用MA TLAB 语言窗函数法编写简单的FIR 数字滤波器设计程序。

㈡、实现设计的FIR 数字滤波器,对信号进行实时处理。

二、实验原理
㈠、运用窗函数法设计FIR 数字滤波器
与IIR 滤波器相比,FIR 滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。

设FIR 滤波器单位脉冲响应)(n h 长度为N ,其系统函数)(z H 为
∑-=-=1
0)()(N n n z
n h z H
)(z H 是1-z 的)1(-N 次多项式,它在z 平面上有)1(-N 个零点,原点0=z 是)1(-N 阶重极点。

因此,)(z H 永远是稳定的。

稳定和线性相位特性是FIR 滤波器突出的优点。

FIR 滤波器的设计任务是选择有限长度的)(n h ,使传输函数)(ωj e H 满足技术要求。

主要设计方法有窗函数法、频率采样法和切比雪夫等波纹逼近法。

本实验主要介绍用窗函数法设计FIR 数字滤波器。

图7-10-1 例1 带通FIR 滤波器特性
㈡、 用MATLAB 语言设计FIR 数字滤波器
例1:设计一个24阶FIR 带通滤波器,通带为0.35<ω<0.65。

其程序如下
b=fir1(48,[0.35 0.65]);
freqz(b,1,512)
可得到如图7-10-1 所示的带通FIR滤波器特性。

由程序可知,该滤波器采用了缺省的Hamming窗。

例2:设计一个34阶的高通FIR滤波器,截止频率为0.48,并使用具有30dB波纹的Chebyshev窗。

其程序如下
Window=chebwin(35,30);
b=fir1(34,0.48,'high',Window);
freqz(b,1,512)
可得到如图7-10-2 所示的高通FIR滤波器特性。

图7-10-2 例2 高通FIR滤波器特性
例3:设计一个30阶的低通FIR滤波器,使之与期望频率特性相近,其程序如下 f=[0 0.6 0.6 1];
m=[1 1 0 0];
b=fir2(30,f,m);
[h,w]=freqz(b,1,128);
plot(f,m,w/pi,abs(h))
结果如图7-10-3所示。

图7-10-3 例3 理想和实际滤波器特性
例4:使用Hamming窗设计一个50阶的FIR带通滤波器,通带为0.3<ω<0.7,试用绝对和相对两种形式显示其幅频特性。

w1=0.3;w2=0.7;n=50;
Window=hamming(n+1);
b=fir1(n,[w1 w2],Window);
[h,w]=freqz(b,1);
GB=real(20*log10(h));
subplot(2,1,1);plot(w/pi,abs(h),'linewidth',2 );
set(gca,'XTickMode','manual','XTick',[0,1]);
set(gca,'YTickMode','man ual','YTick',[0.0032,0.5,0.707,0.8913,1]);
axis([0 ,1.0, -0.1, 1.2]);legend('|H(jω)|-ω');
subplot(2,1,2);plot(w/pi,GB,'linewidth',2);
set(gca,'XTickMode','manual','XTick',[0,1]);
set(gca,'YTickMode','manual','YTick',[-150,-100,-50,-1]);
axis([0 ,1.0, -150, 10]);legend('G(dB)-ω');
结果如图7-10-4所示。

图7-10-4 例4FIR带通滤波器幅频特性
三、实验任务
㈠、用窗函数法辅助设计FIR数字滤波器。

1.试用fir2设计一个32阶的FIR低通滤波器,通带为0.4<ω,并将它与期望频率特性相比较。

* 加矩形窗,并显示这个滤波器的幅频特性和相频特性。

2.试用fir1设计以上条件的FIR低通滤波器,其中请分别使用矩形窗、三角窗、哈明窗、汉宁窗、布莱克曼窗,观察其滤波器响应特性。

3.试用fir1设计一个16阶的FIR带阻滤波器,阻带为0.25<ω<0.75,请分别观察用矩形窗、三角窗、哈明窗、汉宁窗、布莱克曼窗实现滤波器响应特性的情况。

㈡、用硬件系统实现FIR数字滤波器
1.用硬件系统实现㈠、2中设计的FIR低通数字滤波器,用示波器观察其设计结果,并与MA TLAB中显示的结果相比较。

2.用硬件系统实现㈠、3中设计的FIR带通数字滤波器,用示波器观察其设计结果,并与MA TLAB中显示的结果相比较。

注:具体操作方法参考实验5。

㈢、试用fir1设计一个n=38的FIR带通滤波器,通带为0.4<ω<0.6,
1.要求使用具有50dB波纹的切比雪夫窗,观察其滤波器响应特性。

*2.试用绝对和相对两种形式显示其幅频特性。

四、实验预习
㈠、仔细阅读实验原理部分,了解MATLAB有关FIR滤波器设计方面的各条函数的意
义及使用方法,逐条分析例题程序。

㈡、试根据实验任务,列写设计程序。

五、实验设备
微型计算机一台
HD8680型DPS实验箱一台
双踪示波器一台
六、实验报告
列写出通过调试的设计程序。

相关文档
最新文档