信号的基本运算和波形变换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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时,程序运行结果为:

相关文档
最新文档