信号与系统实验报告
时间:2025-05-17
时间:2025-05-17
这是一份信号与系统的实验报告
信号与系统实验报告
一.实验目的
1. 通过实验熟悉MATLAB仿真软件的使用方法和编程技术;
2. 掌握用MATLAB对常用信号进行时域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征;
3. 通过绘制信号运算结果的波形,了解这些信号运算对信号所起的作用。
二.实验设备
1. 计算机
2. MATLAB R2007a仿真软件
三.实验内容及结果
1.常用连续信号的MATLAB实现(时域分析)
a. 题目:正弦信号sin(2pit+pi/3)的MATLAB实现。 源程序代码:A=1;w=5*pi;
phi=pi/3; t=0:0.001:8; ft=A*sin(w*t+phi); plot(t,ft); title('正弦信号');
grid on;
程序运行结果:
正弦信号
10.8
0.60.40.20-0.2-0.4-0.6-0.8-10
1
2
3
4
5
6
7
8
这是一份信号与系统的实验报告
b.题目:利用MATLAB 求出当输入信号为f(t)=sin(t)时的零状态响应波形。
源程序代码: clear all;
b=[1 3 4];a=[1 3 0 5]; sys=tf(b,a); t=0:0.1:10; x=cos(t); y=lsim(sys,x,t); plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('零状态响应');
程序运行结果:
零状态响应
10
5
y(t)
-5
-10
-15
-20
01234
5时间(t)
678910
2.连续信号的傅里叶变换
a.题目:已知信号f(t)=G4(t),利用MATLAB实现其傅里叶变换。 源程序代码: clear all;
R=0.01;t=-3:R:3;
f=stepfun(t,-1)-stepfun(t,1); w1=2*pi*5;
N=500;k=0:N;w=k*w1/N;
这是一份信号与系统的实验报告
F=f*exp(-j*t'*w)*R; F=real(F);
w=[-fliplr(w),w(2:501)]; F=[fliplr(F),F(2:501)]; subplot(211);plot(t,f);
xlabel('时间(t)');ylabel('f(t)'); title('门函数');
subplot(212);plot(w,F); xlabel('w');ylabel('F(w)'); title('f(t)的傅里叶变换F(w)');
程序运行结果:
门函数
1
f(t)
0.5
0-3
-2-1
01时间(t)
f(t)的傅里叶变换F(w)
23
21
F(w)
0-1-40
-30-20-10
0w
10203040
b.题目:利用MATLAB绘出该系统的幅频响应|H(jw)|和相频响应。 源程序代码: w=linspace(0,5,200);
b=[3];a=[1 2 3 4]; H=freqs(b,a,w);
subplot(2,1,1);plot(w,abs(H));
set(gca,'xtick',[0 1 2 3 4 5]);set(gca,'ytick',[0 0.4 0.707 1]);
title('幅值谱|H(jw)|');
xlabel('\omega(rad/s)');ylabel('幅值');grid on;
subplot(2,1,2);plot(w,angle(H)); set(gca,'xtick',[0 1 2 3 4 5]);
这是一份信号与系统的实验报告
xlabel('\omega(rad/s)');ylabel('相位');grid on;
程序运行结果:
幅值谱|H( )|
幅值
10.707
0.40
012345
(rad/s)
42
相位
0-2-40
1
2
3
4
5
(rad/s)
3. 常用离散信号的MATLAB表示
a.题目:已知指数序列f(k)=2e(-0.8t),利用MATLAB绘出其波形。 源程序代码: t=-1:15;
a=-0.7; A=3; f=A*a.^t;
stem(t,f,'filled'); title('指数序列'); xlabel('时间(t)');
ylabel('f(t)');
程序运行结果:
这是一份信号与系统的实验报告
指数序列
32
10
f(t)
-1-2-3-4-5-2
024
68时间(t)
10121416
b.题目:已知两个离散序列
f1(k)={-3,-2,-1,0,1,2,3},f2(k)={-2,-1,0,1,2},用MATLAB绘出f(k)=f1(k)+f2(k)的波形。
源程序代码: a1=[-3,-2,-1,0,1,2,3];
k1=-3:3;
a2=[-2,-1,0,1,2]; k2=-2:2;
k=min([k1:k2]):max([k1,k2]); f1=zeros(1,length(k)); f2=zeros(1,length(k));
f1(find((k>=min(k1))&(k<=max(k1))==1))=a1; f2(find((k>=min(k2))&(k<=max(k2))==1))=a2; f=f1-f2;
stem(k,f,'filled');
程序运行结果:
这是一份信号与系统的实验报告
4.MAT LAB对离散信号与系统的频域分别系和z域分析
a.题目:画出系统的幅值频和相位频。 源程序代码: w=-4*pi:8*pi/511:4*pi;
b=[1 3 1];a=[1 2.4 -0.8]; h=freqz(b,a,w);
subplot(2,1,1);plot(w/pi,abs(h));grid title('幅值谱|H(e^{j\omega})|');
xlabel('\omega/\pi');ylabel('幅值');
subplot(2,1,2);plot(w/pi,angle(h));grid title('相位谱[H(e^{j\omega})]'); xlabel('\omega/\pi');ylabel('相位')
程序运行结果:
这是一份信号与系统的实验报告
幅值谱|H(ej )|
21.5
幅值
10.50-4
-3
-2
-1
0 / 相位谱[H(ej )]
10.5
1
2
3
4
相位
0-0.5-1-4
-3
-2
-1
0 /
1
2
3
4
b.源程序代码: A=[0.6 0.2;0.5 0.4];
B=[1;0]; x0=[-0.5;1]; n=[10];
f=[0 0.5*ones(1,n-1)]; x(:,1)=x0; for i=1:n
x(:,i+1)=A*x(:,i)+B*f(i); end
subplot(2,1,1); stem([0:n],x(1,:)); subplot(2,1,2); stem([0:n],x(2,:));
程序运行结果:
这是一份信号与系统的实验报告
5.创新:
a.题目:求sintd的傅里叶变换。 源程序代码:
syms t f;
x=sin(t)*sym('Heaviside(t)'); F=fourier(x); subplot(211); ezplot(x); subplot(212); ezplot(F);
程序运行结果:
这是一份信号与系统的实验报告
sin(t) heaviside(t)
10.5
0-0.5-10
1
2
3
4
5
6
t
1/2 i dirac(w+1)-1/2 i dirac(w-1)+1/(w+1)/(-w+1)
21
0-1-2
-5
-4
-3
-2
-1
0w
1
2
3
4
5
b.题目:试用MATLAB计算如下所示序列f1(k)与f2(k)的卷积和f(k)。
k 1 1
2k 0