仪器网(yiqi.com)欢迎您!

| 注册2 登录
网站首页-资讯-专题- 微头条-话题-产品- 品牌库-搜索-供应商- 展会-招标-采购- 社区-知识-技术-资料库-方案-产品库- 视频

问答社区

如何利用窗函数设计fir滤波器

CCOO传奇 2017-12-15 09:06:11 502  浏览
  •  

参与评论

全部评论(1条)

  • glmhlhyx 2017-12-15 13:53:33
    Matlab中,函数fir1()和fir2()利用加窗傅里叶级数法设计FIR滤波器。函数fir1()用来设计传统的LP(低通)、HP(高通)、BP(带通)、BS(带阻)和多频带FIR滤波器;而函数fir2()用来设计具有任意幅度响应的的FIR滤波器。 一、函数fir1的各种形式如下: b = fir1(N,Wn) b = fir1(N,Wn,'ftype') b = fir1(N,Wn,window) b = fir1(N,Wn,'ftype',window) b = fir1(...,'normalization') 其中,1、N为滤波器节点个数; 2、Wn(0<Wn<1)为归一化截止频率; 3、ftype为滤波器类型(默认(缺省时)是low): 'high' for a highpass filter with cutoff frequency Wn. 'stop' for a bandstop filter, if Wn = [w1 w2]. The stopband frequency range is specified by this interval. 'DC-1' to make the first band of a multiband filter a passband. 'DC-0' to make the first band of a multiband filter a stopband. 4、window为所加窗的类型(默认的是hamming窗),e.g hamming、chebwin、blackman、hanning、kaiser等。 5、normalization为是否将滤波器的幅度进行归一化: f is a vector of frequency points in the range from 0 to 1, where 1 corresponds to the Nyquist frequency.The frequency points must be in increasing order. m is a vector containing the desired magnitude response at the points specified in f. Duplicate frequency points are allowed, corresponding to steps in the frequency response. 'scale' (default): Normalize the filter so that the magnitude response of the filter at the center frequency of the passband is 0 dB. 'noscale': Do not normalize the filter. fir1()举例:设计一个低通滤波器 t = 0:0.01:2; f =2*sin(2*pi*20*t)+4*sin(2*pi*60*t); N = 11; %滤波器节点个数 wc = 0.5; %归一化截止频率 hd = fir1(N,wc,'low'); % 基于加窗函数的FIR滤波器设计 ft = conv(f,hd); figure(1) plot(abs(fft(f))); title('原始信号f'); figure(2) plot(abs(fft(ft))); title('滤波后信号ft'); 二、函数fir2的各种形式如下: b = fir2(n,f,m) b = fir2(n,f,m,window) b = fir2(n,f,m,npt) b = fir2(n,f,m,npt,window) b = fir2(n,f,m,npt,lap) b = fir2(n,f,m,npt,lap,window) 其中,向量f是指定频率点的幅度响应样本,与m定义的幅度响应样本对应;f和m具有相同的长度,并且f的diyi个和Z后一个分量分别是0和1;可以对f中的频点进行复制,从而跳变地逼近幅度响应指标。 npt指定了函数fir2()进行内插得频率响应的栅格点数目,默认值为512。 lap指定了在f中重复频率点间插入的区域大小。 举例:设计一个30阶的低通滤波器 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)) legend('Ideal','fir2 Designed') title('Comparison of Frequency Response Magnitudes')

    赞(18)

    回复(0)

    评论

热门问答

如何利用窗函数设计fir滤波器
 
2017-12-15 09:06:11 502 1
窗函数法设计FIR滤波器选窗标准是什么?
用窗函数法设计FIR滤波器选窗标准是什么?就是设计滤波器时看滤波器的那些标准而采取不同的窗??
2008-04-22 01:10:54 566 2
采用窗函数法设计FIR高通低通滤波器
 
2016-03-16 08:43:39 272 1
MATLAB中FIR滤波器如何设计
 
2017-09-03 07:45:45 391 1
matlab中设计fir滤波器
 
2011-11-30 15:44:48 326 3
inverse sinc函数是fir滤波器么
 
2017-04-26 06:33:22 492 1
为什么IIR滤波器没有加窗呢,而FIR滤波器有加窗,望针对性解答下,谢谢~
 
2011-05-12 10:48:57 483 1
高分悬赏 限三天 特急matlab 利用凯泽窗函数设计一个带通滤波器
设理想带阻滤波器频率响应为 { 1 0<=w<=π/3 He(e(jw))={ 0 π<=|w|<=2π/3 { -1 2π/3<=|w|<=π 利用凯泽窗函数设计长度为45的带通滤波器,阻带衰减为60Hz。 要求:实验... 设理想带阻滤波器频率响应为 { 1 0<=w<=π/3 He(e(jw))={ 0 π<=|w|<=2π/3 { -1 2π/3<=|w|<=π 利用凯泽窗函数设计长度为45的带通滤波器,阻带衰减为60Hz。 要求:实验基本原理,源程序及其标注。 展开
2008-12-05 20:05:45 359 2
matlab fir滤波器
 
2011-09-08 05:04:49 323 3
FIR滤波器算法
用matlab设计的FIR低通滤波,海明窗,Fs=50000 Fc=20,order=10.滤波也能做出来,但是我想知道是怎样计算出来的,也就是说我想通过那11个系数怎样对应一个输入求一个输出。 假设我要求波形中第500个点的输入对应的输出,我是用那11个系数乘以输入点两侧的11... 用matlab设计的FIR低通滤波,海明窗,Fs=50000 Fc=20,order=10.滤波也能做出来,但是我想知道是怎样计算出来的,也就是说我想通过那11个系数怎样对应一个输入求一个输出。 假设我要求波形中第500个点的输入对应的输出,我是用那11个系数乘以输入点两侧的11个值,然后相加,但是结果和输入值偏差较大,输入是20,输出算出来是0.11.估计是算法不对,但是这样算之后的波形和滤波波形形似。求高手给我个能理解上去的解释,本人数学不好。。。。 展开
2017-10-01 13:02:57 498 1
在设计FIR滤波器,用matlab生成FIR滤波器的抽头系数,怎样将其转换成整数?
我的FIR滤波器是16阶窗函数法,输入输出都是12位 我知道在matlab里是用 round(Num*(2^X))处理 但是不知道对所乘的2的幂需要满足什么条件,即,不明白X=?
2012-05-07 14:15:18 269 1
等波纹逼近法为什么比窗函数法设计的滤波器阶数低,同样的指标
 
2012-12-16 04:02:34 479 2
频谱分析中如何选择合适的窗函数
频谱分析中各种不同的窗函数应如何选择?
2010-05-23 10:49:34 582 2
频谱分析中如何选择合适的窗函数
 
2017-11-26 03:37:41 498 1
FIR滤波器有什么特点?
 
2016-12-02 01:04:16 598 1
FIR滤波器时延问题
我用的是加矩形窗的基本的FIR低通滤波器,为什么滤波之后会出现一定的延迟那????求高手解答,红色为滤波前,绿色滤波后
2013-04-21 08:24:12 434 1
FIR和IIR滤波器这两种滤波器有什么区别
 
2018-07-04 16:15:43 501 1
基于matlab设计线性相位fir滤波器的程序 急!万分感谢
 
2018-12-04 02:48:33 374 0
在设计FIR滤波器时遇到点问题,怎么解决?急求
clear all; wlp=0.2*pi;wls=0.35*pi;wus=0.65*pi;wup=0.8*pi; B=wls-wlp; M=ceil(12*pi/B)-1; wp=[(wls+wlp)/2/pi,(wus+wup)/2/pi]; hn=fir1(M,wp,'stop',blackman(M+1)); 运行该程序会显示如下错误: ??? Error using ==> fir1 at 92 The window l... clear all; wlp=0.2*pi;wls=0.35*pi;wus=0.65*pi;wup=0.8*pi; B=wls-wlp; M=ceil(12*pi/B)-1; wp=[(wls+wlp)/2/pi,(wus+wup)/2/pi]; hn=fir1(M,wp,'stop',blackman(M+1)); 运行该程序会显示如下错误: ??? Error using ==> fir1 at 92 The window length must be the same as the filter length. 具体该怎么解决那? 展开
2010-09-17 02:17:22 402 2
如何利用温度感应控制器开关粮库窗
 
2017-02-28 09:33:20 274 1

12月突出贡献榜

推荐主页

最新话题