江苏科技大学信号实验报告

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

实验一连续信号的时域分析
一、实验目的
1.熟悉lsim、heaviside 等函数的使用
2.熟悉信号的时移、尺度变换、反转、相加、相乘、卷积等
计算
3.熟悉impulse、step 函数的使用
二、实验内容
1.利用Matlab的Symbolic Math Toolbox中单位阶跃函数heaviside 画
出单位阶跃信号。

(1)实验代码:
clc;clear;
ut=sym('Heaviside(t)');
ezplot(ut,[-2,10])
(2)实验结果:
(3)实验原理分析:
在MATLAB 的Symbolic Math Toolbox 中,有专门用于表示单位阶跃信号的函数,
即Heaviside(t)函数,用它即可方便地表示出单位阶跃信号以及延时的单位阶跃信号,
并且可以方便地参加有关的各种运算过程。

如果一个信号或函数可以用符号表达式来表示,那么我们就可以用前面介绍的符号函数专用绘图命令ezplot()等函数来绘出信号的波形。

2.已知信号f(t) = (t+1)[U(t+1) – U(t)] + [U(t) – U(t+1)],试画出f(-t/3+1)
的波形。

(1)实验代码:
clc;clear;
syms t;
y1=sym(t+1);
y2=sym('Heaviside(t+1)-Heaviside(t)');
y3=sym('Heaviside(t)-Heaviside(t+1)');
f=sym(y1*y2+y3);
subs(f,t,t+1);
subs(f,t,(1/3)*t);
subs(f,t,-t);
ezplot(f,[-4,6])
(2)实验结果:
(3)实验原理分析:
信号的时移可用数学表达式来描述,在MATLAB 中,时移运算与数学上习惯表达方法完全相同。

若已知信号f(t),应用Matlab 可进行下列运算
时移f(t-t0) 命令subs(f,t,t-t0)
尺度变换f(at) 命令subs(f,t,at)
反转f(-t) subs(f,t,-t)
相加f(t)= f1(t)+ f2(t) Symadd(f1,f2) f1(t)+ f2(t)
相乘f(t)= f1(t)×f2(t) Symmul(f1,f2) f1(t)*f2(t)
卷积f(t)= f1(t)*f2(t) conv (f1,f2)
此题调用subs( )函数对ft进行变换,最后用ezplot( )函数绘图。

3.若输入信号f(t) = cos(t)U(t),试求以下系统的零状态响应:
5 y ''(t ) + 4 y '(t ) + 8 y (t ) =f ''(t ) +f (t)
(1)实验代码:
clear;clc;
a=[5 4 8];
b=[1 0 1];
t=0:0.1:5;
f=cos(t).*Heaviside(t);
impulse(b,a,10)
(2)实验结果:
(3)实验原理分析:
对于LTI 连续系统,求解系统的冲激响应h(t)和阶跃响应g(t)对我们进行连续系统的分析具有非常重要的意义。

MATLAB 为用户提供了专门用于求连续系统冲激响应和阶跃响应并绘制其时域波形的函数impulse()和step()。

在调用impulse()和step()函数时,我
们需要用向量来对连续系统进行分析。

设描述连续系统的微分方程为:
则我们可用向量a 和 b 来表示该系统,即:
注意,向量a 和 b 的元素一定要以微分方程中时间求导的降幂次序来排列,且缺项要用0 来补齐。

关于impluse函数:函数impulse()将绘出由向量a 和 b 表示的连续系统在指定时间范围内的冲激响应h(t)的时域波形图,并能求出指定时间范围内冲激响应的数值解。

Impulse( )函数有如下几种调用格式:
(1)impulse(b,a):该调用格式以默认方式绘出向量a 和 b 定义的连续系统的冲激
响应的时域波形。

(2)impulse(b,a,t):绘出系统在0~t 时间范围内冲激响应的时域波形。

对上例,
若运行命令impulse(b,a,10),则绘出系统在0~10 秒范围内冲激响应的时域波形。

(3)impulse(b,a,t1:p:t2):绘出在t1~t2 时间范围内,且以时间间隔p 均匀取样的
冲激响应波形。

此题采用的是第二种调用形式。

实验二连续信号的频域分析
一、实验目的
1.熟悉门函数的傅氏变换
2.熟悉单边指数信号的傅氏变换
二、实验内容
1.求门函数g2(t) = U(t+1)-U(t-1)的傅氏变换
(1)实验代码:
clc;clear;
syms t;
syms w;
g=sym('Heaviside(t+1)-Heaviside(t-1)');
gw=fourier(g)
(2)实验结果:
(3)实验原理分析:
傅里叶变换是信号分析的最重要的内容之一。

从已知信号f(t) 求出相应的频谱函数
F(jw)的数学表示为:
f(t) 的傅里叶变换存在的充分条件是f(t) 在无限区间内绝对可积,即f(t)满足下式:
但上式并非傅里叶变换存在的必要条件。

在引入广义函数概念之后,使一些不满足绝对
可积条件的函数也能进行傅里叶变换。

傅里叶反变换的定义为:
在MATLAB 语言中有专门对信号进行正反傅里叶变换的语句,使得傅里叶变换很容易在MATLAB 中实现。

在MATLAB 中实现傅里叶变换的方法有两种,一种是利用MATLAB 中的Symbolic MathToolbox 提供的专用函数直接求解函数的傅里叶变换和傅里叶反变换,另一种是傅里叶变换的数值计算实现法。

此题使用的是fourier( )函数。

2.求单边指数信号f(t) = e-2t U(t)的傅氏变换
(1)实验代码:
clc;clear;
syms t;
syms w;
f=sym('exp((-2)*t)*Heaviside(t)');
fw=fourier(f)
(2)实验结果:
(3)实验原理分析:
Fourier( )函数的调用:F=fourier(f) 是符号函数f 的Fourier 变换,默认返回是关于ω的函数。

如果f=f(ω),则fourier 函数返回关于t 的函数。

三、思考题
1.已知信号f(t) = cos(t)U(t)的拉普拉斯变换F(s) = s/(s2+1),
并绘制曲线图。

答:
clc;
clear;
x1=-0.4:0.01:0.4;
y1=-0.4:0.01:0.4;
[x,y]=meshgrid(x1,y1);
s=x+i*y;
fs=abs(s./(s^2+1));
mesh(x,y,fs);
surf(x,y,fs);
title(' f(t) = cos(t)U(t)信号拉氏变换曲面图');
colormap(hsv);
axis([-0.4,0.4,-0.4,0.4,0,0.5]);
实验三离散信号的时域分析
一、实验目的
1.熟悉离散信号及其反转、平移
2.熟悉离散信号的单位值响应和阶跃响应
二、实验内容
1.已知信号f(n) = { 0 1 2 3 3 3 3 0 },试画出f(-n+2)的波形。

(1)实验代码:
k=-3:4;
f=[0,1,2,3,3,3,3,0];
stem(-k+2,f,'fill')
(2)实验结果:
(3)实验原理分析:
(a)离散时间信号:一般来说,离散时间信号用f(k)表示,其中变量k为整数,代表离散的采样时间点,f(k)可表示为:f(k)={…f(-2),f(-1),f(0),f(1),f(2)…}。

在用MATLAB绘制离散时间信号波形时,要使用专门绘制离散数据的stem命令,而不用plot 命令。

(b)序列的平移
序列的平移可以看作是将序列的时间序号向量平移,而对应原时间序号的序列样值不变。

要将序列左移 k0 个单位时,则将时间序号向量都减小 k0 个单位;若要右移 k0 个单位时,则将时间序号向量都增大 k0 个单位。

2.某离散系统的差分方程为6y(n) – 5y(n-1) – y(n-2) = f(n),初始条件为y(0) =
0,y(1) = 1,激励f(n) = cos(n*pi/2)U(n),
求其单位样值响应、零状态响应和全响应。

(1)实验代码:
a=[6 -5 -1];
b=[1];
h=impz(b,a) ;
subplot(2,2,1);
i=stem(h);
set(i,'MarkerFaceColor','blue')
n=-5:0.1:10;
f=cos(n*pi/2).*heaviside(n);
y=filter(b,a,f);
subplot(2,2,3);
stem(n,y,'fill')
n=0:0.1:10;
f=cos(n*pi/2).*heaviside(n);
y=[6,-30];
xic=filtic(b,a,y);
y1=filter(b,a,f,xic);
subplot(2,2,4);
stem(n,y1,'fill')
(2)实验结果:
0510
(3)实验原理:
(a)离散时间系统的时域响应
(1) 求解单位脉冲响应函数 impz():
功能:求离散系统的单位冲激响应。

格式 1:impz(b,a) 该调用格式以默认方式绘出向量 a 和 b 定义的离散系统的单
位响应的离散时间波形。

格式 2:impz(b,a,n) 该调用格式将绘出由向量 a 和 b 定义的离散系统在 0~n(n 必须为整数)离散时间范围内单位响应 h(k)的时域波形。

N—输出序列的取值范围;
h—系统的单位响应;
b,a—分别是差分方程右端和左端变量的系数。

格式 3:impz(b,a,n1:n2) 该调用格式将绘出由向量 a 和 b 定义的离散系统在
n1~n2(n1、n2 必须为整数,且 n1<n2)离散时间范围内单位响应的时域波形。

格式 4:y=impz(b,a,n1:n2) 该调用格式并不绘出系统单位响应的时域波形,而是求出向量 a 和 b 定义的离散系统在 n1~n2 离散时间范围内的系统单位响应的数值解。

(2)求离散系统响应的专用函数 filter()
实验四离散信号的z域分析
一、实验目的
1.熟悉系统函数的零极图
2.熟悉系统函数的反变换
二、实验内容
1.某离散系统的系统函数为H(z) = (2z3+z)/(z4+z3+1),求其零点和极点。

(1)实验代码:
b=[2 0 1];
a=[1 1 0 0 1];
[z,p,k] = tf2zp(b,a)
(2)实验结果:
(3)实验原理:
(一)离散系统的频率特性
系统函数的零极点图的绘制,调用方式为:zplane(b,a)
其中,b,a 分别为系统函数分子、分母多项式的系数向量。

作用:作出零极点图图中零点和极点分别用“○”,“×”表示。

在 MATLAB 中,可以借助 tf2zp 来直接得到系统函数的零点和极点的值。

2.已知离散系统的系统函数为H(z) =
(1-0.5z-1)/(1+3z-1/4+z-2/8),求其反变换。

(1)实验代码:
syms k z
Fz=(1-0.5/z)/(1+3*z^-1/4+z^-2/8);
fk=iztrans(Fz,k)
(2)实验结果:
(3)实验原理:
MATLAB 语言中有专门对信号进行正反 Z 变换的函数 ztrans( ) 和 itrans( )。


调用格式分别如下:
F=ztrans( f ) 对 f(n)进行 Z 变换,其结果为 F(z)
F=ztrans(f,v) 对 f(n)进行 Z 变换,其结果为 F(v)
F=ztrans(f,u,v) 对 f(u)进行 Z 变换,其结果为 F(v)
f=itrans ( F ) 对 F(z)进行 Z 反变换,其结果为 f(n)
f=itrans(F,u) 对 F(z)进行 Z 反变换,其结果为 f(u)
f=itrans(F,v,u ) 对 F(v)进行 Z 反变换,其结果为 f(u)
注意:在调用函数 ztran( )及 iztran( )之前,要用 syms 命令对所有需要用到的变量注意:在调用函数 ztran( )及 iztran( )之前,要用 syms 命令对所有需要用到的变量(如 t,u,v,w)等进行说明,即要将这些变量说明成符号变量。

相关文档
最新文档