信号与系统实验教程文本破解版.docx
《信号与系统实验教程文本破解版.docx》由会员分享,可在线阅读,更多相关《信号与系统实验教程文本破解版.docx(50页珍藏版)》请在冰豆网上搜索。
![信号与系统实验教程文本破解版.docx](https://file1.bdocx.com/fileroot1/2023-2/17/2938506e-d807-4852-8c07-5947c9e4f8b9/2938506e-d807-4852-8c07-5947c9e4f8b91.gif)
信号与系统实验教程文本破解版
信号与系统实验教程
(2010 年修订版)
《信号与系统》课程组 编
武汉大学电子信息学院
2010 年4 月
2
目录
实验一 信号的表示与实现 ........................................... 1
实验二 信号的时域基本运算 ......................................... 7
实验三 信号的卷积运算 ............................................ 15
实验四 周期信号的合成与分解 ...................................... 21
实验五 二阶状态轨迹的显示 ........................................ 28
实验六 信号的抽样与内插 .......................................... 33
实验七 滤波器的设计 .............................................. 38
实验八 Wav 信号的波形分析与合成 ................................... 49
实验九 电话拨号音的合成与识别 .................................... 58
实验十 CDMA 前向数据链路仿真 ...................................... 66
附录一 MATLAB 基础 ................................................ 68
附录二 学生实验报告模板 .......................................... 87
(t?
[〓〓〓V?
PZ1k!
?
[〓〓〓NlPZ2k!
?
[〓〓〓QmPZ2k!
0
[〓〓〓Qk[〓〓〓N][〓〓〓SA?
N'N?
PZ3k!
0
Qq8k!
0)
21
实验四 周期信号的合成与分解
一、实验目的
1.在理论学习的基础上,通过实验深刻领会周期信号傅里叶级数分解的物理意
义。
2.理解实际应用中通常采用有限项级数来逼近无限项级数,此时方均误差随项
数的增加而减小。
3.观察并初步了解Gibbs 现象。
4.深入理解周期信号的频谱特点,比较不同周期信号频谱的差异。
二、实验原理
满足Dirichlet 条件的周期信号f(t)可以分解成三角函数形式的傅里叶级
数,表达式为:
∑
∞=
++=
++++++=
1
110
1111110
)]sin()cos([
)sin()cos()sin()cos()(
n
nn
nn
tnbtnaa
tnbtnatbtaatf
ωω
ωωωω LL
式中n 为正整数;角频率 1ω由周期T1决定:
1
1
T2π
ω = 。
该式表明:
任何满足
Dirichlet 条件的周期信号都可以分解成直流分量及许多正弦、余弦分量。
这些
正弦、余弦分量的频率必定是基频
1
1
T1
=f 的整数倍。
通常把频率为 1f 的分量称为
基波,频率为 1nf 的分量成为 n 次谐波。
周期信号的频谱只会出现在
LL ,,,2,,0 111 ωωω n 等离散的频率点上,这种频谱称为离散谱,是周期信号频谱的
主要特点。
f(t)波形变化越剧烈,所包含的高频分量的比重就越大;变化越平缓,
所包含的低频分量的比重就越大。
一般来说,将周期信号分解得到的三角函数形式的傅里叶级数的项数是无限
的。
也就是说,通常只有无穷项的傅里叶级数才能与原函数精确相等。
但在实际
应用中,显然无法取至无穷多项,而只能采用有限项级数来逼近无穷项级数。
而
且,所取项数越多,有限项级数就越逼近原函数,原函数与有限项级数间的方均
误差就越小,而且低次谐波分量的系数不会因为所取项数的增加而变化。
当选取
22
的傅里叶有限级数的项数越多,所合成的波形的峰起就越靠近f(t)的不连续点。
当所取得项数N 很大时,该峰起值趋于一个常数,约等于总跳变值的9%,这种
现象称为Gibbs 现象。
三、需要掌握的MATLAB 函数
结果的显示会用到plot 和pause 函数,请参考MATLAB 帮助。
四、实验内容
1. 周期对称方波信号的合成
图4-1 奇对称的周期方波信号
图示方波既是一个奇对称信号,又是一个奇谐信号。
根据函数的对称性与傅
里叶系数的关系可知,它可以用无穷个奇次谐波分量的傅里叶级数来表示:
∑
∞= +
〓+=
0
0
12
1
])12(2sin[
2
)(
k k
tfk
E
tf π
π
选取奇对称周期方波的周期 sT 02.0= ,幅度 6=E ,请采用有限项级数替代
无限项级数来逼近该函数。
分别取前1、2、5 和100 项有限级数来近似,编写程
序并把结果显示在一幅图中,观察它们逼近方波的过程。
MATLAB 程序如下:
%奇对称方波合成
t=0:
0.001:
0.1;
sishu=12/pi;
E/2
-T/2 T/2
-E/2 O
23
y=sishu*sin(100*pi*t);
subplot(221)
plot(t,y);
axis([0,0.1,-4,4]);
xlabel('time');
ylabel('前1 项有限级数');
y=sishu*(sin(100*pi*t)+sin(3*100*pi*t)/3);
subplot(222);
plot(t,y);
axis([0,0.1,-4,4]);
xlabel('time');
ylabel('前2 项有限级数');
y=sishu*(sin(100*pi*t)+sin(3*100*pi*t)/3+sin(5*100*pi*t)/5+sin(7*
100*pi*t)/7+sin(9*100*pi*t)/9);
subplot(223)
plot(t,y);
axis([0,0.1,-4,4]);
xlabel('time');
ylabel('前5 项有限级数');
t=0:
0.001:
0.1;
y=0;
for i=1:
100
y=y+sishu*(sin((2*i-1)*100*pi*t)/(2*i-1));
end
subplot(224);
plot(t,y);
axis([0,0.1,-4,4]);
xlabel('time');
ylabel('前100 项有限级数');
24
显示结果如图4-2 所示。
图4-2 奇对称方波信号的合成
2.观察Gibbs 现象
分别取前10、20、30 和40 项有限级数来逼近奇对称方波,观察Gibbs 现
象。
MATLAB 程序如下:
%观察Gibbs 现象
t=0:
0.001:
0.04;
sishu=12/pi;
y=0;
for i=1:
5
y=y+sishu*(sin((2*i-1)*100*pi*t)/(2*i-1));
end
subplot(221)
plot(t,y);
25
axis([0,0.04,-4,4]);
xlabel('time');
ylabel('前5 项有限级数');
y=0;
for i=1:
6
y=y+sishu*(sin((2*i-1)*100*pi*t)/(2*i-1));
end
subplot(222);
plot(t,y);
axis([0,0.04,-4,4]);
xlabel('time');
ylabel('前6 项有限级数');
y=0;
for i=1:
7
y=y+sishu*(sin((2*i-1)*100*pi*t)/(2*i-1));
end
subplot(223)
plot(t,y);
axis([0,0.04,-4,4]);
xlabel('time');
ylabel('前7 项有限级数');
y=0;
for i=1:
8
y=y+sishu*(sin((2*i-1)*100*pi*t)/(2*i-1));
end
subplot(224);
plot(t,y);
axis([0,0.04,-4,4]);
xlabel('time');
ylabel('前8 项有限级数');
26
显示结果如图4-3 所示。
图4-3 Gibbs 现象
3.周期对称三角信号的合成
设计采用有限项级数逼近偶对称周期三角信号的实验,编制程序并显示结
果。
4.周期信号的频谱
分析奇对称方波信号与偶对称三角信号的频谱,编制程序并显示结果,深入
讨论周期信号的频谱特点和两信号频谱的差异。
五、实验要求
1. 输入实验内容1 中提供的奇对称方波信号合成的MATLAB 程序,生成M 文件,
编译并运行,观察合成结果。
2. 输入实验内容2 中提供的有限项级数逼近方波信号的MATLAB 程序,生成M
文件,编译并运行,观察Gibbs 现象。
3. 自行编制完整的MATLAB 程序,完成实验内容3 中偶对称三角信号的合成。
在
实验报告中给出程序和显示结果。
27
4. 自行编制完整的MATLAB 程序,完成实验内容4 中奇对称方波信号和偶对称三
角信号的频谱分析。
在实验报告中给出程序和显示结果,讨论周期信号的频
谱特点和两信号频谱的差异。
六、思考题
1. 利用有限项的指数形式的傅里叶级数重复奇对称方波信号的合成。
2. 分析时域信号的间断性与其频谱谐波收敛速率的对应关系。
28
实验五 二阶状态轨迹的显示
一、 实验目的
1. 熟悉二阶连续时间系统状态轨迹的概念。
2. 掌握连续时间系统冲激响应、阶跃响应的求解方法。
3. 观察过阻尼,欠阻尼,临界阻尼情况下,RLC 电路的状态轨迹。
二、 实验原理
系统数学模型的描述方法有输入输出描述法和状态变量分析法。
在输入输出
描述法中,主要建立系统的输入(激励)与系统的输出(响应)之间的关系,不
关心系统内部的变化情况。
在状态变量分析法中,需在先确定状态变量后,建立
描述系统状态变量与输入之间的关系(状态方程),以及建立系统输出变量与系
统状态变量及系统输入之间的关系(输出方程),这种分析法不仅能反映输入与
输出的关系,而且能了解系统内部的变化过程。
在状态变量分析法中,状态变量是建立状态方程和输出方程的关键变量,是
能描述系统动态特性的一组独立完备的变量。
对于一个二阶系统,则可以用两个
状态变量来描述系统的动态特性,这两个状态变量构成的列矢量称为状态矢量,
以这两个状态变量为坐标轴而形成的空间称为二维状态空间。
在状态空间中状态
矢量端点随时间变化而描述出的路径为状态轨迹。
因此状态轨迹对应系统在不同
时刻,不同条件下的状态,知道了某段时间内的状态轨迹,则系统在该时间内的
变化过程也就知道了,所以二阶状态轨迹的描述方法是一种在几何平面上研究系
统动态性能(包括稳定性在内)的方法。
用计算机模拟二阶状态轨迹的显示,方
法简单直观,且能很方便观察电路参数变化时,状态轨迹的变化规律。
三、 涉及的MATLAB 相关内容
1. MATLAB 图形用户界面(GUI)设计
利用MATLAB 图形用户界面工具设计修改RLC 电路参数及显示RLC 电路二阶
状态轨迹的界面;并用程序控制界面中的控件,显示RLC 电路的二阶状态轨迹。
29
2. ss 函数
功能:
建立系统状态空间模型。
调用格式:
sys = ss(a,b,c,d)
其中,a,b,c,d 为状态方程和输出方程的矩阵,sys 为建立的状态空间模
型。
3. step 函数
功能:
求线性时不变系统的阶跃响应。
调用格式:
y = step(sys,t)
其中,y 为系统的阶跃响应,sys 为系统的状态空间模型。
4. axes 函数
功能:
设置当前轴。
调用格式:
axes(h)
其中,h 为已存在轴的句柄
四、 实验内容与方法
1.验证性实验
图1 所示为RLC 电路,可看作一个二阶连续时间系统。
对于该二阶系统,若
要用状态变量分析来描述该系统的数学模型,可选用 )(tiL 和 )(tvc 作为状态变量,
这两个状态变量所形成的空间称为状态空间。
在状态空间中,状态矢量 〓〓〓
〓〓〓
)(
)(
tv
ti
cL 随
时间变化而描出的路径叫状态轨迹。
图1 RLC 电路
本实验将利用计算机模拟该系统的状态轨迹,实验步骤如下:
(a) 在MATLAB 命令窗口重输入“guide”,启动GUI
(b) 利用GUI 编辑图2 所示界面,并将其保存为trace.fig 文件。
30
图2 修改RLC 电路参数及显示RLC 电路二阶状态轨迹的界面
(c) 运行GUI,并生成trace.m 文件。
(d) 选中图2 所示界面中“显示状态轨迹”按钮,点击右键选择菜单上
的View Callbacks,选择Callback,MATLAB Editor 会自动调到该按
钮对用的Callback Function 上,可以直接在那里填写代码,编程控
制GUI。
其中“显示状态轨迹”按钮Callback Function 的参考程序代
码如下:
function pushbutton1_Callback(hObject, eventdata, handles)
t = 0:
0.1:
100;
%从界面上获取电路参数
R = str2num(get(handles.edit1,'string'));
L = str2num(get(handles.edit2,'string'));
C = str2num(get(handles.edit3,'string'));
%若系统以 )(tiL , )(tvc 为响应,以 )(te 为激励,
%确定系统状态方程和输出方程中的a,b,c,d 矩阵
a = [-R/L -1/L;1/C 0];
b = [1/L;0];
c = [1 0;0 1];
d = [0];
31
sys = ss(a,b,c,d); %建立系统状态空间模型
Response = step(sys,t); %求系统的阶跃响应
axes(handles.axes1);
plot(t,Response(:
1),'b-','linewidth',3); %显示 )(tiL
ylabel('il(t)','fontsize',14)
axes(handles.axes2);
plot(t,Response(:
2),'r-','linewidth',3); %显示 )(tvc
ylabel('vc(t)','fontsize',14)
axes(handles.axes3);
plot(Response(:
2),Response(:
1),'linewidth',3); %显示状态轨迹
xlabel('vc(t)','fontsize',14)
ylabel('il(t)','fontsize',14)
%判断系统的阻尼状态
alph = R/(2*L);
omega = 1/sqrt(L*C);
if (R==0)
str = '无阻尼';
else
if(alph>omega)
str = '过阻尼';
end
if(alph==omega)
str = '临界阻尼';
end
if(alph str = '欠阻尼';
end
end
set(handles.text1,'string',str);
32
2. 程序设计实验
已知某系统的系统函数为
23
3
)( 2 ++
+
=
ss
s
sH ,若系统起始状态为零,在激
励信号为 )()( tte δ= 情况下,画出该系统的状态轨迹。
五、 实验要求
1. 当RLC 电路参数变化时,分别给出过阻尼,欠阻尼,临界阻尼情况下RLC 电
路的状态轨迹。
2. 编写程序完成程序设计实验,并给出实验结果。
六、 思考题
连续时间系统状态方程的求解方法。
33
实验六 信号的抽样与内插
一、实验目的 1. 熟悉信号的抽样与恢复过程;
2. 观察欠采样与过采样时信号频谱的变化;
3. 掌握采样频率的确定方法。
二、 实验原理
由时域抽样定理可知,若有限带宽的连续时间信号 )(tf 的最高角频率为
mω ,则信号 )(tf 可以用等间隔的抽样值唯一表示,且抽样间隔 sT 必须不大于
mf2
1
,或者说抽样频率 ms ωω 2≥ 。
图6-1 所示为信号抽样与恢复示意图,其中图6-1 (a)中为抽样前带限信号
)(tf ,其频谱 )(ωF 为图6-1 (b)所示,最高频率为 mω 。
当该信号被抽样间隔
为 sT 的冲激序列抽样时,若 sT 大于
mf2
1
(过采样),则抽样后信号 )(tfs 的频谱
为图1(f)所示,频谱没有产生混迭现象。
将抽样后信号 )(tfs 通过一个低通滤波
器,能恢复原信号 )(tf 。
若 sT 小于
mf2
1
(欠采样),则抽样后信号 )(tfs 的频谱
将产生混迭现象,不能从抽样后信号 )(tfs 中恢复原信号 )(tf 。
(a)
(b)
)(tf
0
t
)(ωF
ω
1
mωmω〓
34
(c)
(d)
(e)
(f)
(g)
(h)
图6-1 信号抽样与恢复示意图
三、 涉及的MATLAB 相关内容
1. Simulink 仿真
利用Simulink 完成信号的抽样与内插实验仿真设计。
2. fft 函数
功能:
离散傅里叶变换。
调用格式:
y = fft(x, n) 3. abs 函数
功能:
求绝对值和复数的模。
调用格式:
y = abs(x)
)(ωF
ω
1
mωmω〓
)(tf
0
t
)(tp)1(
0 t
sT sT2 snT
0
ω
)( sω
sωsω〓
)(ωP
)(tfs
0
t sωsω〓
)(ωsF
sT
1
ω
mωmω〓
35
四、 实验内容与方法
设计信号 )2sin()( fttx π= , Hzf 1= 的抽样与恢复的实验,实验步骤如下:
1. 在 MATLAB 命令窗口中输入“ simulink”,启动 Simulink Library
Browser;
2. 在Simulink Library Browser 中,新建一个模型文件,编辑模型文件,
建立如图2 所示的抽样与内插的仿真模型,并保存为sample.mdl;
图2 抽样与内插的仿真模型
3. 分别在欠采样与过采样条件下,配置各模块的参数(如信号源的频率,
抽样脉冲的间隔,低通滤波器的截止频率等)。
4. 在模型文件的菜单中选择Simulation->Start,运行在欠采样、与过采
样条件下的仿真模型;
5. 仿真结束后,打开示波器,观察在欠采样与过采样条件下的仿真结果。
图3 所示为过采样条件下的仿真结果:
36
信号源的波形
抽样脉冲的波形
抽样后信号的波形
恢复以后信号的波形
图6-3 过采样条件下的仿真结果
6. 画出各信号的频谱图,参考程序代码如下:
N=length(time); Ts=(time(N) - time
(1))/N;
m=floor(N/2); Ws=2*pi/Ts; W=Ws*(0:
m)/N;
F=fft(z1,N); FF=F(1:
m+1); F11=abs(FF);
F=fft(z2,N); FF=F(1:
m+1); F12=abs(FF);
F=fft(z3,N); FF=F(1:
m+1); F13=abs(FF);
F=fft(z4,N); FF=F(1:
m+1); F14=abs(FF);
Figure
(1)
plot(W,F11,'b',-W,F11,'b');
title('输入信号的幅频特性');
xlabel('频率(Rad/s)');
figure
(2)
plot(W,F12,'b',-W,F12,'b');
title('滤波后信号的幅频特性');
xlabel('频率(Rad/s)');
figure(3)
37
plot(W,F13,'b',-W,F13,'b');
title('抽样后信号的幅频特性');
xlabel('频率(Rad/s)');
figure(4)
plot(W,F14,'b',-W,F14,'b');
title('恢复后信号的幅频特性');
xlabel('频率(Rad/s)'); 7. 改变信号源的波形、如将信号源的波形换成方波、三角波后重复上述实
验,观察信号波形与频谱的变化。
五、 实验要求
1. 当信号源波形改变为方波和三角波后,给出信号源、抽样后与恢复后信号的
波形。
2. 自行编写程序画出各信号的频谱图。
3. 在实验报告中给出各信号的频谱图。
六、 思考题
1. 说明采样频率变化对信号时域和频域特性的影响。
2. 分析采样与内插仿真模型中两个低通滤波器的作用。
49
实验八 Wav 信号的波形分析与合成
一、实验目的
1. 巩固傅里叶变换及其反变换的知识,学习从时域和频域两个角度来观察信号。
2. 尝试利用短时傅里叶变换分析非平稳信号的频谱变化。
3.熟悉MATLAB 环境中wavread、wavrecord、wavplay、fft 和ifft 等函数的应
用。
二、实验原理
音频信号(Audio)是通过麦克风、A/D 等数据采集设备将声音转换而成的电
信号,是声波频率、幅度变化的