matlab中fir滤波器代码_FIR滤波器的Matlab实现

本文介绍了如何在MATLAB中使用hamming窗函数和fir1函数实现FIR低通滤波器。通过设置通带、阻带和过渡宽度,计算滤波器阶数,并利用滤波器对原始数据进行滤波处理,实现信号的低通滤波效果。
摘要由CSDN通过智能技术生成

一、Matlab实现hamming,hanning时域窗函数相乘法。

数字滤波器都是2π归一化的,2π对应fs采样率。这一点和FFT结果是一样。采样时间离散序列,频谱以2π为周期,(也是以Fs为周期)。

% %------------------------------低通滤波器2----------------------------------

fpass=200; %通带

fstop=500; %阻带

Bslope=(fstop-fpass)/Fs*2*pi; %过渡宽度

N0=ceil(3.3*2*pi/Bslope); %滤波波长

N=N0+mod(N0+1,2); %取N为奇数,时延(N-1)/2,仍在采样点处

window = (hamming(N))'; % 海明窗计算

Wn=(fpass+fstop)/2/Fs*2; % 计算截止频率

firfilter_vect=fir1(N-1,Wn,window); % 用fir1函数设计FIR第1类滤波器,M=N-1,为滤器的阶数,也是除了当前点,前面其他需加进的点数

datay=filter(firfilter_vect,1,data); %原始数据data进行滤波,即data与firfilter_vect的卷积。

%======================================================

因为理想滤波器具有很好频率特性,但是因为其时间响应长度无限。所以我们要用一个窗函数来把它截断,hamming窗截断具有通带、阻带波动小的特点。fir1函数实现了理想低通滤波器的时域无限长序列h(t)与汉明窗window相乘,生成一个有限长的序列。即对h(t)的加窗截断。t在离散采样形式可写成h(n),

97db14bd94acea0925ed33a113fdb6e2.png

fir1实现:

equation?tex=h%28n%29%3Dh_d%28n%29%5Cbullet+window

filter实现:h(N)卷积data。因为把理想低通变成有限长度,这正是FIR(有限长度冲击响应的由来)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值