基于MATLAB的高阶低通滤波器的设计与仿真教材

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

课程论文(作业)封面(2015 至2016 学年度第2 学期)课程名称:MATLAB应用技术课程编号:19600546x
学生姓名:张丽
学号:A19140280
年级:2014
任课教师:邓铭辉
提交日期:2016 年6 月28 日
成绩:
教师签字:
开课---结课:第1 周---第16 周
评阅日期:年月日
东北农业大学
基于MATLAB的高阶低通滤波器的设计与仿真
摘要:滤波器在现代通信领域内有很广泛的应用,随着多媒体技术的发展,特别是MATLAB应用技术的出现,因其具有强大的数值计算功能和仿真功能,已成为目前全球各类高校关于线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等许多课程的基本应用工具。

本文利用MATLAB的butter涵数设计了8阶的巴特沃斯低通滤波器,并进行了仿真。

仿真输入信号采用的是三个不同频率正弦信号的合成。

将合成后的信号通过低通滤波器,实现了对高频信号部分的过滤。

采用MATLAB设计滤波器,使原来非常复杂的程序设计变成了简单的函数调用MATLAB信号处理工具箱为滤波器设计及分析提供了非常优秀的辅助设计工具。

关键词:低通;滤波器;MATLAB
1 前言
随着现代通信技术的不断的进步与发展,滤波器是现代通讯系统中不可缺少的器件之一,在过去的几年中迅速发展的过滤器是一种复杂的选频网络,其对在一定的频率范围内的信号予以很小的衰减,使这部分信号可以通过,而其它电信号予以很大程度上的衰减使其不能通过,从而尽可能地阻止这部分信号通。

本次研究的课题就是对一组合成信号通过滤波器后分离出需要频率的信号并利用MATLAB软件仿真,用MATLAB对矩阵操作,绘图函数和数据、实现算法、创建用户界面,连接其他的编程语言、程序等,主要应用于工程方面的计算、控制与设计、信号处理以及通讯、数字图像处理、金融模型的建立与设计等。

2 滤波器
2.1 滤波器的原理
凡是可以使信号中特定的频率成分通过,而极大地衰减或抑制其他频率成分的装置或系统都称之为滤波器,相当于频率“筛子”。

滤波器的作用有两方面,
一方面就是让某一频率范围内的信号能够顺利的通过,而另一方面是对某频率范围内的信号进行抑制而使其不能通过,从而达到滤波的作用,因此滤波器实际上是一个可以选频的电路。

在滤波器中,把某频率范围内能够通过的信号的频率,称为通带或通频带;相反,能最大程度的衰减信号或使信号全部抑制而不能通过的频率范围称为阻带;对于在通频带和阻带之间的分界频率我们称之为截止频率;我们认为在理想的情况下通带内的电压增益为常数,在阻带内的电压增益为零,此类滤波器是理想滤波器。

理想状态的滤波器与实际滤波器的比较:
a .理想滤波器的频率特性
理想滤波器:使通带内信号的幅值和相位都不失真,阻带内的频率成分都衰减为零的滤波器,其通带和阻带之间有明显的分界线。

如理想低通滤波器的频率响应函数为 )()(0C W W l A jw H t jw ≤=Ω- 或 C W W jw H >=)(0)( (1)
理想滤波器实际上并不存在。

b .实际滤波器
实际滤波器的特性需要以下参数描述:
(1)恒部平均值A 0:描述通带内的幅频特性;波纹幅度:d 。

(2)上、下截止频率:以幅频特性值为A 0/2时的相应频率值W C1,W C2作为带
通滤波器的上、下截止频率。

带宽12C C W W B -=。

因为 dB A A 32/lg 200
0-=所以12C C W W B -= 也称“-3dB ”带宽 (3)选择性:实际滤波器过渡带幅频曲线的倾斜程度表达了滤波器对通带外频率成分的衰减能力,用信频程选择性和滤波器因素λ描述。

信频程选择性:与上、下截止频率处相比,频率变化一倍频程时幅频特性的衰减量,即倍频程选择性为[])(/)2(lg 2022C C W A W A 或()[])(/2lg 2011C C W A W A 信频程选择性总是小于等于零,显然,计算信量的衰减量越大,选择性越好。

滤波器因素λ:-60dB 处的带宽与-3dB 处的带宽之比值,即λ越小,选择性越好。

分辨力:即分离信号中相邻频率成分的能力,用品质因素Q 描述。

1
22130C C C C dB W W W W B W Q --==- (2) Q 越大,分辨率越高。

c .实际的带通滤波器形式
1)恒定的带宽带通滤波器:B 为常量,与中心频率0f 无关。

2)恒定的百分比带通滤波器:在高频区恒定百分比带通滤波器的分辨率比恒定带宽带通滤波器的分辨率差。

2.2滤波器的分类
从大的方面分,滤波器可以分为模拟滤波器和数字滤波器。

模拟滤波器由电阻,电容,电感,及由原器件构成;在实际生活中数字滤波器的使用的比较广泛。

从实现方法上分,数字滤波器分为IIR 和FIR ,即无限冲激响应滤波器和有限冲激响应滤波器;其中IIR 网络中有反馈回路,FIR 网络中没有反馈回路。

从小的方面分:
a. 按所处理的信号分为模拟滤波器和数字滤波器两种。

b. 按所通过信号的频滤的范围可以分为高通滤波器、低通滤波器、带阻滤波器和带通滤波器四种。

高通滤波器:允许信号中的高频率信号分量通过,抑制低频率信号或直流分量。

低通滤波器:允许信号中的低频率信号或直流分量通过,抑制高频率信号分量。

带阻滤波器:抑制一定频率范围内的信号,允许该频率范围以外的信号通过。

带通滤波器:允许一定频率范围的信号通过,抑制低于或高于该频率范围的信号。

c. 按照使用的元器件可以分为无源滤波器和有源滤波器两种:
无源滤波器:由无源元件电阻、电感以及电容组成的滤波器是无源滤波器,其构成原理主要是利用电容和电感的电抗随着频率的变动而发生变化[6]。

无源滤波器的特点主要是:有比较简单的电路,不需要直流电源,高性能;其主要缺点是:通带频率范围内的信号有能量损失,有很明显的负载效应,在使用过程中容易引起电磁感应现象,当电感比较大的情况下滤波器的体积和重量相应比较大,在低频率范围内不可以应用。

有源滤波器:使用无源器件(一般用R和C)和有源器件(如集成运算放大器)构成。

有源滤波器主要特点是:通带频率范围内的信号没有能量损失,而且还可以进行放大,没有明显的负载效应,对于多级相联时之间的影响比较小,可以用级联方法组成高阶滤波器,而且滤波器的重量轻、体积小、不需要磁场进行屏蔽;其主要缺点是:有源器件的带宽在通带频率范围内受限制,要用直流电源进行供电,其在可靠性能方面比不上无源滤波器,在高电压、高频率、大功率的场合不建议使用。

3 仿真软件MATLAB
3.1 MATLAB发展历史
MATLAB软件用作数字图形处理和数值计算的科学计算系统环境,其由美国Math works公司推出的。

MATLAB是英文Matrix Laboratory的简写。

Matlab的第1版是1984年发行的,期间经过了10多年的不断完善,如今已推出最新版本(6.1版)。

在新的版本中集合了日常数学计算处理中和图形处理的各种功能,其功能主要包括:图像生成、矩阵的运算、数字信号处理以及高效率的数字计算等。

用户可以在Matlab环境下进行多种操作如:数学计算、程序设计、图像生成、输入与输出、文件资料的管理等。

Matlab提供了一个系统为基本数据结构是矩阵的人机交互系统环境,不需要在矩阵对象生成时特别的对维数做出相应说明。

同时Matlab在数字图像的处理方面也应用非常广泛,我们可以利用Matlab显示图像并且对图像进行处理和变换在数字图象处理及Matlab实现一书中详细描写了对于图像的各种处理及变换。

应用Matlab比应用c语言或Fortran语言程序进行数值计算可以大大节省量编程时间,提高运算速率。

自从Matlab被以商品形式推出后,在仅仅很短的几年时间,通过其良好的优点如开放性和运行的可靠
性等,打败了以前控制领域里的封闭式软件包,使它们的使用者逐渐减少最终被淘汰,最终使人们改为以Matlab为平台。

Matlab被国际控制界公认为标准的计算软件是在20世纪九十年代的时候。

Matlab在与国际上30多个数学类科技应用软件相比下,Matlab在数值计算方面仍首屈可指,用的最多。

3.2 MATLAB功能
Matlab主要是应用在科学计算、可视化和交互式程序设计的高科技计算的环境,其是由美国Math Works公司开发和发布的。

Matlab在一个易于使用的可视化窗口环境中集成了数值分析与计算、矩阵的计算、图形的编辑以及非线性动态系统仿真等很多功能。

Matlab为科学研究领域、工程设计和要进行有效数值运算的许多科学领域提供了一种很好的解决途径,而且在很大程度上摆脱了传统程序设计语言(例如C、Fortran)的编辑模式。

Matlab体表了现今国际科学计算软件的先进水平。

Matlab具有很强大的功能,它不仅可以对矩阵进行运算、绘制函数图形和数据等、而且号可以创建用户界面、对其他编程语言的程序连接。

Matlab的应用非常广泛,其主要应用在工程计算、数字信号处理与通讯、对数字图像进行处理、信号的检测、金融的模型建立与分析等很多领域。

Matlab是一个很高级的矩阵语言,它包括控制语句(如if语句、for语句等)、多种函数、数据结构、输入与输出,Matlab的编程特点面向对象的。

在编写程序时用户可以在命令窗口中将输入语句此时会自动执行此语句,用户也可以事先编写好一个应用程序(M 文件)后再对此文件进行运行。

Matlab有很多的函数集,包括一些最基本的函数到例如矩阵计算,数字滤波器频率响应、双线性变换等复杂函数。

Matlab中的函数能解决很多的问题其一般有矩阵的运算和方程的求解、微分方程组及偏微分方程组的求解、符号的运算、快速傅立叶变换统计与分析、在工程过程中对问题进行优化、对稀疏矩阵的运算、复数的各种运算、正余弦函数和其它初等函数的运算、多维数组的操作以及对建模进行动态仿真等。

Matlab中有很丰富的数字信号处理工具箱,其工具箱使用非常简便。

在数字信号处理中有多种算法,如FFT,傅立叶变换,卷积,滤波器设计,滤波器设计等,都是只用一条语句就能调用。

Matlab在数字信号处理中常用的函数有波形的产生、滤波器的分析和设计、傅里叶变换、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变换)3.3 MATLAB常用工具箱介绍
Matlab主工具箱——Matlab Main Toolbox
控制系统工具箱——Control System Toolbox
通讯工具箱——Communication Toolbox
财政金融工具箱——Financial Toolbox
系统辨识工具箱——System Identification Toolbox
模糊逻辑工具箱——Fuzzy Logic Toolbox
图象处理工具箱——Image Processing Toolbox
线性矩阵不等式工具箱——LMI Control Toolbox
μ分析工具箱——μ-Analysis and Synthesis Toolbox
神经网络工具箱——Neural Network Toolbox
优化工具箱——Optimization Toolbox
偏微分方程工具箱——Partial Differential Toolbox
鲁棒控制工具箱——Robust Control Toolbox
信号处理工具箱——Signal Processing Toolbox
样条工具箱——Spline Toolbox
统计工具箱——Statistics Toolbox
符号数学工具箱——Symbolic Math Toolbox
动态仿真工具箱——Simulink Toolbox
系统辨识工具箱——System Identification Toolbox
小波工具箱——Wavele Toolbox
例如:控制系统工具箱包含如下功能:
连续系统设计和离散系统设计
状态空间和传递函数以及模型转换
时域响应(脉冲响应、阶跃响应、斜坡响应)
频域响应(Bode图、Nyquist图)
根轨迹、极点配置
图像处理工具箱的功能:
对图像进行增强和去掉模糊
对图像进行分割,提取其形态和特征
用来处理和显示、浏览图像的工作过程
对图像进行变换
4 方案设计
4.1 低通滤波器的介绍
低通滤波器是容许低于截止频率的信号通过,但高于截止频率的信号不能通过的电子滤波装置。

对于不同滤波器而言,每个频率的信号的强弱程度各不相同。

当被应用在音频方面时,它通常被称为高频率剪切滤波器, 或者被称为高音消除滤波器。

低通滤波器有很多种不同形式的概念,其包含了平滑数据的数字算法、音障、图像的模糊处理等,这两个工具都通过剔除短期波动、保留长期发展趋势提供了信号的平滑形式。

低通滤波器有很多种,其中,最通用的就是巴特沃斯滤波器和切比雪夫滤波器。

4.2巴特沃斯滤波器的基本理论
Butterworth 滤波器是经常使用的滤波器的一种。

巴特沃斯滤波器具有在通频带内的频率响应曲线尽可能平坦的特点,没有明显起伏现象,而阻频带内则不断下降直到为零。

在巴特沃斯滤波器振幅的对角频率波特图上,从边界角频率开始,振幅随着角频率的增加而逐渐减少,并逐渐接近负的无限大。

尤其是随着滤波器的阶数增加,其衰减斜率也会不断增加,直到达到最大程度平坦
其中最平坦型低通滤波器原型的衰减函数为:
2()10lg(1)A L πωεω=+ (1)
butter 函数可以设计低通、高通、带通和带阻滤波器。

利用
[ba]=butter(n,Wn,‘ftype ’)方式可以设计一个阶数为n 、截止频率为n ω的低通滤波器。

其中参数ftype 的形式确定了滤波器的形式, 当它为higll ’时得到高通滤波器[14]。

若Wn 是一个含有两个元素向量[wl w2],则返回的[a ,b]所构成的滤波器是阶数为2n 的带通滤波器,滤波器的通带范围一般是wl<W<w2。

巴特沃思低通滤波器的幅度平方平方函数为:
()n c j H 2211
⎪⎪⎭⎫ ⎝⎛+=ωωω (2)
其中,n 为正整数代表滤波器的阶数,c ω为低通滤波器的截止频率。

该滤波器具有一些特殊的性质:
(1)对所有的n ,都有当0=ω时,()102
=j H (2)对所有的n ,都有当c ωω=时,()2
12=ωj H 即在c ωω=处有3dB 的衰减; (3)当∞→ω时,巴特沃思滤波器趋向于理想的低通滤波器。

(4)在c ωω<的通带内()2
ωj H 有最大平坦的幅度特性,因而巴特沃思滤波器又称最平幅度特性滤波器。

随着ω由0到c ω,()2
ωj H 单调减小,n 越大减小的越慢,也就是通内特性越平坦。

(5)当c ωω>,即在过渡带及阻带中,()2
ωj H 也随ω增加而单调减小,但是1/>c ωω故比通带内衰减的速度要快得多,n 越大,衰减速度越快。

(6)在0=ω处平方幅度响应的各级导数均存在且等于0,因此在该点上取
得最大值,且具有最大平坦特性。

巴特沃斯(Butterworth) 滤波器是一种具有最大平坦幅度响应的低通滤波器,它被广泛的应用在通信的各种领域中,在电测量等方面也具有非常广泛的用途,可以被用作为信号检测的滤波器。

巴特沃斯滤波器具有在通频带内的频率响应曲线最大限度平坦的这一特点,没有明显的起伏现象而在阻频带内不断下降直到为零。

阶数n 越高,其幅频特性越好,低频检测信号保真度越高。

巴特沃思滤波器在线性相位、衰减斜率和加载特性三个方面具有特性均衡的优点,因此在实际使用中,巴特沃思滤波器已被列为首选。

而且在我们的生活中也都可以看到对滤波器的使用。

4.3 低通巴特沃斯滤波器的设计
(1)根据技术指标通带截止频率p Ω,通带最大衰减系数p α,阻带截止频率s Ω,
阻带最小衰减系数s α,利用公式sp sp k N λlg lg -=(其中p s sp ΩΩ/=λ,11011010/10/--=s P SP K αα)
求出滤波器的阶数N 。

(2)在求出归一化极点k p ,代入公式⎪⎭⎫ ⎝⎛++=N k j e k
p 21221,(k=0,1,.....,N-1)得
到归一化传输函数)(p H a 。

(3)将)(p H a 去归一化。

将c s p Ω/=代入)(p H a ,将得到实际的滤波器传输函数)(p H a 。

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值遵循以下规则:
a.高通滤波器:Wp和Ws为一元矢量且Wp>Ws;
b.低通滤波器:Wp和Ws为一元矢量且Wp<Ws;
c.带通滤波器:Wp和Ws为二元矢量且Wp<Ws,Wp=[0.2,0.7],Ws=[0.1,0.8];
d.带阻滤波器:Wp和Ws为二元矢量且Wp>Ws,Wp=[0.1,0.8],Ws=[0.2,0.7]。

5 滤波器的仿真
5.1 仿真程序
clear all
dt=0.005; %设定步长t=0:dt:3; %设置3个频率的正弦信号300HZ ,500HZ,1000HZ
s1=sin(2*pi*300*t);
s2= sin(2*pi*500*t);
s3= sin(2*pi*1000*t);
s=s1+s2+s3; % 3个正弦信号叠加figure(1);
subplot(2,2,1); plot(t,s1);
xlabel('t');title('300HZ正弦信号');
subplot(2,2,2); plot(t,s2);
xlabel('t');title('500HZ正弦信号');
subplot(2,2,3); plot(t,s3);
xlabel('t');title('1000HZ正弦信号');
subplot(2,2,4); plot(t,s);
xlabel('t');title('合成信号');
ss=fft(s,4096);
SS=(abs(ss(1:1:2049))); %求合成信号频谱k1=0:2048;
w1=(1/4096)*k1*10000; %取0......Fs/2的部分
figure(2);
plot(w1,SS); grid %画频谱图title('求原信号频谱');
%****通过低通滤波器*****%
ws1=1000; %设计一个通带为600HZ,阻带为100HZ的低通滤波器
wp1=600; wc=5000;
wp=wp1/wc; ws=ws1/wc;
[n,wn]=buttord(wp,ws,1,30) %巴特沃斯低通滤波器[b,a]=butter(n,wn);
sb=3*filter(b,a,s) ; %合成信号通过低通滤波器ssb=fft(sb,4096); %求频谱SSb=abs(ssb(1:1:2049));
k1=0:2048; w1=(1/4096)*k1*10000; %画频谱图figure(3);
plot(w1,SSb); grid
title('经过低通滤波器后的信号频谱');
5.2 仿真实现
图1 表示滤波器的阶数是8
图2 仿真用到的信号
图3 原信号频谱
图4 通过滤波器后的信号频谱
6 总结
本次论文是对低通滤波器的设计进行研究,并后用MATLAB语言对低通滤波器进行仿真的实现。

通过对基于MATLAB的高阶低通滤波器的设计与仿真课题的设计与研究,自己从中获取了相应的成绩,对于理论也有了一定水平的提高,动手能力也有了明显的增强,与此同时也体现出了我自身的一些问题。

先第一个方面是要对于一个我不熟悉的课题,需要去阅读一定的书籍及杂志来获得相应的知识认识这个课题,然后才能够有我自己的想法与主张;第二个方面是理论方面的基础知识对我固然是很重要的,论文中牵涉到不少的算法,同时也会用到许多以前学的基础知识,如果仅仅此时做课题需要用的时间再去学这些基础知识,会花费很多的时间在这方面;第三个方面也是最重要的,是要对自己有很大的信心,当在做论文中遇到不懂的时候要多向同学或者导师去寻求帮助,以上三个方面是可以快速提高我的课题研究进程,同时这也是我做论文的一些体会,这些对将会我以后的工作也会有很大的帮助。

参考文献
[1] 穆尔(Holly Moore),高会生,刘童娜,李聪聪. MATLAB实用教程(第2版)
[M]. 北京:电子工业出版社,2010:12—99.
[2] 刘保柱,苏彦华,张宏林. MATLAB 7.0从入门到精通[M]. 北京:人民邮电出
版社,2010:10—126.
[3] 杜勇. 数字滤波器的MATLAB与FPGA实现[M].北京:电子工业出版社,
2012:12—134.
[4] 森荣二、薛培鼎. LC滤波器设计与制作[M]. 北京:科学出版社 2006:13
—167.
[5] 程佩青. 数字信号处理教程[M]. 北京:清华大学出版社,2010:1—165.
[6] 黄顺吉. 数字信号处理及其应用[M]. 北京:国防工业出版社,1982:13—
134.
[7] 陈永彬. 数字信号处理[M]. 南京:南京工学院出版社,1987:10—166.
[8] 胡广书著.数字信号处理:理论、算法与实现[M].北京:清华大学出版社,
1997:235—261
[9] 冷建华,李萍,王良红著.数字信号处理[M]. 北京:国防工业出版社,2002:
1—54
[10]邹馄,袁俊泉,龚享依著.Matlab6二信号处理[M]. 北京:清华大学出版社,
2002 : 189—214
[11]李钟慎. 基于MATLAB设计巴特沃思低通滤波器[J].信息技术,2003,(3):12
—132.
[12]吴祯芸,许碧荣.将MATLAB语言引入实验教学[J].南平师专学
报,2003,(2):1—134.
[13]宋建辉,涂志刚.Matlab语言及其在有限元编程中的应用[J].湛江师范学
报,2003,(6):5—198
[14]梁辉.MATLAB制作图形界面的应用[J].佳木斯大学学报(自然科学
版),2003,(4):6—200.
[15]李明明.电子信息类专业MATLAB实验教程[M]. 北京:北京大学出版社,
2011:216—224.。

相关文档
最新文档