信号处理常用matlab之数字滤波器及滤波函数
Posted 一只学习的猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信号处理常用matlab之数字滤波器及滤波函数相关的知识,希望对你有一定的参考价值。
1 freqz
可以画出设计的FIR滤波器h[n]的幅频响应和相频响应。
调用格式为:[h,w]=freqz(h[n])
其中h[n]为输入滤波器系数,h为输出频率响应,w为数字角频率。
2 fir1
fir1函数是用窗函数法来设计FIR滤波器。
b = fir1(n,Wn,ftype,window)
其中:
n为滤波器阶数
Wn为用pi进行归一化后的截止数字角频率, 0≤Wn≤1,Wn=1 对应于采样频率的一半。当设计带通和带阻滤波器时, Wn=[W1 W2],W1≤ω≤W2。
ftype 为当生成的滤波器类型,指定 ftype 时,可设计高通和带阻滤波器。ftype = high 时,设计高通 FIR 滤波器;
ftype=stop 时设计带阻 FIR 滤波器。低通和带通 FIR滤波器无需输入 ftype 参数。
Window 为窗函数,窗函数的长度应等于FIR 滤波器系数个数,即阶数 n+1,默认为hamming窗。
b为生成的滤波器系数。
3 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)可设计出一个n阶的FIR滤波器,其滤波器的频率特性由参数f和m决定.参数f为频率点矢量,f∈[0,1],f=1对应于fs/2。矢量f按升序排列,且第一个元素必须是0,最后一个必须为1,并可以包含重复的频率点。矢量m中包含了与f相对应的期望得到的滤波器的幅度。
Window 为窗函数,窗函数的长度应等于FIR 滤波器系数个数,即阶数 n+1,默认为hamming窗。
npt指定了函数fir2进行内插得频率响应的栅格点数目(即内插网格的点数),默认值为512。
ap指定了在f中重复频率点间插入的区域大小
b 为生成的滤波器系数
fir2滤波器使用频域采样率来设计滤波器。具体的过程如下:1)根据f和m得到频率响应;2)根据npt进行线性内插;3)lap进行平滑;4)逆傅里叶变换得到系数;5)依据window时域加窗。
4 fdatool
5 firpm
b = firpm(n,f,a)
参见matlab使用firpm函数设计自定义响应的FIR数字滤波器
6 filter
filter函数是一维的数字滤波器,主要的应用语法:y = filter(b,a,X)
b和a分别为滤波器传递函数H(z)的分子多项式和分母多项式系数;
X是输入信号
y = filter(b,a,X)完成对输入信号X的滤波,y与x的大小相同
7 filtfilt
y = filtfilt(b,a,X) 对输入信号X进行零相位数字滤波
b和a分别为滤波器传递函数H(z)的分子多项式和分母多项式系数;
以上是关于信号处理常用matlab之数字滤波器及滤波函数的主要内容,如果未能解决你的问题,请参考以下文章
基于MATLAB的IIR滤波器的设计及应用(信号去噪)怎么设计啊