利用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带通滤波器设计
X l a b e l ( ’ f r e q u e n c y i n p i u n i t s ’ ) ; Y l a b d( 。 Ma g n i t u d e R e s p o n s e i n d b ’ ) ; s e t ( g c a , ’ X T i c k Mo d e ' , ' ma n u a l ' , ' X t i c k ’ , [ 0 , 0 . 2 , 0 . 3 5 , 0 . 6 5 , 0 . 8 , 1 1 ) s e t ( g c a , ’ Y T i e k Mo d e ’ , ’ ma J 1 u a l ’ , ’ Y t i c k ’ , [ - 6 0 , o ] ) 2 结 果 分 析
程序运算结果 : M =7 5 , R p= O . 0 0 2 8 , A s =7 5 , 运算结果 图如图 1 所 示。由图可知 , 7 5阶 布 莱 克 曼 窗 的最 小 阻带 衰 减 为 7 5 d b ( > 6 0 d b ) , 通带最大衰减 O . O 0 2 8 d b ( < < l d b ) , 符合设计题 目的技 术指标
口
:
:
限长 F I R( i f n i t e i m p u l s e r e s p o n s e ) 滤波 器 和 无 限 长 l i B( i n f i n i t e i m — p u l s e r e s p o n s e ) 滤波器 。F I R数字 滤波器幅频特性精 度 比 I I R低 , 且 滤波器所 需阶次 比较 高 , 但是 它拥有很好 的线性相位 特性 , 即不 同 昱 . 印 频率分量的信号经过 F I R滤波器后 其时间差 不变 。 MA T L A B是美 国 Ma t h Wo r k s 公司推 出 的一 套用 于工程计算 的可 视化高 性能语 言 与 软 件环境 , 是 数字信号处理技术 实现的重要手段 。本 文采用 M A T _ L A B窗 函数法实现 F I R数字滤波器的设计 。 至 1程序设计及运行结果 I 根 据研究任务 , 需设计 带通数字滤 波器 的性 能指标如 下 : 低通 阻带边界频 率 : w s l = 0 . 2 * p i , 高端阻带边界频率 : w s 2 = 0 . 8 p i ; 阻带最小 口 衰减: A s = 6 0 d b 。低端通带边 界频率 : w p l = 0 . 3 5 " p i , 高端 通带边界 频 率: w p 2 = 0 . 6 5 " p i ; 通带最大衰减 :R p = l a b 。 根 据窗 函数最小 阻带衰减 的特性 表[ 2 1 , 可采用布莱 克曼 窗提供 大于6 0 d B的衰减 。设 计程序如下 : p l o t ( w / p i , d b ) ; d ; %数字滤波器的参数
实验3 用MATLAB窗函数法设计FIR滤波器
实验10 用MATLAB 窗函数法设计FIR 滤波器一、实验目的㈠、学习用MA TLAB 语言窗函数法编写简单的FIR 数字滤波器设计程序。
㈡、实现设计的FIR 数字滤波器,对信号进行实时处理。
二、实验原理㈠、运用窗函数法设计FIR 数字滤波器与IIR 滤波器相比,FIR 滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。
设FIR 滤波器单位脉冲响应)(n h 长度为N ,其系统函数)(z H 为∑-=-=10)()(N n n zn 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所示。
基于Matlab的FIR滤波器设计与实现
二、实验平台Matlab7.1三、实验原理以低通滤波器为例,其常用的设计指标有:1.通带边缘频率f p(数字频率为Ωp)2.阻带边缘频率f st (数字频率为Ωst)3.通带内最大纹波衰减δp=-20log10(1-αp),单位为dB4.阻带最小衰减αs=-20log10(αs),单位为dB5.阻带起伏αs6.通带峰值起伏αp其中,以1、2、3、4条最为常用。
5、6条在程序中估算滤波器阶数等参数时会用到。
数字频率= 模拟频率/采样频率四、实例分析例1 用凯塞窗设计一FIR低通滤波器,通带边界频率Ωp=0.3pi,阻带边界频率Ωs=0.5pi,阻带衰减δs不小于50dB。
方法一:手动计算滤波器阶数N和β值,之后在通过程序设计出滤波器。
第一步:通过过渡带宽度和阻带衰减,计算滤波器的阶数B和β值。
第二步:通过程序设计滤波器。
程序如下:b = fir1(29,0.4,kaiser(30,4.55));[h1,w1]=freqz(b,1);figure (1)plot(w1/pi, abs(h1));grid;xlabel('归一化频率/p') ;ylabel('幅度/dB') ;figure (2)plot(w1/pi,angle(h1));grid;xlabel('归一化频率/p') ;ylabel('相位') ;波形如下:例2 利用雷米兹交替算法设计等波纹滤波器,设计一个线性相位低通FIR数字滤波器,其指标为:通带边界频率fc=800Hz,阻带边界fr=1000Hz,通带波动阻带最小衰减At=40dB,采样频率fs=4000Hz。
一般调用MATLAB信号处理工具箱函数remezord来计算等波纹滤波器阶数N和加权函数W (ω),调用函数remez可进行等波纹滤波器的设计,直接求出滤波器系数。
函数remezord中的数组fedge为通带和阻带边界频率,数组mval是两个边界处的幅值,而数组dev是通带和阻带的波动,fs是采样频率单位为Hz。
基于matlab的fir数字滤波器的设计
一、引言数字滤波器是数字信号处理中至关重要的组成部分,它能够对数字信号进行滤波处理,去除噪音和干扰,提取信号中的有效信息。
其中,fir数字滤波器作为一种常见的数字滤波器类型,具有稳定性强、相位响应线性等特点,在数字信号处理领域得到了广泛的应用。
本文将基于matlab软件,探讨fir数字滤波器的设计原理、方法和实现过程,以期能够全面、系统地了解fir数字滤波器的设计流程。
二、fir数字滤波器的基本原理fir数字滤波器是一种有限长冲激响应(finite impulse response, FIR)的数字滤波器,其基本原理是利用线性相位特性的滤波器来实现对数字信号的筛选和处理。
fir数字滤波器的表达式为:$$y(n) = \sum_{k=0}^{M}h(k)x(n-k)$$其中,y(n)为输出信号,x(n)为输入信号,h(k)为滤波器的系数,M为滤波器的长度。
fir数字滤波器的频率响应特性由其系数h(k)决定,通过设计合适的系数,可以实现对不同频率成分的滤波效果。
三、fir数字滤波器的设计方法fir数字滤波器的设计方法主要包括窗函数法、频率抽样法、最小最大法等。
在matlab中,可以通过信号处理工具箱提供的fir1函数和firls函数等来实现fir数字滤波器的设计。
下面将分别介绍这两种设计方法的基本原理及实现步骤。
1. 窗函数法窗函数法是fir数字滤波器设计中最为常见的方法之一,其基本原理是通过对理想滤波器的频率响应进行窗函数加权来满足设计要求。
在matlab中,可以使用fir1函数实现fir数字滤波器的设计,其调用格式为:h = fir1(N, Wn, type)其中,N为滤波器的阶数,Wn为滤波器的截止频率,type为窗函数的类型。
通过调用fir1函数,可以灵活地设计出满足特定要求的fir数字滤波器。
2. 频率抽样法频率抽样法是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滤波器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滤波器的简要步骤和代码示例。
根据具体需求和信号特性,可以进行相应的调整和优化。
基于窗函数的FIR数字滤波器的优化及Matlab实现
由 已知 的 H ( 求 出 l()经过 z变 换可 得 到滤 波器 d e 1n , d 的系统函数 。但一般情况 下, e 是逐段稳 定的 , 边界频 I O  ̄( 在
H( = hne ̄ ()-
率处有 不 连续 点 , 因而 l() ln 是无 限时 宽 的, 是非 因果 序 d 且 列。 但是 从实现的角度来 说, 我们希 望得到一个 长度 为 N的
续一 定的时间 。
一
个 有 限长度 的窗 口函数序列 w() n 来截取 一个无 限长 的序
列 h() a n 获得 一个有 限长序 列 hn , hn=b() ()即 () d +w() n n 。这
样我 们用 一个 有 限长 的序 列 h n去代 替 h()肯 定会 引起 () d , n
波 器称之为 数字滤 波器 。数字滤 波器是 通过 一定运算 关系 改变输入信 号所含 频率成 分 的相 对 比例 或者 滤除某 些频率 成 分的器件 [ 1 ] 字滤波器 从单位脉冲 响应 分类 , 以分为 。数 可 无 限脉 冲响应 ( 滤波 器和有 限脉冲 响应 (瓜) I m) F 滤波器 。 由 数 字信 号处理 的一般理 论可 知,I I R滤波器 的特征 是具 有无 限持续时 间的冲激 响应 ,而 FR滤波器 的冲激 响应只 能持 I
线性相位滤波器 , 因此只 能通 过对 n进行加 窗得出 。 )
作 者 简介 : 明 , , 川 南充 人 , 科 , 究方 向 : 李 男 四 本 研 下一 代 网络 , 号 处理 。 信
3 a Ib 仿真设计 FR数 字滤波器 .M t a I
Mal t b是 Mah rs公 司 于 1 8 a tWok 9 2年推 出的一 套 高性
用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实现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滤波器,我们必须对其进行合理的设计,实现滤波器的功能。
本文介绍使用matlab程序来设计和实现fir滤波器的方法。
首先,我们需要确定滤波器的目标,包括滤波器的截止频率、阻带频率以及期望的功率谱,然后将这些参数输入matlab程序中,并使用合适的算法来计算滤波器的系数。
在matlab中实现fir滤波器的各种算法有很多种,包括传统的窗函数法,频率响应插值法,自适应法和波束形成法等。
算法的选择取决于优化目标,可以根据滤波器的要求自由选择。
当确定了滤波器要求和设计算法之后,就可以使用matlab编写程序来实现这些算法。
matlab有丰富的函数库,可以很容易地实现fir滤波器的设计。
具体的程序设计步骤如下:首先,选择所需的设计参数,包括滤波器阶数、归一化频率、幅值和相位等;然后,选择所需的算法,计算出匹配的滤波器系数;最后,编写一个完整的程序来实现fir滤波器的设计,测试滤波器的参数,并输出实现结果。
本文介绍了使用matlab程序来实现fir滤波器设计的方法,它可以实现滤波器的质量分析和测试,可以根据滤波器要求进行精确的设计。
使用matlab来设计fir滤波器,不仅可以缩短设计时间,而且能够节省大量的金钱和人力,具有非常重要的意义。
总之,fir滤波器在电子设备设计中有着重要的作用,使用matlab程序来设计和实现fir滤波器有着非常重要的意义。
通过此次研究,有助于我们更好地理解和应用matlab程序来设计和实现fir 滤波器,从而提高滤波器的性能,从而更好地满足电子设备设计的要求。
matlab用布莱克曼窗设计fir滤波器代码
matlab用布莱克曼窗设计fir滤波器代码如何使用Matlab设计带有布莱克曼窗的FIR滤波器。
布莱克曼窗是一种用于设计数字滤波器的常见窗函数之一。
它具有非常好的频域特性,可以用于实现各种滤波器,比如低通、高通、带通、带阻等。
在本文中,我们将详细介绍如何使用Matlab来设计带有布莱克曼窗的FIR 滤波器。
步骤1:确定设计规格在设计FIR滤波器之前,我们首先需要确定滤波器的一些规格,如滤波器的类型(低通、高通等)、截止频率、阶数等。
这些规格将决定最终滤波器的性能。
假设我们要设计一个低通滤波器,截止频率为0.2,阶数为50。
步骤2:计算滤波器系数使用Matlab的fir1函数可以计算出FIR滤波器的系数。
该函数的使用语法如下:h = fir1(N, Wn, window)其中,N表示滤波器的阶数,Wn表示归一化的截止频率,window表示所采用的窗函数。
对于布莱克曼窗,我们可以使用matlab中的blackman函数来生成窗函数:window = blackman(N+1)在这里,我们需要注意一个细节:由于Matlab的fir1函数使用的是双边频率表示法,而我们通常使用的是单边频率表示法。
因此,我们需要将截止频率进行一些处理,将其从正常范围[0, 0.5]映射到[-0.5, 0.5]上。
Wn = 2 * 0.2完成上述计算后,我们可以编写Matlab代码如下:N = 50;Wn = 2 * 0.2;window = blackman(N+1);h = fir1(N, Wn, window);步骤3:绘制滤波器的频率响应为了验证我们设计的滤波器效果,我们可以绘制其频率响应。
使用freqz 函数可以绘制滤波器的幅频特性:freqz(h,1)上述代码将绘制出滤波器的振幅响应和相位响应。
步骤4:应用滤波器完成滤波器的设计后,我们可以将其应用于信号上。
假设我们有一个需要滤波的信号x,我们可以使用filter函数实现滤波效果:y = filter(h, 1, x)其中,x表示输入信号,y表示输出信号。
基于MATLAB的FIR数字滤波器的窗函数法设计与仿真
随着计算机和微 电子等学科的飞速发展 , 数字 信号处理已经成为当今极为重要的学科和技术 , 应 用范围也越来越广泛. 数字滤波器 的设计和应用在 数字信号处理 中有着非常重要的地位。 数字滤波器
按 照 长度 分类 可 以分 成有 线长 单 位 脉 冲 响 应 ( F I R) 滤波 器 , 和无 限 长 单 位 脉 冲 响应 ( I I R) 滤波器. F I R
利 用 MA T L A B软件 , 结 合 窗 函数法 设 计 F I R数 字 滤
波 器 的过程 .
( 1 ) 通带尽可能窄 ; ( 2 ) 阻带内的波动性可能小 , 增强阻带的衰减. 实 际常 用 的 窗 函数 有 矩 形 窗 、 三角形窗 、 汉 宁
窗、 哈明窗、 布莱 克 曼 窗 和凯 赛一 贝 塞 尔 窗 , 设 计 时 可参 考这 六 种窗 函数 基本参 数 , 如表 1 .
x l a b e l ( h ’ ;
t i t l e ( I t  ̄ mi n g 窗 函数 ,;
s u b p l o t ( 2 , 2 , 2 ) ; p l o t ( w / p i , 2 0 }l o g ( a b s ( h i ) / a b s ( h l ( 1 ) ) ) ) ;
表1 六 种 窗 函数 的基 本 参 数
1 F I R滤波器 的原理 j
实 际实 现 的滤波 器 的单位 取样 响 应 为 h ( n ) , 长 度 为 Ⅳ, 系统 函数 为 n( z ) , 显 然 我 们 用一 个 有 限长
窗函数
旁瓣 峰值 幅度/ d B 过度带宽 阻带最小 衰减/ d B
窗函数.
计软 件 , 优 点 很多 , 可 以进 行 数 值 运 算 、 符 号 运 算 和 图形 处理 等 功能 , 广 泛用 于各 领域 的分 析 、 设 计 和复
利用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数字滤波器的研究
谢谢观看
数字滤波器的基本原理
数字滤波器的基本原理
数字滤波器是一种通过数字信号处理技术对输入信号进行滤波处理的系统。 它通过一定的算法,对输入信号进行线性或非线性的时间域或频率域处理,以达 到特定的信号特征提取、增强或抑制的效果。FIR数字滤波器是一种离散时间滤 波器,其输出仅与过去的输入有关,具有易于实现、稳定性和线性相位等优点。
MATL AB与窗函数法结合 设计FIR数字滤波器的研究
01 引言
目录
02
数字滤波器的基本原 理
03 MATLAB在数字滤波器 设计中的应用
04
窗函数法在数字滤波 器设计中的应用
05 参考内容
引言
引言
随着数字化时代的到来,数字滤波器在信号处理领域的应用越来越广泛。其 中,FIR(有限冲激响应)数字滤波器因其特有的性质,如易于实现、稳定性和 线性相位等,成为应用最广泛的一种数字滤波器。在设计中,窗函数法作为一种 有效的优化技术,可以降低滤波器的复杂性并提高其性能。本次演示将介绍 MATLAB与窗函数法结合设计FIR数字滤波器的研究,旨在为相关领域的研究和实 践提供有益的参考。
1、简单易行,便于实现; 2、可以根据需要选择不同的窗函数,以满足不同的性能要求;
3、设计的滤波器具有稳定的线 性相位特性。
3、设计的滤波器具有稳定的线性相位特性。
1、设计的滤波器在过渡带可能会有较高的旁瓣水平,导致频率选择性能不够 理想;
2、对于某些窗函数,旁瓣衰减速度较慢,导致滤波器性能下降;
3、对滤波器进行实施:将优化后的系数用于滤波器的实现,可采用直接型、 级联型等不同的结构。
3、对滤波器进行实施:将优化 后的系数用于滤波器的实现
3、对滤波器进行实施:将优化后的系数用于滤波器的实现,可采用 直接型、级联型等不同的结构。
用matlab实现FIR滤波器的设计
h(n) h( N 1 n)
其对称中心也在
N 1 处。此时有: 2
N 1
(2-8b)
H ( ) h(n) sin[(
n 0
N 1 n) ] 2Leabharlann (2-13a) (2-13b)
( ) (
N 1 ) 2 2 2
即 h(n) 呈奇对称的滤波器相位与 h(n) 呈偶对称的相位产生了
由式(2-1)可以看出,H(z)是 z 1 的 N-1 次多项式,它在 z 平面内
3
有 N-1 个零点,同时在原点有 N-1 个重极点。因为 FIR 数字滤波器的单位 冲激响应是有限长的,所以它永远都是稳定的。在数字信号处理的许多领 域中,常常要求滤波器具有线性相位,达到这一要求,仅需要对 FIR 数字 滤波器的冲激响应 h(n) 施加一定的约束 [4] 。令 z e jw ,就可由 H ( z) 得到 FIR 数字滤波器的频率响应:
N 1
H (e j ) H ( z ) |z e j h(n)e j n H ( )e j ( )
n 0
(2-2)
式中 H ( ) 是 H (e j ) 的幅频特性, ( ) 是 H (e j ) 的相频特性
( ) arctan(
Im( H (e j )) ) RE ( H (e j ))
(3) h(n) 为奇对称,且 N 为奇数(Ⅲ型滤波器) 当 h(n) 为奇对称,且为奇数时,根据式(2-13)滤波器的幅频函数可以 表示为:
( N 1)/2
H ( )
其中 c(n) 2h(
n 1
c (n) sin( n)
(2-16)
N N-1 n), n 1, 2, …, 。此时 H ( ) 对 0, , 2 呈奇对称。 2 2
基于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 滤波器的单位脉冲响应。
【FPGA】MATLAB生成FIR滤波器的操作步骤(包括生成VerilogHDL代码以及仿真过程)
【FPGA】MATLAB⽣成FIR滤波器的操作步骤(包括⽣成VerilogHDL代码以及仿真过程)使⽤MATLAB⽣成滤波器有很多学问,这⾥只是作为初步的探索,和FPGA的更多结合,也正在探索中,相关博⽂例如:,该专题⽬录正在记录我学习FIR滤波器的过程。
MATLAB⽣成30阶低通1MHz海明窗函数设计步骤:(1)在MATLAB命令窗⼝中输⼊“fdatool”出现如下对话框:注意,在MATLAB2018以后的版本中输⼊:filterDesigner,即可打开上述界⾯。
(2)设定为低通滤波器。
(3)选择FIR滤波器的设计类型为窗函数。
设置FIR滤波器为30阶滤波器,选择窗函数的类型为海明窗函数,海明窗函数可以得到旁瓣更⼩的效果,能量更加集中在主瓣中,主瓣的能量约占99.963%,第⼀旁瓣的峰值⽐主瓣⼩40dB,但主瓣宽度与海明窗相同。
它定义为:(4)输⼊抽样频率和截⽌频率,分别是16MHz和1MHz。
(5)点击Design Filter 得到结果,如下图:(6)量化输⼊输出,点击⼯作栏左边的量化选项,即“set quantization parameters”选项,选择定点,设置输⼊字长为8,其他选择默认,如下图⽰:及测试⽂件:仿真结果如下图:如上图所⽰,当输⼊为线性,或者输⼊频率较低时,输出幅度不会被抑制,当输⼊频率较⾼,输出幅度会受到⼤幅度抑制,⽽当输⼊为⽩噪声或者混频信号时,滤波器会过滤掉⾼频信号。
这⾥分出来⼀⼩部分空间,引⽤点别⼈的内容来简单介绍下上述⼏个参数的意思:Response Type:选择FIR滤波器的类型:低通、、带通和带阻等。
在DDC/DUC模块设计中,抽取和内插需要使⽤Halfband Lowpass 类型,⽽channel filr需要使⽤Rsed-cosine类型。
Design Method:FIR滤波器设计⽅法有多种,最常⽤的是窗函数设计法(Window)、等波纹设计法(Equiripple)和最⼩⼆乘法(Least-Squares)等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西南石油大学实验报告
一实验目的:
学习利用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。
此次实验收获很大。