fir2函数C语言,fir2函数的用法

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

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(0Wn1)为归一化截止频率;

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的第一个和最后一个分量分别是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')

matlab程序中的fir1和fir2有什么不同

fir1()用来设计传统的LP(低通)、HP(高通)、BP(带通)、BS(带阻)和多频带FIR滤波器;而函数fir2()用来设计具有任意幅度响应的的FIR滤波器。fir2可以任意设置不同频率对应的幅度响应

滤波器小数系数的问题怎么解决

二进制一样可以表示小数啊,记住小数点的位置就可以了

基于MATLAB内建函数的FIR设计

在Matlab中已经内建有各种滤波器的设计函数,可以直接在程序中调用,这里介绍其中几个函数.

1,fir1函数

功能:设计标准频率响应的基于窗函数的FIR滤波器.

语法:b=fir1(n,Wn);

b=fir1(n,Wn,‘ftytpe’);

b=fir1(n,Wn,Window);

b=fir1(n,Wn,‘ftype’,Window);

说明:fir1函数可以实现加窗线形相位FIR数字滤波器设计,它可以设计出标准的低通、高通、带通和带阻滤波器.

b=fir1(n,Wn)可得到n阶低通,截至频率为Wn的汉明加窗线形相位FIR滤波器,0≤Wn≤1,Wn=1相当于0.5fs.滤波器系数包含在b中,可表示为

当Wn=[W1 W2]时,fir1函数可得到带通滤波器,其通带为W1<w<W2.

当ftype=high时,设计高通FIR滤波器;当ftype=stop时,设计带阻滤波器.

在设计高通和带阻滤波器时,由于对奇次阶的滤波器,其在Nyquist频率处的频率响应为零,不适合构成高通和带阻滤波器.因此fir1函数总是使用阶数为偶数的滤波器,当输入的阶数为奇数时,fir1函数会自动将阶数加1.

b=fir1(n,Wn,Window)利用参数Window来指定滤波器采用的窗函数类型.其默认值为汉明窗.

b=fir1(n,Wn,‘ftype’,Window)可利用ftype和Window参数,设计各种滤波器.

2,fir2函数

功能:设计任意频率响应的基于窗函数的FIR滤波器.

语法: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);

说明:fir2函数可以用于设计有任意频率响应的加窗FIR滤波器,对标准的低通、带通、高通和带阻滤波器的设计可使用fir1函数.

b=fir2(n,f,m)可设计出一个n阶的FIR滤波器,其滤波器的频率特性由参数f和m决定.参数f为频率点矢量,且f∈[0,1],f=1对应于0.5fs.矢量f按升序排列,且第一个元素必须是0,最后一个必须为1,并可以包含重复的频率点.矢量m中包含了与f相对应的期望得到的滤波器的幅度.

b=fir2(n,f,m,Window)中用参数Window来指定使用的窗函数类型,默认值为汉明窗.

b=fir2(n,f,m,npt)中用参数npt来指定fir2函数对频率响应进行内插的点数.

b=fir2(n,f,m,npt,lap)中用参数lap来指定fir2在重复频率点附近插入的区域大小.

解释一下matlab里的fir2函数

fir2(n,f,m)

函数fir2用来设计多通带任意响应FIR滤波器,该滤波器的幅频特性由向量对f和m确定,f为归一化频率向量,m为对应频率点上的幅度。当设计的滤波器在频率为π的幅度响应不是0时,滤波器的阶数n为偶数;

matlab滤波器fir2函数的使用 请matlab专业人事来解答一下 感谢~~~

f: 指定归一化的各频带边界频率,从0到1递增, 1对应fsam/2,即

数字频率。

m: 指定各频带边界频率处的幅度响应, 因此f和m的长度相等,即

length(f)=length(a)


当前标题:fir2函数C语言,fir2函数的用法
URL分享:http://scyanting.com/article/hdgohi.html