信号处理常用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

参考信号处理常用matlab之16数据链信号生成

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滤波器的设计及应用(信号去噪)怎么设计啊

信号处理常用matlab之16数据链信号生成

信号处理常用matlab之16数据链信号生成

用matlab设计一个滤波器

[Matlab]算法工匠视频1:数字信号处理仿真及实现 第一讲 信号源的产生和滤波12

用MATLAB设计对信号进行频谱分析和滤波处理的程序