信号分析在matlab中的实现
《信号与系统仿真实验》
指导书
实验一
信号的产生与时域运算
一、实验目的
1. 掌握用matlab软件产生基本信号的方法.
2.应用matlab软件实现信号的加、减、乘、反褶、移位、尺度变换及卷积运算。
二、实验原理
(一)产生信号波形的方法
利用Matlab软件的信号处理工具箱(Signal Processing Toolbox)中的专用函数产生信号并绘出波形。
a.产生正弦波
t=0:0.01:3*pi;
y=sin(2*t);
plot(t,y)
b.产生叠加随机噪声的正弦波
t=0:0.01:3*pi;
y=10*sin(2*t);
s=y+randn(size(t));
plot(t,s)
c. 产生周期方波
t=0:0.01:1;
y=square(4*pi*t);
plot(t,y)
d. 产生周期锯齿波
t=(0:0.001:2.5);
y=sawtooth(2*pi*30*t);
plot(t,y),axis([0 0.2 -1 1])
e.产生Sinc函数
x=linspace(-5,5);
y=sinc(x);
plot(x,y)
f.产生指数函数波形
x=linspace(0,1,100);
(或x=0:0.01:1;)
y=exp(-x);
plot(x,y)
(二)信号的运算
1.加(减)、乘运算
要求二个信号序列长度相同.例
t=0:0.01:2;
f1=exp(-3*t);
f2=0.2*sin(4*pi*t);
f3=f1+f2;
f4=f1.*f2;
subplot(2,2,1);plot(t,f1);title('f1(t)');
subplot(2,2,2);plot(t,f2);title('f2(t)');
subplot(2,2,3);plot(t,f3);title('f1+f2');
subplot(2,2,4);plot(t,f4);title('f1*f2');
2.用matlab的符号函数实现信号的反褶、移位、尺度变换.
由f(t)到f(-at+b)(a>0)步骤:
例:已知f(t)=sin(t)/t,试通过反褶、移位、尺度变换由f(t)的波形得到f(-2t+3) 的波形.
syms t;
f=sym('sin(t)/t'); %定义符号函数f(t)=sin(t)/t
f1=subs(f,t,t+3); %对f进行移位
f2=subs(f1,t,2*t); %对f1进行尺度变换
f3=subs(f2,t,-t); %对f2进行反褶
subplot(2,2,1);ezplot(f,[-8,8]);grid on;
% ezplot是符号函数绘图命令
subplot(2,2,2);ezplot(f1,[-8,8]);grid on;
subplot(2,2,3);ezplot(f2,[-8,8]);grid on;
subplot(2,2,4);ezplot(f3,[-8,8]);grid on;
(注:也可用一条指令:subs(f,t,-2*t+3)实现f(t)到f(-2t+3)的变换)
(三) 卷积运算
Y=conv(x,h)
实现x,h二个序列的卷积,假定都是从n=0开始.Y序列的长度为x,h序列的长度之和再减1.
例1:二个方波信号的卷积.
y1=[ones(1,20),zeros(1,20)];
y2=[ones(1,10),zeros(1,20)];
y=conv(y1,y2);
n1=1:length(y1);
n2=1:length(y2);
L=length(y)
subplot(3,1,1);plot(n1,y1);axis([1,L,0,2]);
subplot(3,1,2);plot(n2,y2);axis([1,L,0,2]);
n=1:L;
subplot(3,1,3);plot(n,y);axis([1,L,0,20]);
例2:二个指数信号的卷积.
t=0:0.01:1;
y1=exp(-6*t);
y2=exp(-3*t);
y=conv(y1,y2);
l1=length(y1)
l2=length(y2)
l=length(y)
subplot(3,1,1);plot(t,y1);
subplot(3,1,2);plot(t,y2);
t1=0:0.01:2;
subplot(3,1,3);plot(t1,y);
三、实验内容
自选二个简单的信号,进行加、乘、卷积运算.
自选一个简单的信号进行反褶、平移、尺度变换运算.
四、实验要求
1.预习实验原理;
2.对实验内容编写程序(M文件),上机运行;
3.绘出运算或变换后信号的波形.
t=0:0.01:2;
f1=-6*t;
f2=0.2*cos(4*pi*t);