文档介绍:基于MATLAB实现滤波器设计
实验目的
熟悉使用MATLAB的语言特点以及各种功能。
熟悉MATLAB中各种信号的信号处理工具箱。
熟悉滤波器的设计方法原理以及步骤。
实验原理
MATLAB语言特点:
语言简洁紧凑,使用方便灵活,库函数极其丰富
运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。
MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。
MATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力
MATLAB中的信号处理工具箱内容丰富,使用简便。在数字信号处理中常用的算法,如FFT,卷积,相关,滤波器设计,参数模型等,几乎都只用一条语句即可调用。数字信号处理常用的函数有波形的产生、滤波器的分析和设计、傅里叶变换、Z变换等,如:
波形产生:
sawtooth(锯齿波或三角波)Diric(Dirichlet或周期sinc函数)
rand(白噪声信号波形)square(方波)sinc(sinc或函数)
chirp(chirp信号波形)
滤波器的分析:
abs(求幅值)angle(求相角)conv(求卷积)freqz(数字滤波器频率响应)impz(数字滤波器的冲击响应)zplane(数字系统零极点图)
IIR滤波器设计:
butter(巴特沃思数字滤波器)cheby1(切比雪夫I型)cheby2(切比雪夫II型)maxflat(最平滤波器)ellip(椭圆滤波器)yulewalk(递归数字滤波器)bilinear(双线性变换)impinvar(冲激响应不变法)
FIR滤波器设计:
triang(三角窗)blackman(布莱克曼窗boxcar(矩形窗)hamming(海明窗)
hanning(汉宁窗)kaiser(凯塞窗)fir1(基于窗函数法)fir2(基于频率抽样法)firrcos(上升余弦FIR滤波器设计法)intfilt(内插FIR滤波器设计法)
kaiserord(用Kaiser窗设计FIR滤波器的参数估计)
各种变换:
czt(线性调频Z变换)dct(离散余弦变换)fft(一维快速傅里叶变换)
fft2(二维快速傅里叶变换)idct(逆离散余弦变换)ifft(一维逆快速傅里叶变换)ifft2(二维逆快速傅里叶变换)hilbert(Hilbert变换)
IIR数字滤波器设计原理:
设计IIR数字滤波器一般采用脉冲响应不变法和双线性变换法。
1. 脉冲响应不变法的变换原理
从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应模仿模拟滤波器的冲击响应,即h(n)是ha(t)的采样值。
设T 为采样周期,变换过程:
如果模拟滤波器的系统函数只有单阶极点,且分母的阶数高于分子阶数,用脉冲响应不变法求数字滤波器的系统函数有简便方法:将 Ha(s) 展成部分分式的并联形式,再利用下述变换公式直接写出 H(z)
2. 双线性变换法的变换原理
(1)保证s平面压缩到s1平面的宽为2π/T 的横带内
(2)保证低频部分基本对应
设