IIR、FIR--滤波器函数使用方法(非常有用)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB滤波器函数
Matlab信号处理工具箱函数和IIR、FIR函数
波形产生和绘图
chirp 产生扫描频率余弦
diric 产生Dirichlet函数或周期Sinc函数
gauspuls 产生高斯调制正弦脉冲
pulstran 产生脉冲串
rectpuls 产生非周期矩形信号
sawtooth 产生锯齿波或三角波
sinc 产生sinc函数
square 产生方波
strips 产生条图
tripuls 产生非周期三角波
滤波器分析和实现
abs 绝对值(幅值)
angle 相位角
conv 卷积和多项式乘法
conv2 二维卷积
fftfilt 基于FFT重叠加法的数据滤波
filter 递归(IIR)或非递归(FIR)滤波器的数据滤波
firter2 二维数字滤波
filtfilt 零相位数字滤波
filtic 函数filter初始条件确定
freqs 模拟滤波器频率响应
freqspace 频率响应的频率空间设置
freqz 数字滤波器频率响应
grpdelay 群延迟
impz 数字滤波器的脉冲响应
latcfilt 格型梯形滤波器实现
unwrap 相位角展开
zplane 零极点图
IIR与FIR
MATLAB下设计IIR滤波器可使用Butterworth函数设计出巴特沃斯滤波器,使用Cheby1函数设计出契比雪夫I型滤波器,使用Cheby2设计出契比雪夫II型滤波器,使用ellipord函数设计出椭圆滤波器。

下面主要介绍前两个函数的使用。

与FIR滤波器的设计不同,IIR滤波器设计时的阶数不是由设计者指定,而是根据设计者输入的各个滤波器参数(截止频率、通带滤纹、阻带衰减等),由软件设计出满足这些参数的最低滤波器阶数。

在MATLAB下设计不同类型IIR滤波器均有与之对应的函数用于阶数的选择。

一、巴特沃斯IIR滤波器的设计
在MATLAB下,设计巴特沃斯IIR滤波器可使用butter函数。

Butter函数可设计低通、高通、带通和带阻的数字和模拟IIR滤波器,其特性为使通带内的幅度响应最大限度地平坦,但同时损失截止频率处的下降斜度。

在期望通带平滑的情况下,可使用butter函数。

butter函数的用法为:
[b,a]=butter(n,Wn,/ftype/)
其中n代表滤波器阶数,Wn代表滤波器的截止频率,这两个参数可使用buttord 函数来确定。

buttord函数可在给定滤波器性能的情况下,求出巴特沃斯滤波器的最小阶数n,同时给出对应的截止频率Wn。

buttord函数的用法为:
[n,Wn]= buttord(Wp,Ws,Rp,Rs)
其中Wp和Ws分别是通带和阻带的拐角频率(截止频率),其取值范围为0至1之间。

当其值为1时代表采样频率的一半。

Rp和Rs分别是通带和阻带区的波纹系数。

不同类型(高通、低通、带通和带阻)滤波器对应的Wp和Ws值遵循以下规则:1.高通滤波器:Wp和Ws为一元矢量且Wp>Ws;
2.低通滤波器:Wp和Ws为一元矢量且Wp<Ws;
3.带通滤波器:Wp和Ws为二元矢量且Wp<Ws,如Wp=[0.2,0.7],Ws=[0.1,0.8]; 4.带阻滤波器:Wp和Ws为二元矢量且Wp>Ws,如Wp=[0.1,0.8],Ws=[0.2,0.7]。

二、切比雪夫I型IIR滤波器的设计
在期望通带下降斜率大的场合,应使用椭圆滤波器或契比雪夫滤波器。

在MATLAB 下可使用cheby1函数设计出契比雪夫I型IIR滤波器。

cheby1函数可设计低通、高通、带通和带阻契比雪夫I型滤IIR波器,其通带内为等波纹,阻带内为单调。

契比雪夫I型的下降斜度比II型大,但其代价是通带内波纹较大。

cheby1函数的用法为:
[b,a]=cheby1(n,Rp,Wn,/ftype/)
在使用cheby1函数设计IIR滤波器之前,可使用cheblord函数求出滤波器阶数n和截止频率Wn。

cheblord函数可在给定滤波器性能的情况下,选择契比雪夫I 型滤波器的最小阶和截止频率Wn。

cheblord函数的用法为:
[n,Wn]=cheblord(Wp,Ws,Rp,Rs)
其中Wp和Ws分别是通带和阻带的拐角频率(截止频率),其取值范围为0至1之间。

当其值为1时代表采样频率的一半。

Rp和Rs分别是通带和阻带区的波纹系数。

[B,A] = BUTTER(N,Wn) designs an Nth order lowpass digital Butterworth filter and returns the filter coefficients in length N+1 vectors B (numerator) and A (denominator).
The cutoff frequency Wn must be 0.0 < Wn < 1.0, with 1.0 corresponding to half the sample rate.
If Wn is a two-element vector, Wn = [W1 W2], BUTTER returns an order 2N bandpass filter with passband W1 < W < W2.
[B,A] = BUTTER(N,Wn,'high') designs a highpass filter.
[B,A] = BUTTER(N,Wn,'low') designs a lowpass filter.
[B,A] = BUTTER(N,Wn,'stop') is a bandstop filter if Wn = [W1 W2]. 当设计低通和高通时,Wn是一个值,表示截止频率;当设计带通和带阻时,Wn 是一个二个元素的数组,表示通带或阻带的上下截止频率。

频率的归一化是对
fs/2进行归一。

例如,fs=10000,则fs/2=5000,500归一化为0.1,1000归一化为0.2。

一个论坛上的例子:/forum/thread-72656-1-1.html fs=100;%采样频率为100Hz
fc=30;%截止频率为30Hz
[b,a]=butter(4,0.6,'high');
[h,w]=freqz(b,a);
plot(w/pi*fs/2,abs(h)); grid;
title('Amplitude Response');
xlabel('Frequency (Hz)'); ylabel('Amplitude');
figure;
x=randn(1,fs*6);
y=filter(b,a,x);
subplot 211; plot(x); title('Original Signal');
subplot 212; plot(y); title('Output of High-pass filter');
其中信号是用随机数产生的,长6s。

笫1张图是高通滤波器的幅值响应曲线,笫2张图是信号滤波前后的波形.
1. buttord
(1)[N,wc]=buttord(wp,ws,αp,αs)
用于计算巴特沃斯数字滤波器的阶数N和3dB截止频率wc。

调用参数wp,ws分别为数字滤波器的通带、阻带截止频率的归一化值,要求:0≤wp≤1,0≤ws≤1。

1表示数字频率pi。

αp,αs分别为通带最大衰减和组带最小衰减(dB)。

当ws≤wp时,为高通滤波器;
当wp和ws为二元矢量时,为带通或带阻滤波器,这时wc也是二元向量。

N,wc作为butter函数的调用参数。

(2)[N,Ωc]=buttord(Ωp,Ωs,αp,αs,‘s’)
用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率Ωc。

Ωp,Ωs,Ωc均为实际模拟角频率。

说明:buttord函数使用阻带指标计算3dB截止频率,这样阻带会刚好满足要求,而通带会有富余。

2.buttap(N)
[z0,p0,k0]=buttap(N)
用于计算N阶巴特沃斯归一化(3dB截止频率Ωc=1)模拟低通原型滤波器系统函数的零、极点和增益因子。

说明:如果要从零、极点模型得到系统函数的分子、分母多项式系数向量ba、aa,可调用
[B,A]=zp2tf(z0,p0,k0)
3.butter
(1)[b,a]=butter(N,wc,‘ftype’)
计算N阶巴特沃斯数字滤波器系统函数分子、分母多项式的系数向量b、a。

调用参数N和wc分别为巴特沃斯数字滤波器的阶数和3dB截止频率的归一化值(关于pi归一化),一般是调用buttord(1)格式计算N和wc。

系数b、a是按照z-1的升幂排列。

(2)[B,A]=butter(N,Ωc,‘ftype’,‘s’)
计算巴特沃斯模拟滤波器系统函数的分子、分母多项式系数向量ba、aa。

调用参数N和Ωc分别为巴特沃斯模拟滤波器的阶数和3dB截止频率(实际角频率),可调用buttord(2)格式计算N和Ωc。

系数B、A按s的正降幂排列。

tfype为滤波器的类型:
◇ftype=high时,高通;Ωc只有1个值。

◇ftype=stop时,带阻阻;此时Ωc=[Ωcl,Ωcu],分别为带阻滤波器的通带3dB 下截止频率和上截止频率。

◇ ftype缺省时:
若Ωc只有1个值,则默认为低通;
若Ωc有2个值,则默认为带通;其通带频率区间Ωcl < Ω < Ωcu。

注意:所设计的带通和带阻滤波器系统函数是2N阶。

因为带通滤波器相当于N阶低通滤波器与N阶高通滤波器级联。

相关文档
最新文档