MATLAB报告文档格式.docx
《MATLAB报告文档格式.docx》由会员分享,可在线阅读,更多相关《MATLAB报告文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
1.介绍
随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。
数字信号处理在通信、语音、图像,自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
在数字信号处理中,数字滤波器占有极其重要的地位。
现代数字滤波器可以用软件或设计专用的数字处理硬件两种方式来实现,用软件来实现数字滤波器优点是随着滤波器参数的改变,很容易改变滤波器的性能。
首先当数据通过一个通道传输时,它会受到传输信道固有噪声的影响(即信道脉冲响应)。
提取数据时,需要抑制噪声和补偿信道特性。
第一个实验的目标是从损坏的信息中提取原始信号和解码它的消息。
另一个次要的目的,我们将尽量减少计算和设计解决方案的复杂性。
在完成了设计和分析有限脉冲响应(FIR)和无限脉冲响应(IIR)数字滤波器,使用MATLAB设计滤波器和分析工具(SPTool和FDATool),我们将能够获得优点和缺点不同的滤波器和一些折中,影响我们的选择。
2数字滤波器的基本概念
滤波器的种类很多,从功能上可分为低通、高通、带通和带阻滤波器,每一种又有模拟滤波器和数字滤波器两种形式。
如果滤波器的输人和输出都是离散时间信号,则该滤波器的冲击响应也必然是离散的,这种滤波器称之为数字滤波器。
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
数字滤波器也是具有一定传输选择特性的数字信号处理装置,其输入、输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。
它的基木工作原理是利用离散系统特性对系统输人信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出。
数字滤波器除了具有数字信号处理的固有优点外,还有滤波精度高(与系统字长有关)、稳定性好(仅运行在0与I两个电平状
态)、灵活性强等优点。
3数字滤波器设计的基本步骤
数字滤波器的设计要经过如下三个步骤:
(1)确定指标:
在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。
在很多实际应用中,数字滤波器常常被用来实现选频操作。
因此,指标的形式一般在频域中给出幅度和相位响应。
(2)模型逼近:
一旦确定了技术指标,就可利用已学习过的基本原理和关系式,提出一个滤波器模型来逼近给定的指标体系。
这是滤波器设计所要研究的主要问题。
(3)实现性能分析和计算机仿真
以上两步的结果得到的滤波器,通常是以差分方程、系统函数或脉冲响应描述的。
根据这个描述就可以分析其频率特性和相位特性、以验证设计结果是否满足指标要求;
或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。
4设计实例
4.1MATLAB程序设计法
MATLAB信号处理工具箱提供了各种滤波器设计函数及滤波器实现函数,Ellip是完全设计函数之一,其调用格式为[b,a]=ellip(n,Rp,Rs,Wn,Options),n为滤波器阶数,Rp表示通带波纹最大衰减,Rs表示阻带波纹最小衰减,Wn为滤波器的归一化截止频率(Nyquist频率为1Hz);
函数默认为低通或带通滤波器:
低通滤波器时,Wn为截止频率;
带通滤波器时,截止频率Wn=[W1,W2]。
a分别为滤波器传递函数分子和分母系数向量;
options为滤波器类型参数:
high为高通滤波器,截止频率为Wn;
stop为带阻滤波器,截止频率Wn=[W1,W2]。
例:
产生有三个正弦成分(5Hz,15Hz和30Hz)的信号,设计一滤波器来去除5Hz和30Hz的正弦信号,保留15Hz的信号。
根据题目要求结合所学知识首先选用ellip函数直接设计此滤波器(IIR数字带通滤波器),其完整MATLAB程序如下:
1)产生含有3个正弦分量的信号
Fs=100;
t=(1:
100)/Fs;
s1=sin(2*pi*t*5);
s2=sin(2*pi*t*15);
s3=sin(2*pi*t*30);
s=s1+s2+s3;
plot(t,s);
title('
含有3个正弦分量的信号'
);
set(gcf,'
color'
'
white'
xlabel('
Time(seconds)'
ylabel('
Timewaveform'
)
2)产生一个4阶IIR带通滤波器,通带为10Hz到20Hz,并得出其幅频响应
[b,a]=ellip(4,0.1,40,[10,20]*2/Fs);
[H,w]=freqz(b,a,512);
plot(w*Fs/(2*pi),abs(H));
IIR带通滤波器幅频响应'
Frequency(Hz)'
ylabel('
Mag.offrequencyresponse'
grid;
3)对信号进行滤波
sf=filter(b,a,s);
plot(t,sf);
滤波后的信号波形'
axis([01-11]);
4)绘出信号滤波前、后的幅频图
S=fft(s,512);
SF=fft(sf,512);
w=(0:
255)/256*(Fs/2);
plot(w,abs([S(1:
256)'
SF(1:
]));
滤波前、后的幅频图'
grid;
legend({'
滤波前的幅频图'
滤波后的幅频图'
})
4.2利用SPTool工具进行设计
SPTool是信号处理工具箱中一个具有交互式图形用户界面的信号处理工具,专门用于完成常用的数字信号处理任务。
通过这个工具,只需要鼠标简单的操纵鼠标(点击或拖动),就可以完成载入、观察、分析、实现和设计数字滤波器并进行谱分析等甚至十分复杂的数字信号处理任务,而不需要用户对数字滤波器的设计原理非常熟悉。
利用SPTool工具进行本例的设计有如下几个步骤:
1)创建并导入信号源;
在MATLAB命令窗口输入命令:
s=sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);
此时,变量Fs、t、s将显示在MATLAB的workspace列表
中。
在MTLAB命令窗口中输入sptool,即可弹出SPTooI的主界面
点击菜单File/Import则打开了“ImporttoSPTool”对话框,将信号s和采样频率Fs导入并命名为Sig_s。
2)单击Filters栏中的New按钮打开滤波器设计窗口如图六
在界面的最上面指定滤波器的名字filt3,采样频率Fs和设计方法EllipticIIR;
左侧的Specification面板用来指定设计指标;
order为4,type为bandpass,passband中的FP1为10,FP2为20,RP为0.1,stopband为40;
完成以上输入之后单击Apply按钮,则完成了滤波器的设计;
中间的FrequencyResponse面板则根据设计指标自动绘出滤波器的幅频响应,而右侧的Measurements面板显示了滤波器设计完成后的实测参数。
此时在Filters栏中,选中filt3按下View按钮即弹出FVTool界面如图七
我们还可以观察到滤波器的相位响应、幅频相位响应、脉冲响应、阶跃响应等等(只须点击界面上的相应快捷按钮)。
3)将滤波器应用到s信号序列。
分别在Signals、Filters栏中选择s、filt1