信号分析与处理实验报告基于MATLAB.docx
《信号分析与处理实验报告基于MATLAB.docx》由会员分享,可在线阅读,更多相关《信号分析与处理实验报告基于MATLAB.docx(26页珍藏版)》请在冰豆网上搜索。
信号分析与处理实验报告基于MATLAB
武汉工程大学
电气信息学院
专业班级
14通信3班
实验时间
12-16周周二上午
学生学号
1404200529
实验地点
4B315
学生姓名
赵晶
指导教师
许楠
实验项目
信号分析与处理实验(基于MATLAB)
实验类别
基础实验
实验学时
10学时
实验目的及要求
一、掌握连续信号的MATLAB表示方法及用MATLAB描绘二维图像
二、掌握用MATLAB对连续信号进行基本运算和时域变换的方法;
三、掌握两个连续时间信号卷积的计算方法和MATLAB编程技术。
四、掌握LTI系统的微分方程描述方法及其MATLAB编程的求解方法。
五、掌握周期函数的傅里叶级数计算方法和编程技术,掌握用MATLAB进行傅里叶正反变换的方法。
六、掌握系统频率响应特性的计算方法和特性曲线的绘制方法;掌握用MATLAB语言进行系统频响特性分析的方法
成绩评定表
类别
评分标准
分值
得分
合计
上机表现
按时出勤、遵守纪律
认真完成各项实验内容
30分
报告质量
程序代码规范、功能正确
填写内容完整、体现收获
70分
说明:
评阅教师:
日期:
年月日
实验内容
实验一:
连续时间信号的时域表示
一、实验内容
1、参考示例程序,绘制信号
的图形,t取-1到4,步长值设为0.01。
2、产生一个指数为
的复指数函数,绘出函数的实部、虚部、幅度和相位的波形,t取0到20,步长值设为0.1。
二、实验方法与步骤
1、绘制信号
的图形
程序代码如下:
clearall
t=-1:
0.01:
4;%信号时间样本点向量
f=exp(-2*t).*cos(3*pi*t).*(heaviside(t)-heaviside(t-3));%函数描述
plot(t,f)%命令绘制信号的时域波形
title('信号1')%添加标题
xlabel('t')%添加横坐标说明
ylabel('f')%添加纵坐标说明
axis([-1,4,-0.7,1.1])%对横纵坐标进行限定
gridon
2、绘制指数为
的复指数函数的实部、虚部、幅度和相位的波形
程序代码如下:
clearall
t=0:
0.1:
20;%信号时间样本点向量
z=(-0.1+(pi/4)*1i)*t;%函数描述
f=exp(z);%定义指数信号
fr=real(f);%描述函数实部
fi=imag(f);%描述函数虚部
fa=abs(f);%描述函数幅度
fg=angle(f);%描述函数相位
subplot(2,2,1)%将当前窗口分成2行2列个子窗口,并在第1个子窗口绘图
plot(t,fr)
title('实部')
xlabel('t')
axis([-0.5,20.5,-0.8,1.2])
gridon
subplot(2,2,2)%将当前窗口分成2行2列个子窗口,并在第2个子窗口绘图
plot(t,fi)
title('虚部')
xlabel('t')
axis([-0.5,20.5,-0.8,1])
gridon
subplot(2,2,3)%将当前窗口分成2行2列个子窗口,并在第3个子窗口绘图
plot(t,fa)
title('幅度')
xlabel('t')
axis([-0.5,20.5,0,1.1])
gridon
subplot(2,2,4)%将当前窗口分成2行2列个子窗口,并在第4个子窗口绘图
plot(t,fg)
title('相位')
xlabel('t')
axis([-0.5,20.5,-3.5,3.5])
gridon
三、实验数据与结果分析
1、
2、
四、思考:
1、为什么图二中t=0处曲线是间断的,如何使其成为连续的曲线?
因为axis函数对纵坐标的的上边界限定过小,使图形在边界处不能完整的显示。
实验内容
实验二:
连续时间信号的时域分析
一、实验内容
1、已知
,
,绘制x(t)和y(t)的图形,t取-3到5,步长值设为0.01。
2、根据符号函数和单位阶跃函数的关系,利用符号函数sign实现单位阶跃函数。
要求图形窗口的横坐标范围为-5~5,纵坐标范围为-1.5~1.5。
3、任意定义一个有限长时间信号y1(t),根据式2.1产生一个周期信号,绘制y1(t)和y(t)的图形。
二、实验方法与步骤
1、绘制x(t)和y(t)的图形
程序代码如下:
clear
t=-3:
0.01:
5;
x=exp(-0.5*t).*heaviside(t);%描述因果信号x(t)
y=exp(-0.5*1.5*(t+2)).*heaviside(1.5*(t+2));%描述因果信号x(1.5t+3)
subplot(2,1,1)
plot(t,x)
title('x(t)')
xlabel('t')
ylabel('x')
axis([-3,5,-0.1,1.1])
gridon
subplot(2,1,2)
plot(t,y)
title('y(t)')
xlabel('t')
ylabel('y')
axis([-3,5,-0.1,1.1])
gridon
2、利用符号函数sign实现单位阶跃函数
符号函数与单位阶跃函数的关系表达式为:
程序代码如下:
clear
t=-20:
0.01:
20;
x1=sign(t);
u=(x1+1)./2
plot(t,u)
title('u')
xlabel('t')
axis([-5,5,-0.5,1.5])
gridon
3、绘制y1(t)和周期信号y(t)的图形
利用for循环语句来实现周期信号
程序代码如下:
clear
t=-8:
0.01:
8;
y1=rectpuls(t)%定义有限长时间信号
y=0%赋初始值为0
fori=-6:
2:
6;%从-6开始以2的步长递增至6结束
y=y+rectpuls(t+i,1)%循环叠加
end%结束循环
subplot(2,1,1)
plot(t,y1)%绘制有限长时间信号y1(t)的时域波形
title('y1(t)')
xlabel('t')
axis([-2,2,-0.2,1.2])
gridon
subplot(2,1,2)
plot(t,y)%绘制周期信号y(t)的时域波形
title('y(t)')
xlabel('t')
axis([-7,7,-1,2])
gridon
三、实验数据与结果分析
1.
2.
3.
四、思考:
1、代数运算符号*和.*的区别是?
*是矩阵相乘,是矩阵A行元素与B的列元素相乘的和
.*是数组相乘,表示数组A和数组B中的对应元素相乘
实验内容
实验三连续时间信号的卷积
一、实验内容
1、已知两连续时间信号如下图所示,绘制信号f1(t)、f2(t)及卷积结果f(t)的波形;设时间变化步长dt分别取为0.5、0.1、0.01,当dt取多少时,程序的计算结果就是连续时间卷积的较好近似?
2、、计算信号
和
的卷积f(t),f1(t)、f2(t)的时间范围取为0~10,步长值取为0.1。
绘制三个信号的波形。
二、实验方法与步骤
1、绘制信号f1(t)、f2(t)及卷积结果f(t)的波形,当dt取0.01时程序的计算结果就是连续时间卷积的较好近似
程序代码如下:
clearall
closeall
clc
dt=0.01
t1=0:
dt:
2;
t2=-1:
dt:
1;
f1=0.5*t1;
f2=0.5*(t2+1);
y=dt*conv(f1,f2);%计算卷积
t0=t1
(1)+t2
(1);%计算卷积结果的非零样值的起点位置
t3=length(y);%计算卷积结果的非零样值的宽度
ty=t0:
dt:
(t0+(t3-1)*dt);%确定卷积结果的非零样值的时间向量
subplot(3,1,1)
plot(t1,f1)%绘制信号f1(t)的时域波形
title('f1')
xlabel('t1')
axis([-1.5,3,-0.2,1.1])
gridon
subplot(3,1,2)
plot(t2,f2)%绘制信号f2(t)的时域波形
title('f2')
xlabel('t2')
axis([-1.5,3,-0.2,1.1])
gridon
subplot(3,1,3)
plot(ty,y)%绘制两信号卷积结果y(t)的时域波形
title('y')
xlabel('ty')
axis([-1.5,3.2,-0.2,0.7])
gridon
2、计算信号
和
的卷积f(t)
程序代码如下:
clearall
closeall
clc
dt=0.1
t1=0:
dt:
10;
t2=0:
dt:
10;
f1=exp(-1*t1).*heaviside(t1);
f2=sin(t2).*heaviside(t2);
y=dt*conv(f1,f2);%计算卷积
t0=t1
(1)+t2
(1);%计算卷积结果的非零样值的起点位置
t3=length(y);%计算卷积结果的非零样值的宽度
ty=t0:
dt:
(t0+(t3-1)*dt);%确定卷积结果的非零样值的时间向量
subplot(3,1,1)
plot(t1,f1)%绘制信号f1(t)的时域波形
title('f1')
xlabel('t1')
axis([-0.2,10.2,-0.2,1])
gridon
subplot(3,1,2)
plot(t2,f2)%绘制信号f2(t)的时域波形
title('f2')
xlabel('t2')
axis([-0.2,10.2,-1.2,1.2])
gridon
subplot(3,1,3)
plot(ty,y)%绘制两信号卷积结果y(t)的时域波形
title('y')
xlabel('ty')
axis([-0.2,20.2,-1.2,1.2])
gridon
三、实验数据与结果分析
1.
2.
实验内容
实验四连续时间系统的时域分析
一、实验内容
已知描述某连续系统的微分方程为:
1、求出该系统在0~30秒范围内,以时间间隔0.1秒取样的单位冲激响应和单位阶跃响应的数值解,并绘制时域波形;
2、计算并绘制该系统在输入信号为
时的零状态响应。
二、实验方法与步骤
1、绘制该系统的单位冲激响应和单位阶跃响应的时域波形
程序代码如下:
clearall
closeall
clc
t=0:
0.1:
30;
a=[4,1,6];
b=[0,0,1];%描述系统的对应向量
subplot(2,1,1)
impulse(b,a);%绘出向量a和b定义的连续系统的单位冲激响应的时域波形
title('单位冲激响应')
xlabel('t')
ylabel('y')
axis([0,30,-0.15,0.2])
gridon
subplot(2,1,2)
step(b,a);%绘出向量a和b定义的连续系统的单位阶跃响应的时域波形
title('单位阶跃响应')
xlabel('t')
ylabel('y')
axis([0,30,0,0.3])
gridon
2、计算并绘制该系统在输入信号为
时的零状态响应
程序代码如下:
clearall
closeall
clc
t=0:
0.1:
30;
a=[4,1,6];
b=[0,0,1];
x=(exp(-2*t)-exp(-3*t)).*heaviside(t);
lsim(b,a,x,t);%由a和b表示的LTI系统在输入信号x作用下的零状态响应
title('零状态响应')
xlabel('t')
ylabel('y')
gridon
三、实验数据与结果分析
1.
2.
实验内容
实验五连续时间信号的频域分析
一、实验内容
1、如图5.4所示的奇谐周期方波信号,周期为T1=1,幅度为A=1,将该方波信号展开成三角形式Fourier级数并分别采用频域矩形窗和Hanning窗加权,绘制两种窗函数加权后的方波合成图像。
时间范围取为-2~2,步长值取为0.01。
2、将图5.5中的锯齿波展开为三角形式Fourier级数,按
(2)式求出Fourier级数的系数,并在频域分别采用矩形窗、Hanning窗和三角窗加权,观察其Gibbs效应及其消除情况。
时间范围取为-2~2,步长值取为0.01。
3、选做:
编程计算连续时间周期信号的三角形式傅里叶级数展开的系数
二、实验方法与步骤
1、将方波信号展开成三角形式Fourier级数并分别采用频域矩形窗和Hanning窗加权
方波展开的三角式傅立叶级数为:
采用频域矩形窗加权,则展开式变为:
采用Hanning窗加权,则展开式变为:
程序代码如下:
clearall
closeall
clc
t1=-2:
0.01:
2;
t2=-2:
0.01:
2;
K=30
ft1=0;
ft2=0;
fork=1:
2:
K%利用循环语句实现级数的表达
ft1=ft1+((4/pi)/k).*sin(2*pi*k*t1);
end
fork=1:
2:
K
ft2=ft2+((4/pi)/k).*sin(2*pi*k*t2).*(0.5+0.5*cos((2*pi*k)/30));
end
subplot(2,1,1)
plot(t1,ft1)
title('窗函数')
xlabel('t1')
ylabel('f')
gridon
subplot(2,1,2)
plot(t2,ft2)
title('Hanning')
xlabel('t2')
ylabel('f')
gridon
2、将锯齿波展开为三角形式Fourier级数,求出Fourier级数的系数,并在频域分别采用矩形窗、Hanning窗和三角窗加权,观察其Gibbs效应及其消除情况。
锯齿波的三角式傅立叶级数为:
采用矩形窗加权,则展开式变为:
采用Hanning窗加权,则展开式变为:
采用三角窗加权,则展开式变为:
程序代码如下:
clearall
closeall
clc
t1=-2:
0.01:
2;
t2=-2:
0.01:
2;
t3=-2:
0.01:
2;
K=30
ft1=0;
ft2=0;
ft3=0;
fork=1:
1:
K%用循环语句实现级数的表达
ft1=ft1+0.5-((1/pi)/k).*sin(2*pi*k*t1);
end
fork=1:
1:
K
ft2=ft2+0.5-((1/pi)/k).*sin(2*pi*k*t2).*(0.5+0.5*cos((2*pi*k)/30));
end
fork=1:
1:
K
ft3=ft3+0.5-((1/pi)/k).*sin(2*pi*k*t3).*(1-(2*k/30));
end
subplot(3,1,1)
plot(t1,ft1)
title('矩形窗')
xlabel('t1')
gridon
subplot(3,1,2)
plot(t2,ft2)
title('Hanning窗')
xlabel('t2')
axis([-2,2,14.3,15.6])
gridon
subplot(3,1,3)
plot(t3,ft3)
title('三角窗')
xlabel('t3')
gridon
3、编程计算连续时间周期信号的三角形式傅里叶级数展开的系数
程序代码如下:
clearall
closeall
clc
T=1;
w=2*pi/T;
symst%定义符号
f=t;%定义被积函数
a0=2/T*int(f,t,0,T);%求函数f对t从0到T的定积分
a0=simplify(a0)%得出结果
symsk
fa=t*cos(k*w*t);
fb=t*sin(k*w*t);
ak=2/T*int(fa,t,0,T);%求函数fa对t从0到T的定积分
bk=2/T*int(fb,t,0,T);%求函数fb对t从0到T的定积分
ak=simplify(ak)
bk=simplify(bk)
三、实验数据与结果分析
1.
2.
3.
实验内容
实验六连续时间系统的频域分析
一、实验内容
1、已知系统的频率响应函数为:
(1)用MATLAB画出该系统的幅频特性和相频特性;
(2)根据绘制的幅频特性曲线,分析系统具有什么滤波特性(低通、高通、带通、全通还是带阻)?
2、已知描述某连续系统的微分方程为:
(1)计算并绘制该系统的幅频特性、相频特性、频率响应的实部和频率响应的虚部曲线图;
(2)根据绘制的幅频特性曲线,分析系统具有什么滤波特性(低通、高通、带通、全通还是带阻)?
三、实验方法与步骤
1、画出该系统的幅频特性和相频特性
clearall
closeall
clc
w=-5:
0.01:
5;%定义频率变量
H=1./((1j*w).^3+2*(1j*w).^2+(2*1j*w)+1);%频域响应函数的描述
Mag=abs(H)%求系统的幅度频率响应
Phi=angle(H)%求系统的相位频率响应
subplot(2,1,1)
plot(w,Mag)
title('幅频特性')
xlabel('w')
xlabel('Mag')
axis([-5.2,5.2,-0.1,1.1])
gridon
subplot(2,1,2)
plot(w,Phi)
title('相频特性')
xlabel('w')
xlabel('Phi')
axis([-5.2,5.2,-4,4])
gridon
2、绘制该系统的幅频特性、相频特性、频率响应的实部和频率响应的虚部曲线图
clearall
closeall
clc
a=[1,1,25];
b=[0,2,0];
w=-10:
0.001:
10;%定义频率变量
H=freqs(b,a,w);%在频率范围w内计算系统的频率响应特性
Mag=abs(H)%求系统的幅度频率响应
Phi=angle(H)%求系统的相位频率响应
ReH=real(H)%求H的实部
ImH=imag(H)%求H的虚部
subplot(2,2,1)
plot(w,Mag)
title('幅频特性')
xlabel('w')
ylabel('Mag')
axis([-10.1,10.1,-0.1,2.1])
gridon
subplot(2,2,2)
plot(w,Phi)
title('相频特性')
xlabel('w')
ylabel('Phi')
axis([-10.1,10.1,-2,2])
gridon
subplot(2,2,3)
plot(w,ReH)
title('实部')
xlabel('w')
ylabel('ReH')
axis([-10.1,10.1,-0.1,2.1])
gridon
subplot(2,2,4)
plot(w,ImH)
title('虚部')
xlabel('w')
ylabel('ImH')
axis([-10.1,10.1,-1.1,1.1])
gridon
三、实验数据与结果分析
1.
根据绘制的幅频特性曲线,系统具有低通滤波特性
2.
根据绘制的幅频特性曲线,系统具有带通滤波特性