信号与系统 MATLAB实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“matlab信号实验报告”。
院系:
年级:
姓名:
实验时间:
实验地点:
MATLAB实验报告
专业:
班号:
学号:
《信号与系统》
实验一 连续时间信号的表示及可视化
实验题目:
f(t)(t);f(t)(t);f(t)eat(分别取a0及a0); f(t)R(t);f(t)Sa(t);f(t)Sin(2ft)(分别画出不同周期个数的波形)。
解题分析:
以上各类连续函数,先运用t = t1: p:t2的命令定义时间范围向量,然后调用对应的函数,建立f与t的关系,最后调用plot()函数绘制图像,并用axis()函数限制其坐标范围。
实验程序:
(1)f(t)(t)
t=-1:0.01:3 %设定时间变量t的范围及步长 f=dirac(t)%调用冲激函数dirac()plot(t,f)%用plot函数绘制连续函数 axis([-1,3,-0.5,1.5])%用axis函数规定横纵坐标的范围(2)f(t)(t)
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)f(t)eat
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)f(t)R(t)
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)f(t)Sa(t)
ω=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])3
ω=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)f(t)Sin(2ft)
ω=1时: t=-10:0.01:10 f=sin(t)%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)
调用正弦函数sin()4
1.510.50-0.5-1-0.500.511.522.532)
f(t)=heaviside(t)1.510.50-0.5-1-0.500.511.522.533)((a=1时:
f=exp(t)***3020100-5-4-3-2-1012345a=2时:
f=exp(2*t)***3020100-5-4-3-2-1012345
a=-2时:
f=exp(-2*t)***3020100-5-4-3-2-1012345(4)
f=R(t)1.510.50-0.5-5-4-3-2-1012345
(5)ω=1时:
f(t)=Sa(t)10.80.60.40.20-0.2-0.4-20-15-10-505101520ω=5时:
f(t)=Sa(5*t)10.80.60.40.20-0.2-0.4-20-15-10-505101520(6)ω=1时:
f=sin(t)21.510.50-0.5-1-1.5-2-10-8-6-4-20246810
ω=5时:
f=sin(5*t)21.510.50-0.5-1-1.5-2-10-8-6-4-20246810
实验心得体会:(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])
f=heaviside(t)10.80.60.40.20-5-4-3-2-1012345
实验二 离散时间信号的表示及可视化
实验题目:
f(n)(n);f(n)(n);f(n)ean(分别取a0及a0);
f(n)RN(n)(分别取不同的N值);f(n)Sa(n); f(n)Sin(n)(分别取不同的值);
解题分析:
以上各类离散函数,可仿照连续函数的可视化,先运用n =n1: p: n2的命令定义自变量的范围及步长,然后调用对应的函数,建立f与t的关系,最后调用stem()函数绘制图像,并用axis()函数限制其坐标范围。
实验程序:
(1)f(n)(n)
n=-5:0.5:5 %设定时间变量n的范围及步长 f=dirac(n)stem(n,f)%调用stem()绘制离散函数 title('f=dirac(t)')axis([-5,5,-3,10])%用axis函数规定横纵坐标的范围(2)f(n)(n)
n=-5:0.5:5 f=heaviside(n)stem(n,f)title('f=Heaviside(t)')axis([-5,5,-0.5,1.5])(3)f(n)ean
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)f(n)RN(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)f(n)Sa(n)
ω=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)13
stem(n,f)title('f=Sa(5*n)')axis([-20,-20,-1,5])(6)f(n)Sin(n)
ω=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)
f=dirac(t)1086420-2-5-4-3-2-10123452)
f=Heaviside(t)1.510.50-0.5-5-4-3-2-10123453)((a=1时:
f=exp(n)150100500-5-4-3-2-1012345a=2时:
2.5x 104f=exp(2*n)21.510.50-5-4-3-2-1012345
a=-2时:
4f=exp(-2*n)2.5x 1021.510.50-5-4-3-2-1012345(4)
f=R(n)1.510.50-0.5-5-4-3-2-1012345
(5)ω=1时:
f=Sa(n)10.80.60.40.20-0.2-0.4-20-15-10-505101520ω=5时:
f=Sa(5*n)0.250.20.150.10.050-0.05-0.1-0.15-0.2-20-15-10-505101520(6)ω=1时:
f=sin(n)21.510.50-0.5-1-1.5-2-5-4-3-2-1012345
ω=5时:
f=sin(5*n)21.510.50-0.5-1-1.5-2-5-4-3-2-1012345
实验心得体会: 用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])绘图结果如下:
f=Sa(n)10.80.60.40.20-0.2-0.4-20-15-10-505101520
对比可知此法做出的图像更加清晰美观。
(2)MATLAB 可以自动地根据曲线数据的范围选择合适的坐标系,从而使得曲线尽可能清晰地显示出来,一般情况下不必选择坐标系。但是,如果对 MATLAB自动产生的坐标轴不满意,可以利用 axis 命令对坐标轴进行调整。
实验三 系统的时域求解
实验题目:
1.设h(n)(0.9)nu(n),x(n)u(n)u(n10),求y(n)x(n)*h(n),并画出x(n)、h(n)、y(n)波形。
y(n)0.81y(n2)x(n)x(n2)的单位
j2.求因果线性移不变系统抽样响应h(n),并绘出H(e)的幅频及相频特性曲线。
解题分析:
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)
x(n)10.90.80.70.60.50.40.30.20.10-10-505101520
h(n)0.90.80.70.60.50.40.30.20.10-10-505101520y(n)=x(n)*h(n)***05060702)
(h(n)1.210.80.60.40.20-0.20510152025
100.09udeti100.05agnM100.0110-210-1100101Frequency(rad/s)1)s0.5reeeg(d0e hasP-0.5-110-210-1100101Frequency(rad/s)
实验心得体会:
(1)计算离散序列的卷积时,应考虑其结果的横坐标范围的改变。(2)向量相乘时,注意用‘.’。
(3)借助MATLAB的内部函数conv()可以很容易地完成两个信号的卷积运算,并且其完成的是两个多项式的乘法运算,在MATLAB中它们的系数构成一个行向量来表示。
(3)表示系统的方法是用系统函数分子和分母多项式系数行向量来表示。
改进想法:
(1)n=-10:20 %f=heaviside(n)x=heaviside(n)-heaviside(n-10)%figure(1)%axis([-10,20,0,1])stem(n,x)%title('x(n)')h=0.9.^n.*f %figure(2)%stem(n,h)%axis([-10,20,0,1])title('h(n)')n1=-20:40 y=conv(h,x)%figure(3)%stem(y)%axis([0,62,0,7])title('y(n)=x(n)*h(n)')
运行结果:
设置变量范围,默认步长为1
阶跃函数直接相减 产生图像窗口1 绘制函数x 函数h的表达式 产生图像窗口2 绘制函数h 调用conv函数求h和x的卷积 产生图像窗口3 绘制函数y 26
x(n)10.90.80.70.60.50.40.30.20.10-10-505101520h(n)10.90.80.70.60.50.40.30.20.10-10-505101520
y(n)=x(n)*h(n)***405060
实验四 信号的DFT分析
实验题目:
计算余弦序列x(n)cos(8n)RN(n)的DFT。分别对N=10、16、22时计算DFT,绘出X(k)幅频特性曲线,分析是否有差别及产生差别的原因。
解题分析:
用矩阵代替门函数给变量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时:
DFT[cos((pi/8)*n]3210-10123456789X(k)64200123456789(2)N=16时:
DFT[cos((pi/8)*n]1050-5051015X(k)864200510153)N=22时:
DFT[cos((pi/8)*n]6420-20510152025X(k)***1(实验结果分析:
由图可知,不同的N值所对应的DFT序列和幅频响应不同,是因为N代表DFT的变换区间长度,当N取不同的值时,函数所对应的离散傅里叶变换和幅频特性曲线也不同。
实验心得体会: MATLAB是计算机运算,无法实现无限时间信号和无限大数量的计算,故而周期信号只能取有限个谐波分量近似合成,即N值有限,且N值越大,仿真结果越接近。所以手工求取的傅里叶变换系数与MATLAB求取存在差别。
实验五 系统时域解的快速卷积求法
实验题目:
用快速卷积法计算系统响应
y(n)x(n)*h(n),已知:
x(n)sin(0.4n)R15(n),h(n)0.9nR20(n)。要求取不同的L点数,并画出x(n)、h(n)、y(n)波形,分析是否有差别及产生差别的原因。
解题分析:
根据离散序列卷积及傅里叶变换的性质,可先求出两函数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)')34
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时:
x(n)10-1051015y(n)10.***1820h(n)42012345678910L=102)L=18时:
x(n)10-1051015y(n)10.***1820h(n)50-***8L=183)L=28时:
36((x(n)10-1051015y(n)10.***1820h(n)50-5051015202530L=284)L=35时:
x(n)10-1051015y(n)10.***1820h(n)50-***L=35
37(实验结果分析:
由图可知,当L取不同的值时,对应的y(n)波形形状相似,但是有所不同,产生这种差别的原因是L代表傅里叶变换区间长度,当L取不同的值时,所对应的函数波形也有所差别。
实验心得体会:(1)计算离散序列的卷积,虽然本实验的快速卷积方法看上去多次变换了变量的域,使过程变复杂了,但实际上减少了计算量,是一种快速而简单的方法。(2)用subplot绘图函数可将图形窗口分成若干等份,便于将多个图像进行分组或者比较。
改进想法:
当L取不同的值时,matlab自动生成的图像的横纵坐标范围不同,不便于相互比较,因此可以自己规定坐标轴范围,这样可以更加直观地看出各波形间的差别。
信号与系统仿真 实 验 报 告班级: 学号: 姓名: 学院:实验一一、实验者姓名:二、实验时间:三、实验地点:四、实验题目:5(s25s6)求三阶系统H(s)3的单位阶跃响应,并绘制响应波形图。s6s2......
信号与系统实验实验一常用信号的观察方波:正弦波:三角波:在观测中,虚拟示波器完全充当实际示波器的作用,在工作台上连接AD1为示波器的输入,输入方波、正弦波、三角波信号时,可在电......
长江大学电工电子实验中心实验报告野外获得的重力数据要作进一步处理和解释才能解决所提出的地质任务﹐主要分3个阶段﹕野外观测数据的处理﹐并绘制各种重力异常图﹔重力异常的分解(......
电 子 科 技 大 学实 验 报 告学生姓名: 学 号:指导教师: 一、实验室名称:信号与系统实验室二、实验项目名称:三、实验原理: 四、实验目的: 五、实验内容: 六、实验器材(设备、元器件......
刀豆文库小编为你整合推荐7篇MATLAB实验报告,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......