文档库 最新最全的文档下载
当前位置:文档库 › 信号与系统 MATLAB实验报告

信号与系统 MATLAB实验报告

信号与系统 MATLAB实验报告
信号与系统 MATLAB实验报告

《信号与系统》MATLAB 实验报告

院系: 专业:

年级: 班号:

姓名: 学号:

实验时间:

实验地点:

实验一 连续时间信号的表示及可视化

实验题目:

)()(t t f δ=;)()(t t f ε=;at e t f =)((分别取00<>a a 及);

)()(t R t f =;)()(t Sa t f ω=;)2()(ft Sin t f π=(分别画出不同周期个数的波形)。

解题分析:

以上各类连续函数,先运用t = t1: p:t2的命令定义时间范围向量,然后调用对应的函数,建立f 与t 的关系,最后调用plot ()函数绘制图像,并用axis ()函数限制其坐标范围。

实验程序:

(1))()(t t f δ=

t=-1:0.01:3 %设定时间变量t 的范围及步长

f=dirac(t) %调用冲激函数dirac ()

plot(t,f) %用plot 函数绘制连续函数

axis([-1,3,-0.5,1.5]) %用axis 函数规定横纵坐标的范围

(2))()(t t f ε=

t=-1:0.01:3 %设定时间变量t 的范围及步长

f=heaviside(t) %调用阶跃函数heaviside ()

plot(t,f) %用plot 函数绘制连续函数

title('f(t)=heaviside(t)') %用title 函数设置图形的名称

axis([-1,3,-0.5,1.5]) %用axis 函数规定横纵坐标的范围

(3)at e t f =)(

a=1时:

t=-5:0.01:5 %设定时间变量t 的范围及步长

f=exp(t) %调用指数函数exp ()

plot(t,f) %用plot 函数绘制连续函数

title('f=exp(t)') %用title 函数设置图形的名称

axis([-5,5,-1,100]) %用axis 函数规定横纵坐标的范围

a=2时:

t=-5:0.01:5

f=exp(2*t) %调用指数函数exp ()

plot(t,f)

title('f=exp(2*t)')

axis([-5,5,-1,100])

a=-2时:

t=-5:0.01:5

f=exp(-2*t)

plot(t,f)

title('f=exp(-2*t)')

axis([-5,5,-1,100])

(4))()(t R t f =

t=-5:0.01:5

f=rectpuls(t,2) %用rectpuls(t,a)表示门函数,默认以零点为中心,宽度为a

plot(t,f)

title('f=R(t)')

axis([-5 5 -0.5 1.5])

(5))()(t Sa t f ω=

ω=1时:

t=-20:0.01:20

f=sin(t)./t %调用正弦函数sin (),并用sin (t )./t 实现抽样函数

plot(t,f)

title('f(t)=Sa(t)')

axis([-20,-20,-0.5,1.1])

ω=5时:

t=-20:0.01:20

f=sin(5*t)./(5*t)

plot(t,f)

title('f(t)=Sa(5*t)')

axis([-20,-20,-0.5,1.1])

(6))2()(ft Sin t f π=

ω=1时:

t=-10:0.01:10

f=sin(t) %调用正弦函数sin ()

plot(t,f);

title('f=sin(t)')

axis([-10,10,-2,2])

ω=5时:

t=-10:0.01:10

f=sin(5*t)

plot(t,f);

title('f=sin(5*t)')

axis([-10,10,-2,2])

实验结果;

(1)

(2)

(3)

a=1时:

a=2时:

a=-2时:

(4)

(5)

ω=1时:

ω=5时:

(6)

ω=1时:

ω=5时:

实验心得体会:

(1)在 MATLAB中,是用连续信号在等时间间隔点的样值来近似地表示连续信号的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。在MATLAB 中t = t1: p: t2的命令定义时间范围向量,t1为信号起始时间,t2为终止时间,p为时间间隔。

(2)plot( )函数可用于连续函数的绘制。

(3)用axis()函数限制坐标范围,可使图像更加匀称美观。

改进想法:

本题中函数的表示方法都不只一种。如阶跃函数可以借助符号函数来实现可视化。其程序和结果如下:

t=-5:0.05:5

f=sign(t) %调用符号函数sign()

axis([-5,5,-1.1,1.1])

ff=1/2+1/2*f %运用阶跃函数与符号函数的关系,表示出阶跃函数ff plot(t,ff)

axis([-5,5,-0.1,1.1])

实验二 离散时间信号的表示及可视化

实验题目:

)()(n n f δ=;)()(n n f ε=;an e n f =)((分别取00<>a a 及);

)()(n R n f N =(分别取不同的N 值);)()(ωn Sa n f =;

)()(ωn Sin n f =(分别取不同的ω值);

解题分析:

以上各类离散函数,可仿照连续函数的可视化,先运用n =n1: p: n2的命令定义自变量的范围及步长,然后调用对应的函数,建立f 与t 的关系,最后调用stem ()函数绘制图像,并用axis ()函数限制其坐标范围。

实验程序:

(1))()(n n f δ=

n=-5:0.5:5 %设定时间变量n 的范围及步长

f=dirac(n)

stem(n,f) %调用stem ()绘制离散函数

title('f=dirac(t)')

axis([-5,5,-3,10]) %用axis 函数规定横纵坐标的范围

(2))()(n n f ε=

n=-5:0.5:5

f=heaviside(n)

stem(n,f)

title('f=Heaviside(t)')

axis([-5,5,-0.5,1.5])

(3)an e n f =)(

a=1时:

n=-5:0.5:5

f=exp(n)

stem(n,f)

title('f=exp(n)')

a=2时:

n=-5:0.5:5

f=exp(2*n)

stem(n,f)

title('f=exp(2*n)')

a=-2时:

n=-5:0.5:5

f=exp(-2*n)

stem(n,f)

title('f=exp(-2*n)')

(4))()(n R n f N =

n=-5:0.5:5

f=rectpuls(n,2)

stem(n,f)

title('f=R(n)')

axis([-5,5,-0.5,1.5])

(5))()(ωn Sa n f =

ω=1时:

n=-20:0.5:20

f=sin(n)./(n)

stem(n,f)

title('f=Sa(n)')

axis([-20,-20,-0.5,1.1])

ω=5时:

n=-20:0.5:20

f=sin(5*n)./(5*n)

stem(n,f)

title('f=Sa(5*n)')

axis([-20,-20,-1,5])

(6))()(ωn Sin n f =

ω=1时:

n=-5:0.5:5

f=sin(n)

stem(n,f)

title('f=sin(n)')

axis([-5,5,-2,2])

ω=5时:

n=-5:0.5:5

f=sin(5*n)

stem(n,f)

title('f=sin(5*n)')

axis([-5,5,-2,2])

实验结果;

(1)

(2)

(3)

a=1时:

a=2时:

a=-2时:

(4)

(5)

ω=1时:

ω=5时:

(6)

ω=1时:

ω=5时:

实验心得体会:

用plot ()函数可以绘制离散序列,但是与连续序列有所不同,需要在括号内加上'.'。但是plot ()画出来的函数图像不直观,显得很凌乱。

改进想法:

(1)对于离散函数,如果使用stem(n,f, '.')函数,绘图效果更好。如抽样函数的程序:

n=-20:0.5:20

f=sin(n)./(n)

stem(n,f,'.')

title('f=Sa(n)')

axis([-20,-20,-0.5,1.1])

绘图结果如下:

对比可知此法做出的图像更加清晰美观。

(2)MATLAB 可以自动地根据曲线数据的范围选择合适的坐标系,从而使得曲线尽可能清晰地显示出来,一般情况下不必选择坐标系。但是,如果对 MATLAB 自动产生的坐标轴不满意,可以利用 axis 命令对坐标轴进行调整。

实验三 系统的时域求解

实验题目:

1.设)10()()(),()9.0()(--==n u n u n x n u n h n ,求)(*)()(n h n x n y =,并画出)(n x 、)(n h 、)(n y 波形。

2.求因果线性移不变系统)2()()2(81.0)(--+-=n x n x n y n y 的单位

抽样响应)(n h ,并绘出)(ωj e H 的幅频及相频特性曲线。

解题分析:

1.用heaviside ()和exp()函数 表示出x(n) 和h(n),然后调用conv()函数实现x(n) 和h(n)的卷积y(n)。并且分别将三个函数图像绘出。

2.通过给矩阵a ,b 赋值,建立系统差分方程,然后调用impz()函数求系统的冲激响应,再用函数freqs(b,a)进行系统频率响应的分析。

实验程序:

(1)

n=-10:20 %设置变量范围,默认步长为1

f=heaviside(n)

x=heaviside(n)-heaviside(n-10) %阶跃函数直接相减

figure(1) %产生图像窗口1

stem(n,x) %绘制函数x

title('x(n)')

h=0.9.^n.*f %函数h的表达式

figure(2) %产生图像窗口2

stem(n,h) %绘制函数h

title('h(n)')

n1=-20:40

y=conv(h,x) %调用conv()函数求h和x的卷积figure(3) %产生图像窗口3

stem(y) %绘制函数y

title('y(n)=x(n)*h(n)')

(2)

a=[1 0 -0.81] %描述系统的差分方程的系数

b=[1 0 -1] %描述系统的差分方程的系数

figure(1)

h=impz(n,m,-10:10) %调用impz()函数求系统的冲激响应stem(h) %绘制函数h的离散序列

title('h(n)')

figure(2)

freqs(b,a) %对连续系统频率响应H(jw)进行分析的函数freqs()

实验结果;

(1)

(2)

实验心得体会:

(1)计算离散序列的卷积时,应考虑其结果的横坐标范围的改变。

(2)向量相乘时,注意用‘. ’。

(3)借助MATLAB的内部函数conv()可以很容易地完成两个信号的卷积运算,并且其完成的是两个多项式的乘法运算,在MATLAB中它们的系数构成一个行向量来表示。

(3)表示系统的方法是用系统函数分子和分母多项式系数行向量来表示。

改进想法:

(1)n=-10:20 %设置变量范围,默认步长为1 f=heaviside(n)

x=heaviside(n)-heaviside(n-10) %阶跃函数直接相减

figure(1) %产生图像窗口1

axis([-10,20,0,1])

stem(n,x) %绘制函数x

title('x(n)')

h=0.9.^n.*f %函数h的表达式

figure(2) %产生图像窗口2

stem(n,h) %绘制函数h

axis([-10,20,0,1])

title('h(n)')

n1=-20:40

y=conv(h,x) %调用conv函数求h和x的卷积figure(3) %产生图像窗口3

stem(y) %绘制函数y

axis([0,62,0,7])

title('y(n)=x(n)*h(n)')

运行结果:

实验四信号的DFT分析

实验题目:

计算余弦序列)()8

cos()(n R n n x N π=的DFT 。分别对N=10、16、22时计算DFT ,绘出)(k X 幅频特性曲线,分析是否有差别及产生差别的原因。

解题分析:

用矩阵代替门函数给变量n 赋值,并设定不同的N 值,然后调用fft ()函数实现函数的傅里叶变换,然后用subplot ()和stem ()函数绘图。 实验程序:

(1)N=10时:

N=10 %设定N 的值为10

n=[0:N-1] %用矩阵代替门函数给n 赋值

x=cos((pi/8).*n) %调用cos ()函数

y=fft(x) %调用fft ()函数求x 的傅里叶变换 subplot(2,1,1),stem(n,y) %绘制y 的离散图

title('DFT[cos((pi/8)*n]')

subplot(2,1,2),stem(n,abs(y)) %绘制y 的幅频特性曲线

title('X(k)')

(2)N=16时:

N=16 %设定N 的值为16

n=[0:N-1] %用矩阵代替门函数给n 赋值

x=cos((pi/8).*n) %调用cos ()函数

y=fft(x) %调用fft ()函数求x 的傅里叶变换 subplot(2,1,1),stem(n,y) %绘制y 的离散图

title('DFT[cos((pi/8)*n]')

subplot(2,1,2),stem(n,abs(y)) %绘制y 的幅频特性曲线

title('X(k)')

(3)N=22时:

N=22 %设定N 的值为22

n=[0:N-1] %用矩阵代替门函数给n 赋值

x=cos((pi/8).*n) %调用cos ()函数

y=fft(x) %调用fft ()函数求x 的傅里叶变换 subplot(2,1,1),stem(n,y) %绘制y 的离散图

title('DFT[cos((pi/8)*n]')

subplot(2,1,2),stem(n,abs(y)) %绘制y 的幅频特性曲线 title('X(k)')

实验结果;

(1)N=10时:

(2)N=16时:

(3)N=22时:

实验结果分析:

由图可知,不同的N 值所对应的DFT 序列和幅频响应不同,是因为N 代表DFT 的变换区间长度,当N 取不同的值时,函数所对应的离散傅里叶变换和幅频特性曲线也不同。

实验心得体会:

MATLAB 是计算机运算,无法实现无限时间信号和无限大数量的计算,故而周期信号只能取有限个谐波分量近似合成,即N 值有限,且N 值越大,仿真结果越接近。所以手工求取的傅里叶变换系数与MATLAB 求取存在差别。

实验五 系统时域解的快速卷积求法

实验题目:

用快速卷积法计算系统响应)(*)()(n h n x n y =,已知:

)()4.0sin()(15n R n n x =,)(9.0)(20n R n h n =。要求取不同的L 点数,并画出)(n x 、)(n h 、)(n y 波形,分析是否有差别及产生差别的原因。

解题分析:

根据离散序列卷积及傅里叶变换的性质,可先求出两函数x (n )和h (n )的L 点傅里叶变换,分别得到Xk 和Yk ,然后求Xk 和Yk 之积Hk 的傅里叶反变换,即得到了x (n )和h (n )的卷积y (n )。

实验程序:

L=10时:

n1=[0:14] %用矩阵代替门函数给n1赋值

x=sin(0.4.*n1) %写出x的表达式

n2=[0:19] %给n2赋值

y=0.9.^n2 %写出y的表达式

Xk=fft(x,10) %调用fft()函数求x的L(=10)点傅里叶变换Yk=fft(y,10) %求y的L点傅里叶变换

Hk=Xk.*Yk %写出Hk的表达式

h=ifft(Hk) %调用ifft()函数求Hk的傅里叶反变换subplot(3,1,1),stem(x) %绘制x的离散图

title('x(n)')

subplot(3,1,2),stem(y) %绘制y的离散图

title('y(n)')

subplot(3,1,3),stem(h) %绘制h的离散图

title('h(n)')

xlabel('L=10') %横坐标处做标注

(2)L=18时:

n1=[0:14]

x=sin(0.4.*n1)

n2=[0:19]

y=0.9.^n2

Xk=fft(x,18)

Yk=fft(y,18)

Hk=Xk.*Yk

h=ifft(Hk)

subplot(3,1,1),stem(x)

title('x(n)')

subplot(3,1,2),stem(y)

title('y(n)')

subplot(3,1,3),stem(h)

title('h(n)')

xlabel('L=18')

(3)L=28时:

n1=[0:14]

x=sin(0.4.*n1)

n2=[0:19]

y=0.9.^n2

Xk=fft(x,28)

Yk=fft(y,28)

Hk=Xk.*Yk

h=ifft(Hk)

subplot(3,1,1),stem(x) title('x(n)')

subplot(3,1,2),stem(y) title('y(n)')

subplot(3,1,3),stem(h) title('h(n)')

xlabel('L=28')

(4)L=35时:

n1=[0:14]

x=sin(0.4.*n1)

n2=[0:19]

y=0.9.^n2

Xk=fft(x,35)

Yk=fft(y,35)

Hk=Xk.*Yk

h=ifft(Hk)

subplot(3,1,1),stem(x) title('x(n)')

subplot(3,1,2),stem(y) title('y(n)')

subplot(3,1,3),stem(h)

title('h(n)')

xlabel('L=35')

实验结果;

(1)L=10时:

(2)L=18时:

(3)L=28时:

(4)L=35时:

实验结果分析:

由图可知,当L取不同的值时,对应的y(n)波形形状相似,但是有所不同,产生这种差别的原因是L代表傅里叶变换区间长度,当L取不同的值时,所对应的函数波形也有所差别。

实验心得体会:

(1)计算离散序列的卷积,虽然本实验的快速卷积方法看上去多次变换了变量的域,使过程变复杂了,但实际上减少了计算量,是一种快速而简单的方法。(2)用subplot绘图函数可将图形窗口分成若干等份,便于将多个图像进行分组或者比较。

改进想法:

当L取不同的值时,matlab自动生成的图像的横纵坐标范围不同,不便于相互比较,因此可以自己规定坐标轴范围,这样可以更加直观地看出各波形间的差别。

相关文档