离散序列的平移可看作是将离散序列的时间序号向量平移,而表示对应时间序号点的序列样值不变,当序列向左移动k0个单位时,所以时间序号向量都减小k0个单位,反之则增加k0个单位。实现如下:
function [f,k]=lsyw(ff,kk,k0) k=kk+k0;f=ff; stem(k,f,’filled’)
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5])
(3)离散序列的倒相
离散序列的倒相可看作是将表示序列样值的向量取反,而对应的时间序号向量不变,得到的离散时间序列。实现如下:
function [f,k]=lsdx(ff,kk) f=-ff; k=kk;
stem(k,f,’filled’)
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5])
这些时域变换,我们可以把我们在第一节中描述过的信号带入其中,来看看信号时域变换的结果如何。除此以外,我们通过时域变换也可以锻炼我们描述信号的能力,一些复杂信号,往往都是一些简单信号经过一系列的时域变换得到。
四、实验设备
计算机 MATLAB软件
五、实验内容:
1、在MATLAB中连续信号的向量或符号运算功能来表示
严格意义上来讲,MATLAB并不能处理连续信号,在MATLAB中,是用连续信号在等时间间隔点的样值来近似地表示连续信号的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。 (1)向量表示法
对于连续时间信号f(t),我们可以用两个行向量f和t来表示,其中向量t是行如t=t1:p:t2的MATLAB命令定义的时间范围向量,t1为信号起始时间,t2为中止时间,p为时间间隔。向量f为连续信号f(t)在向量t所定义
的时间点上的样值,例如对于连续信号f(t)=sin(t),我们可以用如下两个向量来表示:
t=-10:1.5:10; f=sin(t)
用上述向量对连续信号表示后,就可以用plot命令来绘出该信号的时域波形。Plot命令可将点与点间用直线连接,当点与点间的距离很小时,绘出的图形就成了光滑的曲线。命令如下: ? ? ? ?
plot(t,f) title(‘f(t)=sint’) xlabel(‘t’)
axis([-10,10,-1.1,1.1])
?
(2) 符号运算表示法
如果信号可以用一个符号表达式来表示它,则我们可用ezplot命令绘制出信号的波形。例如对于连续信号f(t)= ,我们可以用符号表达式表示为:
syms t
f=sym(‘exp(-t/2)’) f= exp(-t/2)
然后用ezplot命令绘制其波形:ezplot(f,[-6, 6])
2、在MATLAB中离散时间信号描述:
一般说来,离散时间信号用f(k)表示,其中变量k为整数,代表离散的采样时间点。
f(k)可表示为:
f(k)={...f(-2),f(-1),f(0),f(1),f(2)…} ↑k=0
在MATLAB中,用一个向量f即可表示一个有限长度的序列。但是,这样的向量并没有包含其对应的时间序号信息。所以,要完整地表示一个离散信号需要用两个向量,如序列: f(k)={1,2,-1,3,2,4,-1}
↑k=0
在MATLAB中应表示为:
k=[-3,-2,-1,0,1,2,3]或是k=-3:3;f= [1, 2,-1, 3, 2, 4,-1]
在用MATLAB表示离散序列并将其可视化时,我们要注意以下几点:
第一,与连续时间信号不同,离散时间信号无法用符号运算来表示; 第二,由于在MATLAB中,矩阵的元素个数是有限的,因此,MATLAB无法表示无限序列;第三,在绘制离散信号波形时,要使用专门绘制离散数据的stem命令,而不是plot命令
k=-3:3
f= [1, 2,-1, 3, 2, 4,-1] stem(k,f)
3、单位阶跃序列,正弦序列,离散时间指数序列等的离散信号我们都可以用类似的方法描述并绘制出图形 : 指数信号Aeat
A=1;a=-0.4;w0=2;phi=0;width=1;skew=0; t=0:0.01:10; ft= A*exp(a*t); plot(t,ft)
正弦信号
y=A*cos(w0*t+phi) y=A*sin(w0*t+phi) plot(t,y)
抽样函数
y=sinc(t)
相关推荐: