MATLAB函数fir1

9 篇文章 3 订阅
3 篇文章 1 订阅

fir1

基于窗函数的fir滤波器设计;

主要形式:

b = fir1(n,Wn)

b = fir1(n,Wn,ftype)

b = fir1(___,window)

b = fir1(___,scaleopt)

系数的含义

n  — 滤波器阶数。

Wn — 截止频率, 0≤Wn≤1,

Wn=1 对应于采样频率的一半。

数字角频率w、模拟角频率Ω之间的关系为 w=Ω/Fs,所以  w = 2*pi*f/Fs  ,f为模拟频率;

例如截止频率为300HZ,采样频率为1000HZ,(这里的频率都是模拟频率)换算成数字角频率为  截止频率为 0.6pi  rad/sample  而Wn就是0.6;

当设计带通和带阻滤波器时, Wn=[W1 W2],W1≤ω≤W2。

ftype — 当指定 ftype 时,可设计高通和带阻滤波器。ftype = high 时,设计高通 FIR 滤波器;

ftype=stop 时设计带阻 FIR 滤波器。低通和带通 FIR滤波器无需输入 ftype 参数。

Window — 窗函数。窗函数的长度应等于FIR 滤波器系数个数,即阶数 n+1。

n — 滤波器阶数,默认为汉明窗。

b为生成的滤波器系数,、。

解释:

b = fir1(n,Wn)使用汉明窗来设计具有线性相位的n阶低通,带通或多频FIR滤波器。滤波器类型取决于Wn的元素数量。

b = fir1(n,Wn,ftype)设计低通,高通,带通,带阻或多频带滤波器,取决于ftype的值和Wn的元素数量。

b = fir1(___,window)使用window中指定的向量和先前语法中的任何参数设计过滤器。

b = fir1(___,scaleopt)另外指定滤波器的幅度响应是否被归一化。

注意:对于具有任意频率响应的窗口滤波器,请使用fir2。

设计一个48阶FIR带通滤波器,通带为0.35π≤ω≤0.65π rad/ sample。
 其幅度和相位响应。如下所示:

b = fir1(48,[0.35 0.65]);
freqz(b,1,512)

实例2

加载chirp.mat。
该文件包含一个信号y,其大部分功率高于Fs / 4,或奈奎斯特频率的一半。 采样率为8192 Hz。设计一个34阶FIR高通滤波器,以衰减低于Fs / 4的信号分量。 使用0.48的截止频率和30 dB纹波的Chebyshev窗口。

load chirp

t = (0:length(y)-1)/Fs;

bhi = fir1(34,0.48,'high',chebwin(35,30));
freqz(bhi,1)

过滤信号。 显示原始和高通滤波信号。 对两个图使用相同的y轴刻度。

outhi = filter(bhi,1,y);

subplot(2,1,1)
plot(t,y)
title('Original Signal')
ys = ylim;

subplot(2,1,2)
plot(t,outhi)
title('Highpass Filtered Signal')
xlabel('Time (s)')
ylim(ys)

 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值