logo资料库

MATLAB实验1信号的时域分析.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
内容来自:甜梦文库 更多"MATLAB 实验 1 信号的时域分析"相关资料请点击这里 实验一 信号时域分析的 Matlab 实现 一. 实验目的 1.掌握函数的向量表示法 2.掌握函数的符号运算表示法,实现连续信号 的时域运算和变换 二. 实验原理 1.向量表示法 Matlab 的信号处理工具箱有大量的函数 可用于 产生信号,函数中大部分要求用 矢量来表示时间。如:t=0:0.005:1; 表明该矢量抽样频率为 200Hz。 Matlab 可以精确表示离散时间信号, 对连续时间信号只能近似表示。因此 应选择足够小的抽样间隔 Ts,以保证 反映信号的全部细节。 2. 符号运算表示法 用符号运算可以较快地实现连续信号 的时域运算和变换。 例:a.相加 s=symadd(f1,f2) ezplot(s) 以上是用 Matlab 的符号运算命令来表示 两连续信号的相加,然后用 ezplot 命令 绘制出其结果波形图。 b.相乘 w=symmul(f1,f2) ezplot(w) 以上是用 Matlab 的符号运算命令 来表示两连续信号的相乘,然后 用 ezplot 命令绘制出其结果波形图。 c.时移 y=subs(f,t,t-t0) ezplot(y) 以上是用 Matlab 的符号运算命令
来实现连续信号的平移及其结果 的可视化,subs 命令将连续时间 信号 f 中的时间变量 t 用 t-t0 替换。 d.反褶 y=subs(f,t,-t) ezplot(y) 以上是用 Matlab 的符号运算命令 来实现连续信号 f 的反褶及其结果的可视化。 e.尺度变换 y=subs(f,t,a*t) ezplot(y) 以上是用 Matlab 的符号运算命令 来实现连续信号 f 的尺度变换及其 结果的可视化。 三.实验演示 1 连续信号 (1)指数信号 f (t ) ? Ae? t A=1; a=-0.4; t=0:0.01:10; ft=A*exp(a*t); plot(t,ft); grid; axis([0 10 -0.1 1.1]); (2) 正弦信号 f (t ) ? A sin(?t ? ? ) A=1; w0=2*pi; phi=pi/6; t=0:0.01:3; ft=A*sin(w0*t+phi); plot(t,ft); grid; axis([0 3 -1.1 1.1]); (3)抽样信号 f (t ) ? Sa(t ) ? sin(t ) t x=linspace(-20,20); y=sinc(x/pi); plot(x,y) grid; axis([-21 21 -0.5 1.1]); (4)矩形脉冲 f (t ) ? G? (t ) ? A[? (t ? ? 0 ) ? ? (t ? ? 1 )] ? 0 ??1 ? 0 t=0:0.001:4; T=1; ft=rectpuls(t-2*T,2*T); plot(t,ft); grid; axis([-1 5 -0.1 1.1]);
(5)三角波信号 t=-3:0.001:3; ft=tripuls(t,4,0.5); plot(t,ft); grid; axis([-4 4 -0.1 1.1]); (6)阶跃信号 ?1(t ? 0) ? (t ) ? ? ?0(t ? 0) function f=Heaviside(t) f=(t>0) t=-1:0.001:3; ft=Heaviside(t); plot(t,ft); grid; axis([-1 3 -0.1 1.1]); (7)复指数信号的时域波形 2 f (t ) ? e ?0.1t sin( t ) 3 t=0:0.1:60; f=exp(-0.1*t).*sin(2/3*t); plot(t,f); grid; ylabel('f(t)'); xlabel('Time(sec)'); axis([0 60 -1 1]); (8)加如随机噪声的正弦波 t=(0:0.001:50); y=sin(2*pi*50*t); s=y+randn(size(t)); Subplot(211);plot(t(1:100),y(1:100)) Subplot(212);plot(t(1:100),s(1:100)) (9)周期矩形波 t=(0:0.0001:5); y=A*square(2*pi*t,20); plot(t,y); axis([0 5 -1.5 1.5]) (10)周期锯齿波 t=(0:0.001:2.5); y=sawtooth(2*pi*30*t); plot(t,y); axis([0 0.2 -1 1]) 2 离散信号 与连续信号用 plot 绘制图形不同,离散信号用 stem 输出序列图形。 (1)指数 序列 y[k ] ? Aa k k=-10:10; A=1; a=-0.6; yk=A*a.^k; Stem(k,yk) (2)正弦序列 y[k ] ? A sin(k? ? ? ) k=0:40; A=2; yk=A*sin(pi/6*k); Stem(k,yk,’filled’); (3)单位脉冲序列
y[k ] ? ? [k ] 方法 1: k=-50:50; delta=[zeros(1,50),1,zeros(1,50)]; Stem(k,delta) 方法 2: function x=dwxl(k) x=[k==0] 例: k=-40:40; x=dwxl(k); Stem(k,x); (3)单位脉冲序列 y[k ] ? ? [k ] 方法 3: function[x,k]=impseq(k0,k1,k2) %产生 x[k]=delta(k- k0);k1<=k0<=k2 k=[k1:k2];x=[(k-k0)==0] 例: [delta,k]=impseq(10,- 50,50); Stem(k,delta); (3)单位阶跃序列 y[k ] ? u[k ] 方法 1: k=-50:50; uk=[zeros(1,50),ones(1,51)]; Stem(k,uk) 方法 2: function x=jyxl(k) x=[k>=0] 例: k=-40:40; x=jyxl(k); stem(k,x); (3)单位阶跃序列 y[k ] ? u[k ] 方法 3: function[x,k]=stepseq(k0,k1,k2) %产生 x[k]=u(k-k0);k1<=k0<=k2 k=[k1:k2];x=[(k-k0)>=0]; 例: [uk,k]=stepseq(10,-50,50); stem(k,uk) 3 信号的基本运算 设 t f (t ) ? (1 ? ) ? [? (t ? 2) ? ? (t ? 2)] 2 ,求出 f (t ? 2),f (t ? 2),f (?t ),f (2t ) 并绘画出时域波形 syms t; f=sym('(t/2+1)*(heaviside(t+2)-heaviside(t- 2))'); subplot(2,3,1),ezplot(f,[-3,3]); title('f(t)'); grid; y1=subs(f,t,t+2); subplot(2,3,2),ezplot(y1,[-5,1]); title('f(t+2)'); grid; y2=subs(f,t,t-2); subplot(2,3,3),ezplot(y2,[-1,5]); title('f(t- 2)'); grid; y3=subs(f,t,-t); subplot(2,3,4),ezplot(y3,[-3,3]);
title('f(-2t)'); grid; y4=subs(f,t,2*t); subplot(2,3,5),ezplot(y4,[- 2,2]); title('f(2t)'); grid; 内容来自:甜梦文库更多"MATLAB 实验 1 信号的时域分析"相关资料请点击这里
分享到:
收藏