
第2章--时域离散信号的产生.ppt
61页1.1 市场与市场营销1.2 我国汽车市场的发展与现状复习思考题,实验2 时域离散信号的产生,一、实验目的 (1)了解常用的时域离散信号及其特点 (2)掌握MATLAB产生常用时域离散信号的方法二、实验涉及的MATLAB子函数 1.axis 功能:限定图形坐标的范围 调用格式: axis([x1,x2,y1,y2]);在横坐标起点为x1、终点为x2,纵坐标起点为y1、终点为y2的范围内作图2.length 功能:取某一变量的长度(采样点数) 调用格式: N=length(n);取变量n的采样点个数,赋给变量N3.real 功能:取某一复数的实部 调用格式: real(h);取复数h的实部 x=real(h);取复数h的实部,赋给变量x4.imag 功能:取某一复数的虚部 调用格式: imag(h);取复数h的虚部 y=imag(h);取复数h的虚部,赋给变量y5.sawtooth 功能:产生锯齿波或三角波 调用格式: x=sawtooth(t);类似于sin(t),产生周期为2p,幅值从-1到+1的锯齿波。
x=sawtooth(t,width);产生三角波,其中width(0 三、实验原理 1.时域离散信号的概念 在时间轴的离散点上取值的信号,称为离散时间信号通常,离散时间信号用x(n)表示,其幅度可以在某一范围内连续取值 由于信号处理所使用的设备和装置主要是计算机或专用的信号处理芯片,均以有限的位数来表示信号的幅度,因此,信号的幅度也必须“量化”,即取离散值我们把时间和幅度上均取离散值的信号称为时域离散信号或数字信号在MATLAB语言中,时域的离散信号可以通过编写程序直接生成,也可以通过对连续信号等间隔抽样获得 另外,抽样得到的离散信号只有在一定的抽样条件下,才能反映原连续时间信号的基本特征这个问题留待实验15再进行详细的研究本实验均选用满足抽样条件的样点数值2.用MATLAB生成离散信号须注意的问题 1)有关数组与下标 MATLAB中处理的数组,将下标放在变量后面的小扩号内,且约定从1开始递增例如x=[5,4,3,2,1,0],表示x(1)=5,x(2)=4,x(3)=3,x(4)=2,x(5)=1,x(6)=0 要表示一个下标不由1开始的数组x(n),一般应采用两个矢量,如: n=[-3:5]; x=[1,-1,3,2,0,-2,-1,2,1];,,这表示了一个含9个采样点的矢量。 n为一组时间矢量,对应x有:x(-3)=1,x(-2)=-1,x(-1)=3,…,x(5)=1,如图2-1所示图2-1 基本的离散时间序列,2)信号的图形绘制 从本质上讲,MATLAB及其任何计算机语言处理的信号都是离散信号当我们把信号的样点值取得足够密,作图时采用特殊的指令,就可以把信号处理成连续信号 在MATLAB中,离散信号与连续信号有时在程序编写上是一致的,只是在作图时选用不同的绘图函数 连续信号作图使用plot函数,绘制线性图;离散信号作图则使用stem函数,绘制脉冲杆图3.常用的时域离散信号及其程序 常用的时域离散信号主要有单位抽样序列、单位阶跃序列、实指数序列、复指数序列、正(余)弦序列、锯齿波序列、矩形波序列以及随机序列等典型信号 有些信号的生成方法不止一种,下面对常用的时域离散信号进行介绍1)单位抽样序列 单位抽样序列的表示式为 下面的例2-1、例2-2介绍了两种不同的产生d(n)信号的方法d(n-k)的求解在实验3中讨论例2-1 用MATLAB的关系运算式来产生单位抽样序列d(n) 解 MATLAB程序如下: n1=-5;n2=5;n0=0;%在起点为n1、终点为n2的范围内,于n0处产生冲激 n=n1:n2;%生成离散信号的时间序列 x=[n==n0];%生成离散信号x(n) stem(n,x,¢filled¢);%绘制脉冲杆图,且圆点处用实心圆表示,,axis([n1,n2,0,1.1*max(x)]); %确定横坐标和纵坐标的取值范围 title(¢单位脉冲序列¢); xlabel(¢时间(n)¢);ylabel(¢幅度x(n)¢); 运行结果如图2-2所示。 图2-2 例2-1、例2-2生成的d(n),例2-2 用zeros函数和抽样点直接赋值来产生单位抽样序列d(n) 解 MATLAB程序如下(运行结果同图2-2): n1=-5;n2=5;k=0; %位移为k n=n1:n2; nt=length(n);%求样点n的个数 nk=abs(k-n1)+1;%确定k在n序列中的位置 x=zeros(1,nt);%对所有样点置0 x(nk)=1;%对抽样点置1 下面作图部分的程序同例2-12)单位阶跃序列 单位阶跃序列的表示式为 下面用两种不同的方法产生单位阶跃序列u(n)u(n-k)的求解在实验3中讨论例2-3 用MATLAB的关系运算式来产生单位阶跃序列u(n) 解 MATLAB程序如下: n1=-2;n2=8;n0=0; n=n1:n2; %生成离散信号的时间序列 x=[n>=n0]; %生成离散信号x(n) stem(n,x,¢filled¢); axis([n1,n2,0,1.1*max(x)]); title(¢单位阶跃序列¢); xlabel(¢时间(n)¢);ylabel(¢幅度x(n)¢); 运行结果如图2-3所示。 图2-3 例2-3、例2-4生成的u(n),例2-4 用zeros和ones函数来产生单位阶跃序列u(n) 解 MATLAB程序如下(运行结果同图2-3): n1=-2;n2=8;k=0; n=n1:n2; nt=length(n); %求样点n的个数 nk=abs(k-n1)+1;%确定k在n序列中的位置 %生成离散信号x(n)对前nk-1点置0,从nk点至n2点置1 x=[zeros(1,nk-1),ones(1,nt-nk+1)]; 下面作图部分的程序同例2-33)实指数序列 实指数序列的表示式为 x(n)=an 其中a为实数 当|a|<1时,x(n)的幅度随n的增大而减小,序列逐渐收敛;当|a|>1时,x(n)的幅度随n的增大而增大,序列逐渐发散例2-5 编写产生a=1/2和a=2实指数连续信号和离散序列的程序 解 MATLAB程序如下: n1=-10;n2=10;a1=0.5;a2=2; na1=n1:0;x1=a1.^na1; na2=0:n2;x2=a2.^na2; subplot(2,2,1),plot(na1,x1); title(¢实指数原信号(a<1)¢); subplot(2,2,3),stem(na1,x1,¢filled¢); title(¢实指数序列(a<1)¢);,,subplot(2,2,2),plot(na2,x2); title(¢实指数原信号(a>1)¢); subplot(2,2,4),stem(na2,x2,¢filled¢); title(¢实指数序列(a>1)¢); 运行结果如图2-4所示。 图2-4 例2-5生成|a|<1和|a|>1的实指数连续信号与离散序列,4)复指数序列 复指数序列的表示式为 当w=0时,x(n)为实指数序列;当s=0时,x(n)为虚指数序列,即 ejwn=cos(wn)+jsin(wn) 由上式可知,其实部为余弦序列,虚部为正弦序列例2-6 编写产生s=-0.1、w=0.6复指数连续信号与离散序列的程序 解 MATLAB程序如下: n1=30;a=-0.1;w=0.6; n=0:n1; x=exp((a+j*w)*n); subplot(2,2,1),plot(n,real(x)); title(¢复指数原信号的实部¢); subplot(2,2,3),stem(n,real(x),¢filled¢); title(¢复指数序列的实部¢);,,subplot(2,2,2),plot(n,imag(x)); title(¢复指数原信号的虚部¢); subplot(2,2,4),stem(n,imag(x),¢filled¢); title(¢复指数序列的虚部¢); 运行结果如图2-5所示。 图2-5 例2-6复指数连续信号与离散序列的实部和虚部,5)正(余)弦序列 正(余)弦序列的表示式为 x(n)=Umsin(w0n+q) 连续时间信号与离散时间信号的联系可由下例程序清楚地反映出来例2-7 已知一时域周期性正弦信号的频率为1 Hz,振幅值幅度为1 V在窗口上显示2个周期的信号波形,并对该信号的一个周期进行32点采样获得离散信号试显示原连续信号和其采样获得的离散信号波形 解 MATLAB程序如下: f=1;Um=1;nt=2;; %输入信号频率、振幅和 显示周期数 N=32;T=1/f; %N为信号一个周期的采样 点数,T为信号周期,,dt=T/N; %采样时间间隔 n=0:nt*N-1;%建立离散信号的时间序列 tn=n*dt; %确定时间序列样点在时间轴上的位 置 x=Um*sin(2*f*pi*tn); subplot(2,1,1);plot(tn,x); %显示原连续信号 axis([0nt*T1.1*min(x)1.1*max(x)]);%限定横坐标和 纵坐标的显示范围 ylabel(¢x(t)¢);,,subplot(2,1,2);stem(tn,x);%显示经采样的信号 axis([0nt*T1.1*min(x)1.1*max(x)]); ylabel(¢x(n)¢); 结果如图2-6所示。 图2-6 时域连续的正弦信号与经采样获得的离散序列,6)锯齿波(三角波)序列 将sawtooth表示式中的t转换成n,且n取整数,则可以获得锯齿波或三角波序列例2-8 一个连续的周期性锯齿波信号频率为10 Hz,信号幅度在-1 V到+1 V之间,在窗口上显示3个周期的信号波形,用FS=150 Hz的频率对连续信号进行采样试显示原连续信号和其采样获得的离散信号波形 解 MATLAB程序如下: f=10;Um=1;nt=3; %输入信号频率、振幅和 显示周期个数 Fs=150;N=Fs/f; %输入采样频率,求采样点数N T=1/f; %T为信号的周期,。
