基于MATLAB信号与系统实验讲义.docx
《基于MATLAB信号与系统实验讲义.docx》由会员分享,可在线阅读,更多相关《基于MATLAB信号与系统实验讲义.docx(13页珍藏版)》请在冰豆网上搜索。
![基于MATLAB信号与系统实验讲义.docx](https://file1.bdocx.com/fileroot1/2023-2/9/fc79ea54-3f5c-4f94-9d3b-6bb533d4106d/fc79ea54-3f5c-4f94-9d3b-6bb533d4106d1.gif)
基于MATLAB信号与系统实验讲义
实验三连续时间LTI系统的频域分析
一、实验目的
1、掌握系统频率响应特性的概念及其物理意义;
2、掌握系统频率响应特性的计算方法和特性曲线的绘制方法,理解具有不同频率响应特性的滤波器对信号的滤波作用;
3、学习和掌握幅度特性、相位特性以及群延时的物理意义;
4、掌握用MATLAB语言进行系统频响特性分析的方法。
基本要求:
掌握LTI连续和离散时间系统的频域数学模型和频域数学模型的MATLAB描述方法,深刻理LTI系统的频率响应特性的物理意义,理解滤波和滤波器的概念,掌握利用MATLAB计算和绘制LTI系统频率响应特性曲线中的编程。
二、实验原理及方法
1连续时间LTI系统的频率响应
所谓频率特性,也称为频率响应特性,简称频率响应(Frequencyresponse),是指系统在正弦信号激励下的稳态响应随频率变化的情况,包括响应的幅度随频率的变化情况和响应的相位随频率的变化情况两个方面。
连续时间LTI系统的时域及频域分析图
上图中x(t)、y(t)分别为系统的时域激励信号和响应信号,h(t)是系统的单位冲激响应,它们三者之间的关系为:
,由傅里叶变换的时域卷积定理可得到:
3.1
或者:
3.2
为系统的频域数学模型,它实际上就是系统的单位冲激响应h(t)的傅里叶变换。
即
3.3
由于H(j)实际上是系统单位冲激响应h(t)的傅里叶变换,如果h(t)是收敛的,或者说是绝对可积(Absolutlyintegrabel)的话,那么H(j)一定存在,而且H(j)通常是复数,因此,也可以表示成复数的不同表达形式。
在研究系统的频率响应时,更多的是把它表示成极坐标形式:
3.4
上式中,
称为幅度频率相应(Magnituderesponse),反映信号经过系统之后,信号各频率分量的幅度发生变化的情况,
称为相位特性(Phaseresponse),反映信号经过系统后,信号各频率分量在相位上发生变换的情况。
和
都是频率的函数。
对于一个系统,其频率响应为H(j),其幅度响应和相位响应分别为
和
,如果作用于系统的信号为
,则其响应信号为
3.5
若输入信号为正弦信号,即x(t)=sin(0t),则系统响应为
3.6
可见,系统对某一频率分量的影响表现为两个方面,一是信号的幅度要被
加权,二是信号的相位要被
移相。
由于
和
都是频率的函数,所以,系统对不同频率的频率分量造成的幅度和相位上的影响是不同的。
2LTI系统的群延时
从信号频谱的观点看,信号是由无穷多个不同频率的正弦信号的加权和(Weightedsum)所组成。
正如刚才所述,信号经过LTI系统传输与处理时,系统将会对信号中的所有频率分量造成幅度和相位上的不同影响。
从相位上来看,系统对各个频率分量造成一定的相位移(Phaseshifting),相位移实际上就是延时(Timedelay)。
群延时(Groupdelay)的概念能够较好地反映系统对不同频率分量造成的延时。
LTI系统的群延时定义为:
3.7
群延时的物理意义:
群延时描述的是信号中某一频率分量经过线性时不变系统传输处理后产生的响应信号在时间上造成的延时的时间。
如果系统的相位频率响应特性是线性的,则群延时为常数,也就是说,该系统对于所有的频率分量造成的延时时间都是一样的,因而,系统不会对信号产生相位失真(Phasedistortion)。
反之,若系统的相位频率响应特性不是线性的,则该系统对于不同频率的频率分量造成的延时时间是不同的,因此,当信号经过系统后,必将产生相位失真。
3用MATLAB计算系统频率响应
在本实验中,表示系统的方法仍然是用系统函数分子和分母多项式系数行向量来表示。
实验中用到的MATLAB函数如下:
[H,w]=freqs(b,a):
b,a分别为连续时间LTI系统的微分方程右边的和左边的系数向量(Coefficientsvector),返回的频率响应在各频率点的样点值(复数)存放在H中,系统默认的样点数目为200点;
Hm=abs(H):
求模数,即进行
运算,求得系统的幅度频率响应,返回值存于Hm之中。
real(H):
求H的实部;
imag(H):
求H的虚部;
phi=atan(-imag(H)./(real(H)+eps)):
求相位频率相应特性,atan()用来计算反正切值;或者
phi=angle(H):
求相位频率相应特性;
tao=grpdelay(num,den,w):
计算系统的相位频率响应所对应的群延时。
计算频率响应的函数freqs()的另一种形式是:
H=freqs(b,a,w):
在指定的频率范围内计算系统的频率响应特性。
在使用这种形式的freqs/freqz函数时,要在前面先指定频率变量w的范围。
例如在语句H=freqs(b,a,w)之前加上语句:
w=0:
2*pi/256:
2*pi。
下面举例说明如何利用上述函数计算并绘制系统频率响应特性曲线的编程方法。
假设给定一个连续时间LTI系统,下面的微分方程描述其输入输出之间的关系
编写的MATLAB范例程序,绘制系统的幅度响应特性、相位响应特性、频率响应的实部和频率响应的虚部。
程序如下:
%Program3_1
%ThisProgramisusedtocomputeanddrawtheplotsofthefrequencyresponse
%ofacontinuous-timesystem
b=[1];%Thecoefficientvectoroftherightsideofthedifferentialequation
a=[132];%Thecoefficientvectoroftheleftsideofthedifferentialequation
[H,w]=;%ComputethefrequencyresponseH
Hm=;%ComputethemagnituderesponseHm
phai=;%Computethephaseresponsephai
Hr=;%Computetherealpartofthefrequencyresponse
Hi=;%Computetheimaginarypartofthefrequencyresponse
subplot(221)
plot(w,Hm),gridon,title('Magnituderesponse'),xlabel('Frequencyinrad/sec')
subplot(223)
plot(w,phai),gridon,title('Phaseresponse'),xlabel('Frequencyinrad/sec')
subplot(222)
plot(w,Hr),gridon,title('Realpartoffrequencyresponse'),
xlabel('Frequencyinrad/sec')
subplot(224)
plot(w,Hi),gridon,title('Imaginarypartoffrequencyresponse'),
xlabel('Frequencyinrad/sec')
三、实验内容及步骤
实验前,必须首先阅读本实验原理,了解所给的MATLAB相关函数,读懂所给出的全部范例程序。
实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。
并结合范例程序所完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。
四、实验报告要求
1、按要求完整书写你所编写的全部MATLAB程序
实验四信号抽样与调制解调
一、实验目的
1、进一步理解信号的抽样及抽样定理;
2、进一步掌握抽样信号的频谱分析;
3、掌握和理解信号抽样的原理;
基本要求:
掌握并理解“抽样”的概念,理解抽样信号的频谱特征。
深刻理解抽样定理及其重要意义。
二、实验原理及方法
1、信号的抽样及抽样定理
抽样(Sampling),就是从连续时间信号中抽取一系列的信号样本,从而,得到一个离散时间序列(Discrete-timesequence),这个离散序列经量化(Quantize)后,就成为所谓的数字信号(DigitalSignal)。
今天,很多信号在传输与处理时,都是采用数字系统(Digitalsystem)进行的,但是,数字系统只能处理数字信号,不能直接处理连续时间信号或模拟信号(Analogsignal)。
为了能够处理模拟信号,必须先将模拟信号进行抽样,使之成为数字信号,然后才能使用数字系统进行传输与处理。
所以,抽样是将连续时间信号转换成离散时间信号必要过程。
模拟信号经抽样、量化、传输和处理之后,其结果仍然是一个数字信号,为了恢复原始连续时间信号,还需要将数字信号经过所谓的重建(Reconstruction)和平滑滤波(Smoothing)。
图4.1展示了信号抽样与信号重建的整个过程。
图4.2给出了信号理想抽样的原理图:
上图中,假设连续时间信号是一个带限信号(BandlimitedSignal),其频率范围为
,抽样脉冲为理想单位冲激串(UnitImpulseTrain),其数学表达式为:
4.1
由图可见,模拟信号x(t)经抽样后,得到已抽样信号(SampledSignal)xs(t),且:
4.2
将p(t)的数学表达式代入上式得到:
4.3
显然,已抽样信号xs(t)也是一个冲激串,只是这个冲激串的冲激强度被x(nTs)加权了。
从频域上来看,p(t)的频谱也是冲激序列,且为:
4.4
根据傅里叶变换的频域卷积定理,时域两个信号相乘,对应的积的傅里叶变换等于这两个信号的傅里叶变换之间的卷积。
所以,已抽样信号xs(t)的傅里叶变换为:
4.5
表达式4.5告诉我们,如果信号x(t)的傅里叶变换为X(j),则已抽样信号xs(t)的傅里叶变换Xs(j)等于无穷多个加权的移位的X(j)之和,或者说,已抽样信号的频谱等于原连续时间信号的频谱以抽样频率s为周期进行周期复制的结果。
如图4.3所示:
由图可见,如果抽样频率不小于信号带宽的2倍时,xs(t)的频谱中,X(j)的各个复制品之间没有混叠(Aliasing),因此,可以用一个理想低通滤波器来恢复原始信号。
由抽样信号恢复原来的原始信号的过程称为信号的重建(Reconstruction)。
反之,如果抽样频率小于信号带宽的2倍时,xs(t)的频谱中,X(j)的各个复制品之间的距离(也就是s)太近,所以必将造成频谱之间的混叠,在这种情况下,是无论如何也无法恢复出原来的连续时间信号的。
由此,我们得出下面的结论:
当抽样频率s>2M时,将原连续时间信号x(t)抽样而得到的离散时间序列x[n]可以唯一地代表原连续时间信号,或者说,原连续时间信号x(t)可以完全由x[n]唯一地恢复。
以上讨论的是理想抽样的情形,由于理想冲激串是无法实现的,因此,这种理想抽样过程,只能用来在理论上进行抽样过程的分析。
在实际抽样中,抽样往往是用一个A/D转换器实现的。
一片A/D转换芯片包含有抽样保持电路和量化器。
模拟信号经过A/D转换器后,A/D转换器的输出信号就是一个真正意义上的离散时间信号,而不再是冲激串了。
A/D转换器的示意图如图4.4所示。
上述的实际抽样过程,很容易用简单的数学公式来描述。
设连续时间信号用x(t)表示,抽样周期(SamplingPeriod)为Ts,抽样频率(SamplingFrequency)为s,则已抽样信号的数学表达式为
4.6
在MATLAB中,对信号抽样的仿真,实际上就是完成式4.6的计算。
下面给出一个例题和相应的范例程序,来实现信号抽样的仿真运算。
例题4.1设连续时间信号为一个正弦信号x(t)=cos(0.5πt),抽样周期为Ts=1/4秒,编程序绘制信号x(t)和已抽样信号x[n]的波形图。
范例程序Sampling如下:
%Sampling
clear,closeall,
t=0:
0.01:
10;
Ts=1/4;%Samplingperiod
n=0:
Ts:
10;%Makethetimevariabletobediscrete
x=cos(0.5*pi*t);
xn=cos(0.5*pi*n);%Sampling
subplot(221)
plot(t,x),title('Acontinuous-timesignalx(t)'),xlabel('Timet')
subplot(222)
stem(n,xn,'.'),title('Thesampledversionx[n]ofx(t)'),xlabel('Timeindexn')
执行该程序后,得到的波形图如图4.5所示。
图4.5连续时间信号及其抽样后的离散时间序列
在这个范例程序中,先将连续时间t进行离散化,使之成为以Ts=1/4秒的离散时间n,然后,将n代入到信号x(t)的数学表达式中计算,就完成了抽样过程,且得到了抽样后的离散时间序列x[n]。
2、信号抽样过程中的频谱混叠
为了能够观察到已抽样信号的频谱是否会存在混叠现象,或者混叠程度有多么严重,有必要计算并绘制出已抽样信号的傅里叶变换。
根据式4.5可计算出已抽样信号的频谱。
下面给出的范例程序Program4_1就是按照式4.5进行计算的。
其中,主要利用了一个for循环程序完成周期延拓运算。
%Program4_1
clear,closeall,
tmax=4;dt=0.01;
t=0:
dt:
tmax;
Ts=1/10;
ws=2*pi/Ts;
w0=20*pi;dw=0.1;
w=-w0:
dw:
w0;
n=0:
1:
tmax/Ts;
x=exp(-4*t);
xn=exp(-4*n*Ts);
subplot(221)
plot(t,x),title('Acontinuous-timesignalx(t)'),
xlabel('Timet'),axis([0,tmax,0,1]),gridon
subplot(223)
stem(n,xn,'.'),title('Thesampledversionx[n]ofx(t)'),
xlabel('Timeindexn'),axis([0,tmax/Ts,0,1]),gridon
Xa=x*exp(-j*t'*w)*dt;
X=0;
fork=-8:
8;
X=X+x*exp(-j*t'*(w-k*ws))*dt;
end
subplot(222)
plot(w,abs(Xa))
title('Magnitudespectrumofx(t)'),gridon
axis([-60,60,0,1.8*max(abs(Xa))])
subplot(224)
plot(w,abs(X))
title('Magnitudespectrumofx[n]'),xlabel('Frequencyinradians/s'),gridon
axis([-60,60,0,1.8*max(abs(Xa))])
本程序可以用来观察在不同的抽样频率条件下,已抽样信号的频谱的混叠程度,从而更加牢固地理解抽样定理。
但是,提请注意的是,在for循环程序段中,计算已抽样信号的频谱X时,没有乘以系数1/Ts,是为了便于比较X与Xa之间的区别,从而方便观察频谱的混叠程度。
另外,程序中的时间步长dt的选择应该与抽样周期Ts保持一定的比例关系,建议Ts不应小于10dt,否则,计算得到的已抽样信号的频谱将出现错误。
四、实验报告要求
1、按要求完整书写你所编写的全部MATLAB程序