基于MATLAB的数字滤波器设计与仿真
- 格式:pdf
- 大小:345.32 KB
- 文档页数:3
图 3 滤波前(红)后(蓝)信号波形
图 4 滤波前(绿)后(红)信号频谱
2.3 滤波器分析设计工具箱 FDATool 法 FDATool 法在这里作简要介绍, 在 Matlab 命令窗
口输入 FDATool 命令, 按确定调出 FDATool 界面。 在 ResponseType 下 选 择 滤 波 器 的 类 型 为 Lowpass。 在 Design Method 下选 择 设 计 方 法 为 Equiripple FIR。 在 Frequency Specifica-tions 中指定 Fs 为 2 000 Hz,Fpass 为 500 Hz,Fstop 为 600 Hz。 设 置 完 成 后 单 击 Design Filter 按钮, 即得所设计 FIR 滤波器, 通过菜单选项 Analysis 可以在特性显示区看到所设计滤波器的幅度 响应,相频响应,单位样值响应,零极点配置图等到各 种等性。 2.4 基于信号处理的 Simulink 仿真
1) 导入信号。 使用【File/Import】可以导入信号、滤 波器和谱。 信号的来源可以是 Matlab 工作空间变量或 MAT 数据文件,也可以在 Data 前面的文本框中直接输 入信号的数据。这里信号源仍然利用前面程序设计法中 的混频信号, 将信号 x 和采样频率 fs=2 000 Hz 导入并 命名为 sig1。
图 2 (上)输入信号(下)输出信号
2.2 利用信号处理工具箱 SPTool 设计法 SPTool(Signal Processing Tool)[3]提供了一个便于完
成信号处理任务的 G U I 集成环境。 利用它可以从 Matlab 工 作 空 间 或 从 文 件 直 接 导 入 已 经 设 计 好 的 信 号,滤波器频谱;可以分析、比较、聆听和输出时域信 号;可以设计、分析和输出滤波器;可以完成对信号的 滤波; 可对输入输出信号进行各种谱分析并输出分析 结果。 下面是用 SPTool 工具设计的 FIR 滤波器对上述 信号进行滤波。SPTool 使用步骤:导入信号、滤波器、频 谱,设计滤波器,对信号滤波,分析输入输出信号的谱。
收 稿 日 期 :2009-02-24 作 者 简 介 :任 淑 萍 (1977-),女 ,山 西 孝 义 人 ,助 教 ,硕 士 研 究 生 ,主 要 从 事 数 字 信 号 处 理 的 教 学 与 研 究 。
·181·
第 24 卷第 3 期(总第 108 期)
机械管开发
2009 年 6 月
t=(0:100)/fs x=sin(2*pi*t*300)+sin(2*pi*t*800); %设置输入信号 x x1=filter(b,1,x); %对信号 x 进行滤波,得输出信号 x1 figure subplot(211);plot(t,x);grid subplot(212);plot(t,x1);grid;
Matlab 中提供了功能强大的 Simulink 仿真软件[4]。 在 Simulink 环境下, 可以对所设计的滤波器性能进行 仿真,实时观测滤波效果。 Simulink 中包含大量数字信 号处理的功能模块,可先调用相应模块组成仿真框图。
第 24 卷第 3 期(总第 108 期)
任 淑 萍 :基机于械MA管TL理AB 开的 数发字 滤 波 器 设 计 与 仿 真
FIR 滤波器的主要设计方法有窗函数法、 最优化 设计法及约束最小二乘逼近法。 MATLAB 信号处理工 具箱中提供了滤波器设计方法的工具函数,编程中可 以根据设计要求直接调用相应的函数,方便快捷。
本例采用最优化设计方法:利用 rmezord 函数设计
一个最小阶次的低通滤波器, 其通带截止频率为 500 Hz,阻带截止频率为 600 Hz,采样频率为 2 000 Hz,最 小阻带衰减为 40 db,通带纹波小于 3 db,其 MATLAB 实现程序如下:
1) 确定指标。 在设计一个滤波器之前,必须首先 根据工程实际的需要来确定滤波器的技术指标。 在很 多实际应用中, 数字滤波器常被用来实现选频操作。 因此指标的形式一般在频域中给出幅度和相位响应。
2) 模型逼近。 一旦确定了技术指标,就可以利用 已学习过的基本原理和关系式,提出一个滤波器模型 来逼近给定的技术指标。 这是滤波器设计所要研究的 主要问题。
华 大 学 出 版 社 ,2004.
图 6 滤波后信号的时域波形
The Design and Simulation of Digital Filter Based on MATLAB
REN Shu-ping,WANG Xin-feng
(Engineering College of Shanxi University,Taiyuan 030013,China) 〔Abstract〕The design methods of direct programming, FDAtool interface and SPTool signal processing toolbox are introduced in designing digital filter with MATLAB in this article. The simulation figures are given by programming and spTool signal processing toolbox. Furthermore, the designed FDAtool filter are called and simulated in SIMULINK. 〔Key words〕MATLAB; digital filter; FDAtool;SPTool;Simulink
2) 滤波器设计。 单击 Filters 栏中的 New 按钮打 开滤波器设计工具。 在界面的最上面指定滤波器的名 字、 采样频率和设计方法。 这里命名滤波器名称为 filt1,采样频率 fs=2 000 Hz,采用 Equiripple FIR 算法, 通带波纹 Rp=3, 阻带波纹 Rs=40, 通阻带截止频率 f= [500 600]Hz。
3) 实现性能分析和计算机仿真。 以上两步的结果 得到的滤波器,通常是以差分方程、系统函数或脉冲 响应描述的。 根据这个描述就可以分析其频率特性和 相位特性,以验证设计结果是否满足指标要求;或者 利用计算机仿真实现设计的滤波器,再分析滤波结果 来判断。 2 数字滤波器的 MATLAB 设计
利 用 MATLAB 设 计 滤 波 器[2],可 以 随 时 对 比 设 计 要求和滤波器特性调整参数,直观简便,极大地减轻 了工作量,有利于滤波器设计的最优化。 2.1 直接程序设计法
clear all; rp=3; % 通带波纹 rs=40; % 阻带波纹 fs=2000; % 采样频率 f=[500 600]; % 截止频率 a=[1 0]; % 期望的幅度 dev=[(10^(rp/20)-1)/(10^(rp/20)+1) 10^(-rs/20)]; [n,fo,ao,w]=remezord(f,a,dev,fs); b=remez(n,fo,ao,w); freqz(b,1,1024,fs);
第 24 卷第 3 期(总第 108 期) Vol.24 No.3 (SUM No.108)
机械管理开发 MECHANICAL MANAGEMENT AND DEVELOPMENT
2009 年 6 月 Jun . 2009
基于 MATLAB 的数字滤波器设计与仿真
任淑萍,王欣峰
(山西大学 工程学院,山西 太原 030013) 【摘 要】 应用 Matlab 语言设计数字滤波器时采用直接程序设计法、FDAtool 以及 SPTool 信号处理工具箱的设计 方法,通过实例,给出了程序设计法和使用信号处理工具箱中 SPTool 进行设计的仿真图形,并在 Matlab 的 Simulink 环境下,调用所设计的 FDAtool 滤波器进行了仿真。 【关键词】 MATLAB;数字滤波器;FDAtool;SPTool;Simulink 【中图分类号】 TN713 【文献标识码】 A 【文章编号】 1003-773X(2009)03-0181-03
参考文献 [1] 邵 朝,阴亚芳.数字信号处理[M].北京:北京邮电大学出版
社,2004. [2] 程佩清.数字信号处理[M].(第二版)[M].北京:清华大学出版
社,1998. [3] 罗军辉,罗勇江. MATLAB 在数字信号处理中的应用[M].北
京 :机 械 工 业 出 版 社 ,2005. [4] 王 宏.MATLAB 6.5 及其在信号处理中的应用[M].北京:清
设计的滤波器如图1所示。
图 1 低通滤波器的幅频及相频响应曲线 在设计中如果该滤波器的特性不满足要求,原有 的参数必须作相应的调整,在程序中只需对参数进行 重新设定,就可以得到所需要的滤波器。 在实际应用中,如果需要对某一信号源进行特定 的滤波,并要检验滤波效果,应用传统方法比较繁琐。
在 MATLAB 环境下, 可先用软件模拟产生信号源,再 设计滤波器对其进行滤波,如下面就是利用已设计好 的滤波器,对一混频信号进行滤波的实例,滤波前后 信号的波形如图 2 所示。
频谱 spect1。同样步骤生成 sig2 的频谱 spect2。如图 4 为 滤波前(绿)后(红)信号频谱。
由图 4 可以看出, 所设计的 FIR 低通滤波器 filt1 使输入的信号 x 中的频率为 300 Hz 的信号通过,而将 频率为 800 Hz 正弦信号大大衰减,从而可知所设计的 滤波器满足题目要求。
图 5 滤波前信号的时域波形
3结论 应用 Matlab 语言进行 FIR 数字滤波器的设计时,
采用直接程序设计法和利用 SPTool 及 FDAtool 界面的 设计法都可以快捷有效地完成滤波器的设计。 通过实 例可以看出, 这三种方法最大的优点是都可以通过改 变参数来得到新条件下滤波器的特性,便于对比,进而 能 达 到 设 计 的 最 优 化 。 但 比 较 起 来 , 应 用 SPTool 及 FDAtool 避免了相对复杂的编程,较为直观、方便,还可 以将 FDAtool 设计的滤波器直接调入到 Simulink 仿真 模块中进行实时仿真,具有更强的交互性。 在对数字滤 波器的设计中,Matlab 显示了其强大的计算功能,必然 在以后的数字信号处理中,展现更为广阔的应用前景。