信号的基本运算和波形变换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号的基本运算和波形变换
一、实验目的
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);
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)步骤:
b)at f(b)f(at b)f(t f(t)反褶尺度移位+-−−→−+−−→−+−−→−
例:已知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. 自选一个简单的信号进行反褶、平移、尺度变换运算.
四、实验要求
1.预习实验原理;
2.对实验内容编写程序(M 文件),上机运行;
3.绘出运算或变换后信号的波形.
五、思考题
1. Matlab 的仿真特点
2. conv 卷积的函数实现与理论值之间的关系。
实验二、波的合成与分解
一、实验内容
对图所示的周期为4的信号进行分析
二、实验要求
在Matlab 环境下,编程实现图1 所示的连续周期信号f(t)的傅立叶级数,并进行普分析。
三、程序及运行结果
(一)对图1进行傅立叶级数展开
(1).由于在一个T 内,f(t)为奇函数,所以其傅立叶级数展开式仅含有sin()项;并且f(t)为奇谐函数,因而含有正弦函数的奇次分量。则不难求得:
])sin(1)5sin(51)3sin(31)[sin(4)( +Ω++Ω+Ω+Ω∏=t n n
t t t t f n=1,3,5… (详见课本P123)
任何周期函数的傅立叶级数展式,是其最小误差近似式。在合成波的间断点,存在9%偏差,称之为吉布斯(Gibbs )现象。
(2).根据上式,编程验证如下:
Ts=4
t=-10:0.01:10;
xt1=0;
for n=1:2:10
xt1=((sin(n*2*pi*t/Ts))/n)*4/pi+xt1;
end
%subplot(1,2,1)
plot(t,xt1)
xlabel('t');
ylabel('cos(2*pi*t)+cos(pi*t)');
grid
运行结果:
(a)当for 语句为for n=1:2:5时,程序运行结果为: