数字信号处理A实验Word下载.docx
- 文档编号:7587628
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:66
- 大小:560.05KB
数字信号处理A实验Word下载.docx
《数字信号处理A实验Word下载.docx》由会员分享,可在线阅读,更多相关《数字信号处理A实验Word下载.docx(66页珍藏版)》请在冰点文库上搜索。
1、熟悉MATLAB软件的集成开发环境,学会利用MATLAB编程及获得帮助的方法。
2、掌握MATLAB中有关矩阵和向量的表示和运算方法。
3、学会利用MATLAB的绘图功能。
4、学会对MATLAB程序进行调试。
二、Matlab基本练习
(一)MATLAB功能简介
在科学研究和工程应用中,往往要进行大量的数学计算,这些运算一般来说难以用
手工精确和快捷地进行,而要借助计算机编制相应的程序做近似计算。
Matlab目前已经成为国际上流行的仿真软件之一,除了传统的交互式编程之外,还提供了丰富可靠的矩阵运算、图形绘制、数据处理、方便的Windows编程等便利工具。
Matlab的应用领域涉及到各个方面,而且形成了专门的工具箱,如控制系统工具箱(controlsystemstoolbox)、系统辨识工具箱(systemidentificationtoolbox)、鲁棒控制工具箱(robustcontroltoolbox)、神经网络工具箱(neuralnetworktoolbox)、最优化工具箱(optimizationtoolbox)、信号处理工具箱(signalprocessingtoolbox)、小波分析工具箱(wavelettoolbox)以及仿真环境SIMULINK等。
由于Matlab编程运算方式不像学习其它高级语言(如Basic、Fortran和C等)那样难于掌握。
Matlab语言具有编程效率高、易学易懂、使用方便、绘图方便等一系列优点。
(二)MatLab中的向量及矩阵表示练习
命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。
MATLAB命令窗口中的“>
>
”为命令提示符,表示MATLAB正在处于准备状态。
在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。
(1)矩阵输入:
在MatLab环境下,矩阵输入的方式很直观,如矩阵
A的输入方式为:
A=[1,2,3;
4,5,6;
7,8,9]
其中同一行的内容用逗号或空格隔开,而采用分号表示换行。
按这种方式输入矩阵后,按回车键,矩阵A的内容将在屏幕上显示出来。
A=
123
456
789
如果在上式所示语句的后面加一个分号,则其结果便不会在屏幕上显示。
如
7,8,9];
(2)向量输入:
1)向量的直接输入,例如输入下面两条命令
V1=[1234]
V1=[1;
2;
3;
4]
可以简单的输出下面的行向量和列向量
2)等差向量的输入:
向量除了可以直接输入外,还可以利用“:
”运算符获得等差向量。
如输入1:
0.1:
2则会产生从1开始一直到2公差为0.1的向量,即[1.00001.10001.20001.30001.40001.50001.60001.70001.80001.90002.0000]。
练习:
x=1:
0.1:
2
x=
Columns1through8
1.00001.10001.20001.30001.40001.50001.60001.7000
Columns9through11
1.80001.90002.0000
当公差为1时可以省略,如1:
5;
产生的向量为[12345];
n=1:
5
n=
12345
(3)零向量、零矩阵、1向量、1矩阵
与向量生成有关的简单函数还有zeros(m,n)产生m×
n维0矩阵;
ones(m,n)产生m×
n维1矩阵。
x=ones(2,3)
111
(4)数组
在MATLAB中可以采用如下的形式引用数组元素。
A(:
2)表示A矩阵的第2列元素;
A(2,:
)表示A矩阵中的第2行元素;
A(1,2)表示矩阵中的第1行第2列的元素。
(注:
在MATLAB中矩阵元素的下标从1开始)。
如输入:
A=[123;
456;
789];
)
输出:
ans=
456
输入:
A(1,2)
(三)MatLab基本绘图
绘图涉及到两个方面,指定自变量的范围,选择绘图命令及绘图格式。
(1)stem函数
“stem”绘制针状图。
“stem”适合绘制离散序列的图形。
例如,下面的代码可以绘制正弦函数的图形:
50;
%定义序列的长度是50
t=2*pi*n/50;
%定义时间变量,自变量范围为[0,2*pi]
xn=sin(t);
%计算正弦函数值
stem(xn);
%画针状图
得到的函数图形如图1.1所示:
图1.1针状图示例
(2)plot函数
“plot”函数绘制图形,其调用格式一般为plot(x,y),其中x和y分别是欲画图像在X轴和Y轴的数据向量。
点及其连接类型有多种选项(查帮助可得)。
点数足够密时,成为光滑曲线。
如输入以下内容,可以绘制正弦函数等的图形,并对图形处理、加注释等:
closeall;
%关闭所有已经打开的图形视窗
x=-pi:
pi;
%指定自变量的范围
y=sin(x);
plot(x,y);
%绘制正弦曲线,如图1.2
figure;
%打开新的图形窗口。
去掉该语句,新的图形将覆盖旧的图形
plot(x,sin(x),x,cos(x));
%同时绘制两条曲线,图1.3
axis([-3.2,3.2,-1.2,1.2]);
%axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围
xlabel('
InputValue'
);
%x轴注解
ylabel('
FunctionValue'
%y轴注解
title('
TwoTrigonometricFunctions'
%图形标题
legend('
y=sin(x)'
'
y=cos(x)'
%图形注解
gridon;
%显示格线,最后图形见图1.4
图1.2正弦曲线
图1.3绘制两条正弦曲线
图1.4加注释等之后的图1.3
(3)函数“subplot”,该函数用来同时画出数个小图形于同一个视窗之中,例如:
subplot(2,2,1);
plot(x,sin(x));
%一个大图中分四个小图,两行、两列,此为1号位置图
subplot(2,2,2);
plot(x,cos(x));
%一个大图中分四个小图,两行、两列,此为2号位置图
subplot(2,2,3);
plot(x,sinh(x));
subplot(2,2,4);
plot(x,cosh(x));
图1.5subplot示例
(四)MatLab帮助的使用
1.MATLAB帮助文档:
主窗口下按F1打开帮助文档,查找、搜索相关内容
Contents一栏中的MATLAB下的GettingStarted中有基本的MATLAB命令介绍
signalprocessingtoolbox中有本课程所用的各种信号处理相关命令。
2.快捷键获得帮助
图1.6获取命令帮助
3.help命令名获取帮助,如:
helpplot
(五)m文件的建立和调试
(1)建立新的M文件
1)菜单操作。
从MATLAB主窗口的File菜单中选择New菜单项,再选择M-file命令,
屏幕上将现MATLAB文本编辑器窗口,输入M文件的内容并存盘。
单击Run,运行程序,显示结果。
2)命令按钮操作。
单击MATLAB主窗口工具栏上的NewM-File命令按钮,启动MATLAB文本编辑器.
(2)调试:
在程序当中设置断点,或单步执行,可观察每步的运行结果。
图1.7m文件的调试
⏹F5:
运行到断点
⏹F10:
单步运行
⏹设置、取消断点:
鼠标左键在左边行号处点击
⏹工作空间是MATLAB用于存储各种变量和结果的内存空间。
调试时,可在工作空间对变量进行观察、编辑、保存和删除。
简单变量的值可以用鼠标放在m文件的相应变量上进行显示。
三、信号处理相关综合练习
(1)建立m文件,执行卷积运算,进行设置断点、调试练习,并绘针状图
用MATLAB计算序列{-201–13}和序列{120-1}的离散卷积。
在实验报告中给出卷积结果和图形结果
函数conv功能简介:
计算离散卷积。
调用格式:
yn=conv(hn,xn)计算向量hn和xn的卷积,卷积结果向量为yn。
如果用N和M分别表示hn和xn的长度,则yn的长度为N+M-1。
(2)实现单位抽样序列δ(n)和矩形序列R10(n-2)。
序列起始序号为-5,结束序号为20。
要求绘出杆状图。
四、实验内容
2、做内容二中的练习。
3、做内容三的练习,并在报告中给出实验程序和实验结果
五、实验报告内容及要求
1、简述实验目的。
2、内容三的题目、程序及执行结果,要求形成word文档并打印(matlab图形中用edit-copyfigure菜单可将图形拷贝到word中)。
实验二信号、系统及系统响应
(1)掌握求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
二、实验原理与方法
在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。
在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。
也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。
重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。
或者系统的单位脉冲响应满足绝对可和的条件。
系统的稳定性由其差分方程的系数决定。
实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。
可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的。
系统的稳态输出是指当n→∞时,系统的输出。
如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。
注意在以下实验中均假设系统的初始状态为零。
三、实验内容及步骤
(1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用filter函数或conv函数求解系统输出响应的主程序。
程序中要有绘制信号波形的功能。
(2)给定一个低通滤波器的差分方程为
输入信号
①分别求出x1(n)=R8(n)和x2(n)=u(n)的系统响应,并画出其波形。
②求出系统的单位脉冲响应,画出其波形。
(3)给定系统的单位脉冲响应为
用线性卷积法求x1(n)=R8(n)分别对系统h1(n)和h2(n)的输出响应,并画出波形。
(4)给定一谐振器的差分方程为
令b0=1/100.49,谐振器的谐振频率为0.4rad。
①用实验方法检查系统是否稳定。
输入信号为u(n)时,画出系统输出波形。
②给定输入信号为
求出系统的输出响应,并画出其波形。
(5)已知系统函数
,
,通过函数zplane(b,a)绘制系统零极点图。
通过[h,t]=impz(b,a,n)
%返回n点冲激响应h(n)
给定
,绘制系统零极点图。
计算系统的单位冲激响应h(n)。
四、思考题
(1)如果输入信号为无限长序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应?
如何求?
(2)如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号会有何变化?
用前面第一个实验结果进行分析说明。
五、实验报告要求
(1)简述实验目的和原理。
(2)简述通过实验判断系统稳定性的方法。
分析上面第三个实验的稳定输出的波形。
(3)对各实验所得结果进行简单分析和解释。
(4)简要回答思考题。
(5)打印程序清单和要求的各信号波形。
实验三时域采样定理
熟悉并加深对采样定理的理解,理解采样信号的频谱和模拟信号频谱之间的关系,验证抽样定理。
二、实验原理
模拟信号经过理想采样,形成采样信号。
采样信号的频谱和模拟信号频谱之间的关系如下:
其中
是采样后信号的频谱。
是采样前模拟信号的频谱。
T为采样周期,Ω表示模拟信号的角频率,ΩS为采样角频率。
三、实验用MATLAB函数介绍
1.fft
功能:
一维快速傅立叶变换(FFT)。
Xk=fft(xn,N):
采用FFT算法计算序列向量xn的N点DFT。
缺省N时,fft函数自动按xn的长度计算xn的DFT。
当N为2的整数次幂时,fft按基2算法计算,否则用混合基算法。
2.ifft
一维快速逆傅立叶变换(IFFT)。
调用格式:
与fft相同。
四、实验内容和步骤
1.给定模拟信号如下:
xa(t)的幅频特性曲线
2.按照选定的采样频率对模拟信号进行采样,得到时域离散信号x(n):
这里给定采样频率如下:
fs=1kHz,300Hz,200Hz。
分别用这些采样频率形成时域离散信号,按顺序分别用x1(n)、x2(n)、x3(n)表示。
选择观测时间Tp=50ms。
3.计算x(n)的傅立叶变换
:
式中,i=1,2,3,分别对应三种采样频率的情况
采样点数用下式计算:
因ω是连续变量。
为用计算机进行数值计算,改用下式计算:
式中,ωk=2πk/M,k=0,1,2,3,…,M-1;
M=64。
可以调用MATLAB函数fft计算
4.打印三种采样频率的幅度曲线
k=0,1,2,3,…,M-1,M=64。
5.Decimate函数的用法:
功能:
用于信号的整数倍抽取
调用方式:
y=decimate(x,r):
将信号x的采样频率降低为原来的1/r倍,y的长度是x的1/r对信号进行4倍抽取程序代码:
t=0:
.00025:
1;
x=cos(2*pi*30*t)+cos(2*pi*60*t);
y=decimate(x,4);
subplot(1,2,1);
stem(x(1:
120)),axis([0120-22])
原始信号'
stem(y(1:
30))
抽取信号'
五、实验报告要求
1)简述实验原理。
2)针对三种采样频率情况,进行分析讨论。
3)主要结论。
实验四用DFT(FFT)对信号进行谱分析
1)在理论学习的基础上,通过本次实验加深对DFT的理解。
2)熟悉应用FFT对典型信号进行频谱分析的方法。
3)了解应用FFT进行信号频谱分析过程中可能出现的各种误差,以便在实际中正确应用FFT。
在运用DFT进行频谱分析的时候可能会产生三种误差,现分析如下:
(一)截断效应
实际中的信号序列往往很长,甚至是无限长序列。
为了方便,我们往往只取实际序列的一部分来近似它们。
这种截断等价于给原信号序列乘以一个矩形窗函数。
根据卷积定理,最终信号的频谱等于原信号的谱和矩形窗的谱的卷积,从而造成谱线加宽或称为频谱泄漏。
矩形窗时间取得越长,矩形窗的频谱变窄,由截断引起的效应会减小。
例如50Hz正弦波xa(t)=sin(2π·
50t),它的幅度曲线是线状谱,如图4.1(a)所示。
如果将它截取0.09s的一段,相当于将它乘一长度为0.09s矩形窗函数,即xa(t)RTp(t),Tp=0.09s,该信号的谱等于原信号的谱和矩形窗的谱的卷积,如图4.1(b)所示。
矩形窗长度扩大Tp=0.18s,后,频谱泄漏会变小,如图4.1(c)。
图4.1用DFT对正弦波进行谱分析
(a)50Hz正弦波的幅频曲线;
(b)50Hz正弦波加窗后的幅频曲线(Tp=0.09s);
(c)50Hz正弦波加窗后的幅频曲线(Tp=0.18s)
同时,由于频谱泄漏,还会造成靠得很近的两个谱峰混淆为一个谱峰,或是强的谱线的旁瓣掩盖弱的谱线,称为谱间干扰,导致频谱分辨率降低。
泄漏和谱间干扰都会小。
(二)栅栏效应
因为DFT是Z变换在单位圆上的等间隔采样,所以它的频谱不是—个连续函数。
这样就产生了栅栏效应。
用DFT来观看频谱就好像通过—个栅栏来观看一幅景象,看到的只是信号在一些离散点上的频谱。
这样,如果有一些频谱的值处在离散点之间,就不会被计算,相当于被“栅栏”挡住,不能被我们观察到。
减小栅栏效应的—个方法是在原序列的末端补—些零值,从而改变DFT的点数。
这种方法的实质是人为地改变了对真实频谱采样的点数和位置,相当于搬动了“栅栏”的位置,从而使得原来被挡住的—些频谱的峰点或谷点显露出来。
但补零对改善谱间干扰无作用。
(三)混叠现象
当采样速率不满足Nyquist定理,即采样频率小于两倍信号(这里指的是实信号)的最高频率时,由于周期性延拓必然造成频率混叠。
所以,在利用DFT分析连续信号频谱的时候,必须注意这一问题。
实验三的时域采样定理实验反映了混叠现象的特点。
在实际应用中要尽可能减小和消除DFT用于信号的频谱分析时这些误差的影响。
(四)频谱分析时各种因素的综合考虑
在实际用FFT对模拟信号进行谱分析时,首先要把模拟信号转换成数字信号,转换时要求知道模拟信号的最高截止频率,以便选择满足采样定理的采样频率,避免混叠效应。
一般选择采样频率是模拟信号中最高频率的3~4倍。
如果模拟信号不是严格的带限信号,会因为频谱混叠现象引起谱分析的误差,这种情况下可以预先将模拟信号进行预滤,或者尽量将采样频率取高一些。
除选择采样频率外,还需要确定谱分辨率F,并由此进一步确定观测时间,避免栅栏效应。
同时,取样时间加长,可以减小泄漏,从而使得相近频率的谱间干扰减小。
最小的观测时间Tpmin和谱分辨率F成倒数关系,一般用教材P98(3.4.15)式确定。
最小的采样点数用教材P98(3.4.14)式确定。
要求选择的采样点数和观测时间大于它的最小值。
用FFT作谱分析时,一般取FFT的点数服从2的整数幂,这一点在上面选择采样点数时可以考虑满足,有时可以通过在序列尾部加0完成。
如果要进行谱分析的模拟信号是周期信号,最好选择观测时间是信号周期的整数倍。
如果不知道信号的周期,要尽量选择观测时间长一些,以减少截断效应的影响。
举一个极端的例子,一个周期性正弦波,如果所取观察时间太短,例如取小于一个周期,它的波形和正弦波相差太大,肯定误差很大,但如果取得长一些,即使不是周期的倍数,这样截断效应也会小一些。
对一个或数个孤立的正弦信号进行频谱分析,或者说连续频谱中存在一些突出尖锐的峰,则栅栏效应的影响较大,且有一些另外的特性需要考虑。
在满足采样频率大于3-4倍的信号频率的条件下,取信号周期的整倍数的时间长度进行谱分析,可以避开泄漏。
避开泄漏的原理,其推导请参见胡广书编《数字信号处理》(1997年版)“3.8关于正弦信号抽样的讨论”。
从图形上面分析,可参考图4.1。
回顾相关知识,矩形窗的FFT的主峰及零点在2kπ/N。
观察图4.1,单个频率的信号截断后,就不再是单个频率的信号,因为在截断区的前后是作为零值对待的,其频谱不再是单一频率,而是其本来的线谱同矩形窗卷积的结果,频谱以原线谱为核心向两边产生泄漏,频谱结构与矩形窗相同,具体如图3.1所示。
做FFT时,频率点的取值是:
ωk=2πfk/fs=2πk/N,相对应的模拟频率fk=kfs/N。
假如信号的频率为fx,那么如果fx能够和某个fk重合,则由于fk之间的间距与fx零点之间的间距都是fs/N(2kπ/N的数字频率间距通过模拟频率和数字频率的转换公式转化为模拟频率间距即为fs/N),FFT的k值取样点fk=kfs/N,刚好位于图4.1所示的谱线主峰和周围的零点上,FFT的频谱就可以避开截断效应。
正弦信号fx能够和某个fk重合的条件是取信号的整周期进行分析,这时频谱只显示了主峰,泄漏未显示。
但当信号的频率未知时,或是存在多条谱线时,这种重合无法事先推断,因而离散频谱就没有取在主峰和零点上,就会显示出较为杂乱的谱线。
为了增加频谱分辨率、降低谱间干扰,比较可靠的方法是将信号的时间取长一些,长到一定程度之后,再增加时间长度,两次频谱基本接近,这时可以认为最终结果接近实际模拟信号的频谱。
实验中请仔细观察现象。
三、实验内容及步骤
1.初步练习:
用信号x1(t)=cos20πt观察频谱泄漏现象、栅栏效应及正弦波抽样时的规律。
信号频率为f=10Hz,周期为0.1秒。
令采样频率为fs=100Hz,采样周期Ts=0.01s,满足采样定理要求及一般正弦信号抽样习惯。
令截取长度为N=68点,不满足整周期,观察频谱泄漏。
根据fk=kfs/N计算可得,模拟信号x1(t)的频率没有与任意一个fk值相对应,而是处在k=6和k=7对应的频率的中间。
所以假如没有频谱泄漏,N=68时x1(t)的频谱中不能观察到任何谱线。
但由于存在泄漏,观察k=7附近,可以观察到泄漏出的主峰中心线附近的频谱的谱线。
令截取长度为N=100点,共取10个整周期,根据fk=k
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 实验