1、- 1 - -第二篇 基于 MATLAB 下的软件实验目 录实验一 基本信号的产生 35实验二 时域抽样与频域抽样40实验三 连续系统分析43- 2 - -2 -1 0 1 2 3 4 5 600.20.40.60.81实验一 基本信号的产生一、实验目的学习使用 MATLAB 产生基本信号、绘制信号波形、实现信号的基本运算,为信号分析和系统设计奠定基础。二、实验原理 MATLAB 提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期矩形波信号等。这些基本信号是信号处理的基础。(一 ) 基本信号的产生:1. 连续阶跃信号的产生 产生阶跃信号的 MATLAB 程序如
2、下: t= -2: 0.02: 6; x=(t=0); plot(t,x); axis(-2,6,0,1.2);图一 连续阶跃信号2. 连续指数信号的产生 产生随时间衰减的指数信号的 MATLAB程序如下:t = 0: 0.001: 5;x = 2*exp(-1*t);plot(t,x);图二 连续指数信号 3. 连续正弦信号的产生 利用 MATLAB 提供的函数 cos 和 sin 可产生正弦和余弦信号。产生一个幅度为 2, 频率为 4Hz, 相位为 p/6 的正弦信号的MATLAB 程序如下: f0=4; w0=2*pi*f0;t = 0: 0.001: 1; x = 2*sin(w0*t
3、+ pi/6); plot(t,x); 图三 连续正弦信号0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 500.20.40.60.811.21.41.61.820 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-2-1.5-1-0.500.511.52- 3 - -4连续矩形脉冲信号的产生 函数 rectpulse(t,w)可产生高度为1、宽度为 w、关于 t=0 对称的矩形脉冲信号。 产生高度为 1、宽度为 4、延时 2 秒的矩形脉冲信号的 MATLAB 程序如下: t=-2: 0.02: 6; x=rectpuls(t-2,4); plot(t,x
4、); 图四 连续矩形脉冲信号5. 连续周期矩形波信号的产生 函数 square(w0*t)产生基本频率为 w0 (周期 T=2p/w0)的周期矩形波信号。函数 square(w0*t, DUTY)产生基本频率为 w0 (周期 T=2p/w0)、占空比DUTY= t/T*100 的周期矩形波。 为一个周期中信号为正的时间长度。=T/2,DUTY=50,square(w0*t, 50)等同于 square(w0*t)。产生一个幅度为 1, 基频为 2Hz,占空比为 50%的周期方波的 MATLAB 程序如下:f0=2; 图五 连续周期矩形波信号t = 0:.0001:2.5; w0=2*pi*f0
5、; y = square(w0*t, 50); %duty cycle=50% plot(t,y); axis(0,2.5,-1.5,1.5);6. 连续抽样信号的产生 可使用函数 sinc(x)计算抽样信号, 函数 sinc(x)的定义为 。 产生信号的MATLAB 程序如下: t= -10:1/500:10; x=sinc(t/pi); -2 -1 0 1 2 3 4 5 600.10.20.30.40.50.60.70.80.910 0.5 1 1.5 2 2.5-1.5-1-0.500.511.5-10 -8 -6 -4 -2 0 2 4 6 8 10-0.4-0.200.20.40.
6、60.81- 4 - -plot(t,x); 图六 连续抽样信号7单位脉冲序列的产生 函数 zeros(1,n) 可以生成单位脉冲序列。 函数 zeros(1,n)产生 1 行 n 列的由 0 组成的矩阵。 产生成单位脉冲序列的 MATLAB 程序如下: k= -4: 20; x=zeros(1,7),1,zeros(1,17); stem(k,x) 图七 单位脉冲序列8单位阶跃序列的产生 函数 ones(1,n) 可以生成单位阶跃序列。 函数 ones(1,n)产生 1 行 n 列的由1 组成的矩阵。产生单位阶跃序列的 MATLAB 程序如下: k= -4:20; x=zeros(1,7),
7、ones(1,18); 图八 单位阶跃序列stem(k,x) 9. 指数序列的产生 产生离散序列的 MATLAB 程序如下: k = -5:15; x = 0.3*(1/2).k; stem(k,x);图九 指数序列10正弦序列的产生 产生正弦序列的 MATLAB 程序如下: k=-10:10; omega=pi/3;x = 0.5*sin(omega*k+ pi/5); stem(k,x); -5 0 5 10 15 2000.10.20.30.40.50.60.70.80.91-5 0 5 10 15 2000.10.20.30.40.50.60.70.80.91-5 0 5 10 150
8、12345678910-10 -8 -6 -4 -2 0 2 4 6 8 10-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5- 5 - -图十一 正弦序列11离散周期矩形波序列的产生 产生幅度为 1、基频 rad、占空比为 50%的周期方波的 MATLAB 程序如下: omega=pi/4; k=-10:10; x = square(omega*k,50); stem(k,x); 图十二 离散周期矩形波序列12. 白噪声序列的产生 白噪声序列在信号处理中是常用的序列。函数 rand 可产生在0,1区间均匀分布的白噪声序列, 函数 randn 可产生均值为 0,方差为
9、1 的高斯分布白噪声。 N=20;k=0:N-1; x=rand (1,N) stem(k,x); 图十三 白噪声序列(二) 序列的基本运算表一 序列基本运算表-10 -8 -6 -4 -2 0 2 4 6 8 10-1-0.8-0.6-0.4-0.200.20.40.60.810 2 4 6 8 10 12 14 16 18 2000.10.20.30.40.50.60.70.80.91- 6 - -离散序列:(1)计算离散卷积和 :(2)计算离散自相关函数:x=1,2,1,1,0,-3; h=1,-1,1; %计算离散卷积和 y=conv(x,h); subplot(2,1,1); ste
10、m(0:length(y)-1,y); title(yk);xlabel( k); %计算离散自相关函数y=xcorr(x,x);subplot(2,1,2);m=(length(y)-1)/2;stem(-m:m,y);title(Rxxn);xlabel(n); 三、 实验思考题 1. 两个连续信号的卷积定义是什么?两个序列的卷积定义是什么?卷积的作用是什么?conv 函数只输出了卷积结果,没有输出对应的时间向量,如何使时间向量和卷积结果对应起来? 2. 两个连续信号的相关定义是什么?两个序列的相关定义是什么?相关的作用是什么? 3. 能够利用 MATLAB 产生单位冲激信号吗? 4. 产
11、生连续信号时,首先要定义时间向量 t = 0:T:Tp。 其中 T 和 Tp 是什么意思?5,4321,0;3,12,kkxh*khxyknxR0 1 2 3 4 5 6 7-4-2024 ykk-5 -4 -3 -2 -1 0 1 2 3 4 5-1001020 Rxxnn- 7 - -实验二 时域抽样与频域抽样一、实验目的 1加深理解连续时间信号的离散化过程中的数学概念和物理概念,掌握时域抽样定理的基本内容。2掌握由抽样序列重建原连续信号的基本原理与实现方法,理解其工程概念。3加深理解频谱离散化过程中的数学概念和物理概念,掌握频域抽样定理的基本内容。二、 实验原理 时域抽样定理给出了连续信
12、号抽样过程中信号不失真的约束条件:对于基带信号,信号抽样频率 fsam 大于等于 2 倍的信号最高频率 fm,即 fsam 2fm 。 时域抽样是把连续信号 x(t)变成适于数字系统处理的离散信号 xk ;信号重建是将离散信号 xk转换为连续时间信号 x(t)。非周期离散信号的频谱是连续的周期谱。计算机在分析离散信号的频谱时,必须将其连续频谱离散化。频域抽样定理给出了连续频谱抽样过程中信号不失真的约束条件。1. 信号的时域抽样 对连续信号 x(t)以间隔 T 抽样,得到的离散序列 xk=x(kT)|t=kTx(t)xk tk0T2012- 8 - -图一 连续信号抽样的离散序列若 xk=x(k
13、T)|t=kT,则信号 x(t)与 xk的频谱之间存在:其中: x(t)的频谱为 X(j ), xk的频谱为 X(ej )可见,信号时域抽样导致信号频谱的周期化。 wsam=2p/T (rad/s)为抽样角频率,fsam=1/T 为抽样频率。 数字角频率 W 与模拟角频率 w 的关系为:=T其中:x(t)的频谱为 X(jw),xk的频谱为 X(ejW)用 MATLAB 实现对信号 的抽样。 t0 = 0:0.001:0.1;x0 =cos(2*pi*20*t0);plot(t0,x0,r) hold on %信号最高频率 fm 为 20 Hz, %按 100 Hz 抽样得到序列。Fs = 10
14、0; t=0:1/Fs:0.1; x=cos(2*pi*20*t); stem(t,x); hold off title(连续信号及其抽样信号) 图二 的抽样图形 2. 信号的频域抽样非周期离散序列 xk的频谱 X(ej)是以 2为周期的连续函数。频域抽样是将 X(ej)离散化以便于数值计算。频域抽样与时域抽样形成对偶关系。在0,2内对 X(ej) 进行 N 点均匀抽样,引起时域序列 xk以 N 点为周期进行周期延拓。频域抽样定理给出了频域抽样过程中时域不发生混叠的约束条件:)ej nnT)(j1sam)20cos()(ttx0 0.01 0.02 0.03 0.04 0.05 0.06 0.
15、07 0.08 0.09 0.1-1-0.8-0.6-0.4-0.200.20.40.60.81 信信信信信信信信信信)2cos()(ttxnnNkx- 9 - -若序列 xk的长度 L,则应有 NL。已知序列 , 对其频谱 X(ej)进行抽样, 分别取 N=2,3,10,观察频域抽样造成的混叠现象。x=1,1,1; L=3; N=256;omega=0:N-1*2*pi/N;X0=1+exp(-j*omega)+exp(-2*j*omega);plot(omega./pi,abs(X0);xlabel(Omega/PI); hold onN=2; omegam=0:N-1*2*pi/N;Xk
16、=1+exp(-j*omegam)+exp(-2*j*omegam);stem(omegam./pi,abs(Xk),r,o);hold off三、实验思考题:三、实验思考题:1. 将语音信号转换为数字信号时,抽样频率一般应是多少? 2. 在时域抽样过程中,会出现哪些误差?如何克服或改善? 3. 在实际应用中,为何一般选取抽样频率 fsam (35) fm? 4. 简述带通信号抽样和欠抽样的原理? 5. 如何选取被分析的连续信号的长度? 6. 增加抽样序列 xk的长度,能否改善重建信号的质量? 7. 简述构造内插函数的基本原则和方法? 8. 抽样内插函数、阶梯内插函数、线性内插函数、 升余弦内
17、插函数各有什么特性?2,10 ;,1k- 10 - -实验三 连续系统分析一、 实验目的1深刻理解连续时间系统的系统函数在分析连续系统的时域特性、频域特性及稳定性中的重要作用及意义,掌握根据系统函数的零极点设计简单的滤波器的方法。2掌握利用 MATLAB 分析连续系统的时域响应、频响特性和零极点的基本方法。二、 实验原理MATLAB 提供了许多可用于分析线性时不变连续系统的函数,主要包含有系统函数、系统时域响应、系统频域响应等分析函数。1. 连续系统的时域响应连续时间 LTI 系统可用如下的线性常系数微分方程来描述:)( )()( 011tyattyatynn )(01)(1)( txbxbxmm已知输入信号 x(t)以及系统初始状态 ,就可以求出),),(1(nyy系统的响应。MATLAB 提供了微分方程的数值计算的函数,可以计算上述 n 阶微分方程描述的连续系统的响应,包括系统的单位冲激响应、单位阶跃响应、零输入响应、零状态响应和完全响应。在调用 MATLAB 函数时,需要利用连续系统对应的系数函数。对微分方程进行 Laplace 变换即可得系统函数: 011)( assabbsXYHnnm