1、信号与系统实验二实验二 信号的运算一、已知信号 。请编写程序实现些列运算并画出波形。()1()(1)fttt1、 (2)()ftft解:t=linspace(-5,5,1001); %时间 t 的取值范围(自定) y=(t/2+1).*stepfun(t/2,-0.5)-(t/2+1).*stepfun(t/2,0.5)+(t+1).*stepfun(t,-1).*stepfun(t,0)-(t+1).*stepfun(t,1).*stepfun(t,0); %式中的 stepfun 为阶跃函数 plot(t,y);xlabel(t);ylabel(y);2、 ()2ft解: t=linspa
2、ce(-6,6,1001); %时间 t 的取值范围 y=(t-1).*stepfun(t,1).*stepfun(t,2)-(t-1).*stepfun(t,3).*stepfun(t,2); %式中 stepfun 为阶跃函数 plot(t,y);xlabel(t);ylabel(y);3、 (2)ft解: t=linspace(-6,6,1001); %时间 t 的取值范围 y=(t-1).*stepfun(t,1).*stepfun(t,0)-(t-1).*stepfun(t,3).*stepfun(t,0); %式中的 stepfun 为阶跃函数 plot(t,y);xlabel(t
3、);ylabel(y);4、 (2)ft解: t=linspace(-10,10,1001); %时间 t 的取值范围 y=(3-t).*stepfun(-t,-3)-(3-t).*stepfun(-t,-1); %式中的 stepfun 为阶跃函数 plot(t,y);xlabel(t);ylabel(y);5、 (2)ft解: t=linspace(-10,10,1001); %时间 t 的取值范围 y=(-t-1).*stepfun(-t,1).*stepfun(-t,0)-(-t-1).*stepfun(-t,3).*stepfun(-t,0); %stepfun 为阶跃函数 plot
4、(t,y);xlabel(t);ylabel(y);二、编写一个利用 MATLAB 提供的数值积分计算函数计算两个连续函数的卷积积分的函数程序,用其计算下列函数在 010 内的卷积积分的结果,并与理论计算出的结果相比较,观测其计算结果 1. (1)2()1)(),tftttfe解:dt=0.01; k1=0:dt:10; f1=stepfun(-k1,-1)+2*stepfun(k1,1); %生成 信号 f1 k2=k1; f2=exp(-(k2+1).*stepfun(k2,1); %生成 信号 f2 f=dt*conv(f1,f2); %计算卷积结果 f k0=k1(1)+k2(1) ;
5、 %计算序列 f 非零样值的起点位置 k3=length(f1)+length(f2)-2; %计算卷积和 f 的非零样值的宽度 k=k0:dt:k0+k3*dt; %确定卷积和 f 的非零样值的时间向量 subplot(2,2,1); plot(k1,f1);title(f1(t);xlabel(t); %在图 1 绘 f2(t)时域波形图 subplot(2,2,2); plot(k2,f2);title(f2(t);xlabel(t); %在图 2 绘 f2(t)时域波形图 subplot(2,2,3); plot(k,f); %画卷积 f(t)的时域波形 h=get(gca,posit
6、ion); h(3)=2.5*h(3);set(gca,position,h); %将第三个示图横坐标范围扩至原来的 2.5 倍 title(f(t)=f1(t)*f2(t);xlabel(t);2. 12()sin(),(1)fttft解: dt=0.01;k1=0:dt:10;f1=sin(k1).*stepfun(k1,0); %生成信号 f1k2=k1; f2=stepfun(k2,-1); %生成 信号 f2f=dt*conv(f1,f2); %计算卷积结果 fk0=k1(1)+k2(1); %计算序列 f 非零样值的起点位置k3=length(f1)+length(f2)-2; %
7、计算卷积和 f 的非零样值的宽度k=k0:dt:k0+k3*dt; %确定卷积和 f 的非零样值的时间向量 subplot(2,2,1); plot(k1,f1);title(f1(t);xlabel(t); %在图 1 绘 f2(t)时域波形图subplot(2,2,2); plot(k2,f2);title(f2(t);xlabel(t); %在图 2 绘 f2(t)时域波形图subplot(2,2,3); plot(k,f); %画卷积 f(t)的时域波形h=get(gca,position);h(3)=2.5*h(3);set(gca,position,h); %将第三个示图横坐标范围
8、扩至原来的 2.5 倍 title(f(t)=f1(t)*f2(t);xlabel(t);3. 12()2(1),sin()(1)fttfttt解: dt=0.01; k1=0:dt:10; f1=2*stepfun(k1,0)-stepfun(k1,1); %生成信号 f1 k2=k1; f2=sin(pi*k2).*(stepfun(k2,0)-stepfun(k2,1); %生成信号 f2 f=dt*conv(f1,f2); %计算卷积结果 f k0=k1(1)+k2(1); %计算序列 f 非零样值的起点位置 k3=length(f1)+length(f2)-2; %计算卷积和 f 的
9、非零样值的宽度 k=k0:dt:k0+k3*dt; %确定卷积和 f 的非零样值的时间向量 subplot(2,2,1); plot(k1,f1);title(f1(t);xlabel(t); %在图 1 绘 f2(t)时域波形图 subplot(2,2,2); plot(k2,f2);title(f2(t);xlabel(t); %在图 2 绘 f2(t)时域波形图 subplot(2,2,3); plot(k,f); %画卷积 f(t)的时域波形 h=get(gca,position); h(3)=2.5*h(3);set(gca,position,h); %将第三个示图横坐标范围扩至原来的 2.5 倍 title(f(t)=f1(t)*f2(t);xlabel(t);总结:1、conv 函数为线性卷积和计算函数,主要用于多项式乘法、矩阵乘法。2、stepfun 为单位阶跃函数3、linspace 是 Matlab 中的一个指令,用于产生 x1,x2 之间的 N 点行矢量。其中x1、x2、N 分别为起始值、中止值、元素个数。若缺省 N,默认点数为 100。4、MATLAB 中的 M 文件实际上就是一个函数,它的定义语句是 function=