湖北工业大学商贸学院毕业设计
而必须用向量表示的方法,即在MATLAB中离散序列的相加、相乘需表示成两个向量的相加、相乘,因而参加运算的两序列向量必须具有相同的维数。
下面是实现离散序列相加、相乘的实用子程序及实例。实现离散序列相加及其结果可视化的子函数如下,在该函数中,将要进行相加运算的二序列向量f1、f2通过补零的方式成为同维数的二序列向量s1、s2,因而在调用该函数时,要进行相加运算的二序列向量维数可以不同:
function?f,k??lsxj?f1,f2,k1,k2? %实现
f?k??f1?k??f2?k?,f1,f2,k1,k2是参加运算的二离散序列及其对应的时间序列向量,f和k为返回的和序列及其对应的时间序列向量
k?min?min?k1?,min?k2??:max?max?k1?,max?k2??; %构造和序列的长度 s1?zeros?1,length?k??;s2?s1; %初始化新向量
s1find?k??min?k1??&?k??max?k1????1?f1; %将f1中在和序列范围内但又无
定义的点赋值为零
????s2find?k??min?k2??&?k??max?k2????1?f2; %将f2中在和序列范围内但又无
定义的点赋值为零
f?s1?s2; %两长度相等序列求和
????stem?k,f,'filled'? axis([(min(min?k1?,
min?k2?)?1),max?max?k1?,max?k2???1,
???min?f??0.5?,?max?f??0.5?]) %坐标轴显示范围
2.3 离散时间序列及MATLAB的实现
2.3.1 正弦序列
离散时间正弦序列的表达式为:f(k)?Acos(kw??):式中k为无量纲的整数,w和j以弧度为单位,w称为离散正弦序列的数字角频率,j为初相位。
需要注意的是,并非所有的离散时间正弦序列都是周期的。这是因为离散时间信号的自变量和周期序列的周期都必须是整数,在正弦序列中并非对任意w都能找到正整数的周期N。现在我们就来讨论正弦序列为周期序列的条件。
6
湖北工业大学商贸学院毕业设计
设f(k)?rkejwk 是周期序列,且周期为N,则有:
coswk?cosw?k?N??cos(wk?wN) (2-5)
要使上式对所有的w都成立,则w 必须为2?的整数倍,即:
Nw?2m?,或2?/w?N/ m,m为整数
可见只有当2?/w为一有理数时,title?'cos?2*k?'?才具有周期性,且周期为2m?/w。 下面我们通过一个实例来说明上述理论结果。
试用 MATLAB画出正弦序列f1(k)?cos(k?/8),f2(k)?cos(2k)的时域波形,观察它们的周期性,并验证是否与理论分析结果相符。
?2??16,,故该序列是周期序列,且周期为16。 解:对序列f1(k),其角频率w?,8w2???(无理数),故该序列是非周期序列。 对序列f2(k),其角频率w?2,w下面我们用 MATLAB 将上述序列的时域波形绘制出来。对应的MATLAB命令如下:
k?0:40;
subplot?2,1,1?
stem?k,cos?k*pi/8?,'filled'? title?'cos?k*pi/8?'? subplot?2,1,2?
stem?k,cos?2*k?,'filled'? title?'cos?2*k?'?
绘制的序列波形如图2—1所示。
cos(k*pi/8)10-110-101020cos(2*k)3040010203040
图2—1不同频率的正弦序列
7
湖北工业大学商贸学院毕业设计
由绘制的序列波形图,我们可以明显看出,序列f1(k)为周期序列,而f2(k)为非周期序列。
2.3.2 离散时间实指数序列
离散时间实指数序列的一般形式为: f(k)?cak,其中c和a为实常数。我们可以用 MATLAB编写绘制离散时间实指数序列波形的函数如下:
function dszsu?c,a,k1,k2? %c:指数序列的幅度
%a:指数序列的底数 %k1:绘制序列的起始序号 %k2:绘制序列的终止序号
k?k1:k2;
x?c*(ak);
stem?k,x,'filled'?
hold on 2?/w hold off
下面我们通过一个实例来说明上述理论结果:
53用MATLAB画出序列f1(k)?()k?(k), f2(k)?(?)k?(k)的时域波形,观察两序列的
44时域特性。
解:我们可调用前述的disso 函数来解决此问题,对应的MATLAB 命令为:
dszsu?1,5/4,0,40? xlabel?'k'? title?'f1?k?'? dszsu?1,?3/4,0,40? xlabel?'k'? title?'f2?k?'?
绘制的离散实指数序列波形如图2—2所示。
8
湖北工业大学商贸学院毕业设计
图2—2不同底数的实指数序列
由程序绘制的序列波形图我们可以看出,对离散时间实指数序列f(k)?cak,当a的绝对值大于1 时,序列为随时间发散的序列,当a 的绝对值小于1 时,序列为随时间收敛的序列。
2.3.3 离散时间虚指数序列
离散时间虚指数序列的一般形式为:f(k)?ejwk;其中w为角频率,根据欧拉公式有:
f(k)?ejwk?coswk?jsinwk (2-6) 可见,离散虚指数序列的实部和虚部均是等幅的正弦序列。通过前面的分析可得,虚指数序列的实部和虚部也只有在满足一定的条件时才具有周期性,即当2?/w为有理数时离散虚指数序列才具有周期性(周期N?2m?/w,N/m是最简分数)。
绘制虚指数序列时域波形的MATLAB函数如下:
function[]?dxzsu?n1,n2,w? %n1:绘制波形的虚指数序列的起始时间序号
%n2:绘制波形的虚指数序列的终止时间序号 %w:虚指数序列的角频率
k?n1:n2;
f?exp?i*w*k?; Xr?real?f? Xi?imag?f? Xa?abs?f? Xn?angle?f?
subplot?2,2,1?, stem?k,Xr,'filled'?,title('实部'); subplot?2,2,3?, stem?k,Xi,'filled'?,title('虚部');
9