信号仿真实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号与系统仿真实验报告
实验一
(1)()t δ
Function-M 文件
function [x,t]=dirac(t1,t2,t0)
%y=dirac(t-t0),t1 dt=0.001; %信号时间间隔 t=t1:dt:t2; %信号时间样本点向量 n=length(t); %时间样本点向量长度 x=zeros(1,n); %各样本点信号赋值为零 x(1,(t0-t1)/dt+1)=1/dt; %在时间t=t0处给样本点赋值为1/dt end 主函数 >> [y,t]=dirac(-1,5,0); >> stairs(t,y); >> axis([-1,5,0,1.2/0.001]) >> title('单位冲击信号') 分析:由于理想的单位冲击函数在Matlab 中不能实际给出,于是就在t0附近取一个很小的区间dt ,在这个区间中,函数可以认为是一个宽度很窄的门函数,幅值为1/dt ,以满足冲击函数定义要求 (2)()t ε Function-M 文件 function f=heaviside(t,t0) %f=heaviside(t-t0) f=(t-t0>0); %t>t0时f 为1,否则为0 end 主程序 >> t=-1:0.001:5; %时间区间定义 >> t0=0; %函数向右位移距离 >> f=heaviside(t,t0);%生成向右位移t0的阶跃信号 >> plot(t,f) >> axis([-1,3,-0.2,1.2]) 分析:在新版的Matlab 函数库中有自带的阶跃函数,调用方法为f=heaviside(t),这里为了方便画位移后0()t t ε-的图像,故自定义了一个阶跃函数。 (3)指数 ①a=1; >> f=sym('exp(t)'); >> ezplot(f,[-3,3]) >> xlabel('时间t') >> ylabel('函数f (x )') ②a=-1; f=sym('exp((-1)*t)'); >> ezplot(f,[-3,3]) >> xlabel('时间t') >> ylabel('函数f (x )') 图a )a=1时的指数信号图像 图b )a=-1时的指数函数图像 分析:y=sym (‘f (x )’)是用了符号运算法 (4)(),5N R t N = >> t=-1:0.001:10; >> y=heaviside(t,0)-heaviside(t,5); >> plot(t,y) >> axis([0,10,-0.2,1.2]) 分析:采用两个跳变点不等的阶跃函数相减得到一个矩形函数的方法生成的门函数。 (5)()Sa t ω >>f=sym('sin(t)/t'); >> ezplot(f,[-30,30]) >> axis([-30,30,-0.4,1.2]) 分析:为了方便编程画图,这里直接采用了符号运算法 (6)正弦函数 f=sym('sin(2*pi*t)'); ezplot(f,[-1,1]) 再分别令w=4*pi 、6*pi 得到后面两个图像 图a )w=2*pi 图b )w=4*pi 图c )w=6*pi 实验二:离散时间信号的表示及可视化 (1)()n δ Founction-M 文件 function [f,k] = dwxulie(k1,k2,k0) k=k1:k2; n=length(k); f=zeros(1,n); f(1,k0-k1+1)=1; end 主程序 >> [y,k]=dwxulie(-5,5,0); >> stem(k,y,'filled') >> axis([-5,5,0,1.5]) >> title('单位序列') (2)()n Founction-M 文件 function [ y,k] = jyxulie( k1,k2,k0 ) for i=1:k2-k1+1; if i y(i)=0; else y(i)=1; end end end 主程序 >> y=jyxulie(-5,5,0); >> stem(k,y,'filled') >> axis([-5,5,0,1.5]) (3)指数序列 Founction-M 文件 function [ y,k ] = expxulie( k1,k2,a ) %y=exp(a*n),k1 k=k1:k2; for i=1:k2-k1+1; y(i)=exp(a*(k1+i-1)); end end 主程序 [y1,k]=expxulie(-2,2,1); >> [y2,k]=expxulie(-2,2,2); >> [y3,k]=expxulie(-2,2,-1); >> [y4,k]=expxulie(-2,2,-2); >> stem(k,y1) >> hold on >> stem(k,y2,'rd') >> stem(k,y3,'g') >> stem(k,y4,'y') >> axis([-2.5,2.5,0,60]) 蓝色--a=1,红色--a=2,绿色--a=-1,黄色--a=-2 (4)()N R n >> k1=-1;k2=12; >> y1=jyxulie(k1,k2,0)-jyxulie(k1,k2,3); %y1=R3(n) >> y2=jyxulie(k1,k2,0)-jyxulie(k1,k2,6); %y2=R6(n) >> y3=jyxulie(k1,k2,0)-jyxulie(k1,k2,9); %y2=R9(n) >> k=k1:k2; >> subplot(3,1,1) >> stem(k,y1,'filled') >>axis([-2,13,0,1.5]) >> subplot(3,1,2) >> stem(k,y2,'filled') >>axis([-2,13,0,1.5]) >> subplot(3,1,3) >> stem(k,y3,'filled') >>axis([-2,13,0,1.5])