subplot(223) stem(m, xodd); xlabel('m'); ylabel(x odd(n)'); title(Odd Part) step sequence Even part 0 10 10 图1.17阶跃序列的奇偶分 1.4 MATLAB信号生成函数 MATLAB5信号处理工具箱提供一些特殊信号波形生成函数〈见附录),这些函数在 信号处理中起了十分重要作用,这里仅介绍常用的 SQUARE、 SAWTOOTH、SINC DIRIO、 RECTPULS和 PULSTRAN 功能:产生周期为2π,幅值为士1的方波信号。 调用格式: (t) 其中,t为时间向量,duty为正幅值部分占周期的百分数 二、 SAWTOOTH 功能:产生锯齿波或三角波 16
调用格式: x=sawtooth(t) sawtooth(t)用于产生时间向量为t,周期为2x,宽度为 width的三角波。这里 width为 0和1之间的数。 width=0.5时,产生标准正三角波 【例1.9】(1)产生幅值为士1的周期性方波,周期为2s,脉宽为1s;(2)产生幅值为 土1的周期性方波,周期为2s,脉宽为0.2s;(3)产生幅值为士1的周期锯齿波,周期为2s; (4)产生幅值为±1的周期正三角波,周期为2s 用 MATLAB编写信号生成程序如下 %MATLAB PROGRAM 1-10 x=[0:0.01:10]; y=square(pi *x); axis([0,10,-2,2]); itle('Square); xlabel(x'); ylabel(y); (p subplot(222) axis([0,10,-2,2]); title('Square); xlabel(x'); ylabel(y') [0:0.01:10 subplot(223) ot(x,y); title('Sawtooth');xlabel(x'); ylabel('y) h(pi *x,0.5); axis([0,10,-2,2]); title('Sawtooth')i xlabel(x'); ylabel(y); 生成信号波形如图1.18所示
square Square 0 0 s awtoo th S awtoo th ∧∧∧∧∧ 0 图1.18周期方波、锯齿波和三角波 三、SINC 功能:生成sinc函数波形 调用格式: sinc(x) 其中,x为一向量。 函数sinc(x)的周期为2π,并随x的增加而做衰减振荡,且为偶函数,在nx处的值为 零。调用时应注意此特点 四、 DIRIO 功能:产生 Dirichlet或sinc周期函数 调用格式: dirac o 其中,x为一向量,n为正整数 Dirichlet是周期Sinc函数,表达式为 dirac(x) 1m(x(2.其他 n为非零整数。当n为奇数时,周期为2π;当n为偶数时,周期为4x。 【例1.10】生成sinc(x)函数波形和不同n的 daric(x,n)波形曲线
用 MATLAB编写程序如下 %MATLAB PROGRAM 1-11 x=[-2:0.1:2] y=sinc(pi米x); subplot (221) plot(x, y) title('Sinc'); xlabel(x); ylabelc'y'): y=direc(pi*x5) plot(x,y ); title( Dirichlet n=5'): xlabel(x'); ylabel(y) title( Dirichlet n=7'); xlabel(x'); ylabel('y), title( Dirichlet n=8);xlabel(x'); ylabel('y); grid 由程序绘出的函数曲线如图1.19所示 五、 RECTPULS 功能:在采样点上产生非周期的、单位高度矩形信号 调用格式: y rectpuls(t) rectpuls(t, w) 其中,t为时间向量,w为矩形脉宽 调用后,以t=0为中心产生宽度为w,高度为1的矩形信号。 六、 PULSTRAN 功能:产生脉冲串信号 调用格式:
Dirichlet ns 5 Diric hlet n=7 Diric h let n 8 0.5--1÷- 05 19sinc和 dirichlet函数曲线 其中,t为时间向量,d为脉冲串位置向量(采样点向量),P1,P2为脉冲有关参数设置,fun 为脉冲类型函数, MATLAB提供三种脉冲类型 gauspuls高斯调制正弦脉冲 rectpuls非周期矩形脉冲 tripuls非周期三角形脉冲 函数 pulstran执行下面运算 y= func(t-d(1))+ func(t-d(2))+ 调用后,在向量d所指定的位置产生脉冲串。 【例1.11】产生锯齿波脉冲串和矩形波脉冲串,脉宽为0.1s,脉冲重复频率为3Hz, 采样频率1kHz,信号时间长度为1s。 用 MATLAB编写程序如下: %MATLAB PROGRAM 1-12 y=rectpuls(x) plot (221)