信号与系统实验实验三:信号的卷积
小组成员:
黄涛13084220
胡焰焰13084219
洪燕东13084217
一、实验目的
1. 理解卷积的物理意义;
2. 掌握运用计算机进行卷积运算的原理和方法;
3. 熟悉卷积运算函数conv的应用;
二、预习内容
1. 卷积的定义及物理意义;
2. 卷积计算的图解法;
3. 卷积的应用
三、实验原理说明
1.卷积的定义
连续时间和离散时间卷积的定义分别如下所示:
2.卷积的计算
由于计算机技术的发展,通过编程的方法来计算卷积积分和卷积和已经不再是冗繁的工作,并可以获得足够的精度,因此信号的时域卷积分析法在系统分析中得到了广泛的应用。
卷积积分的数值运算可以应用信号的分段求和来实现,即:
数值运算只求当时的信号值,则由上式可以得到:
上式中实际上就是连续信号等间隔均匀抽样的离散序列的卷积和,当足够小的时候就是信号卷积积分的数值近似。
因此,在利用计算机计算两信号卷积积分时,实质上是先将其转化为离散序列,再利用离散卷积和计算原理来计算。
3.卷积的应用
3.1 求解系统响应
卷积是信号与系统时域分析的基本手段,主要应用于求解系统响应,已知一LTI系统的单位冲激响应和系统激励信号则系统响应为激励与单位冲激响应的卷积。
需要注意的是利用卷积分析方法求得的系统响应为零状态响应。
3.2 相关性分析
相关函数是描述两个信号相似程度的量。
两信号之间的相关函数一般称之为互相关函数或者互关函数,定义如下:
若是同一信号,此时相关函数称为自相关函数或者自关函数:
对于相关函数与卷积运算有着密切的联系,由卷积公式与相关函数比较得:
可见,由第二个信号反转再与第一个信号卷积即得到两信号的相关函数。
4.涉及的Matlab函数
4.1 conv函数
格式w = conv(u,v),可以实现两个有限长输入序列u,v的卷积运算,得到有限冲激响应系统的输出序列。
输出序列长度为两个输入序列长度和减一。
四、实验内容
给定如下因果线性时不变系统:
y[n]+0.71y[n-1]-0.46y[n-2]-0.62y[n-3=0.9x[n]-0.45x[n-1]+0.35x[n-2]+0.002x[n-3]
(1)不用impz函数,使用filter命令,求出以上系统的单位冲激响应h[n]的前20个样本;
clc;
N = 0:19;
n = (N==0);
num = [0.9 -0.45 0.35 0.002];
den = [1 0.71 -0.46 -0.62];
h = filter(num,den,n);%单位冲激响应
subplot(2,1,1);
stem(N,h);
xlabel('样本n');ylabel('振幅');
title('单位冲激响应');
(2)得到h[n]后,给定x[n],计算卷积输出y[n];并用滤波器h[n]对输入x[n]滤波,求得y1[n]; x=[1 -2 3 -4 3 2 1];%输入序列
y=conv(h,x);%h由(1)中filter命令求出
n=0:25;
subplot(2,1,1);
stem(n,y);
xlabel(‘时间序号n’);ylabel(‘振幅’);
title(‘用卷积得到的输出’);grid;
x1=[x zeros(1,19)];
y1=filter(h,1,x1);
subplot(2,1,2);
stem(n,y1);
xlabel(‘时间序号n’);ylabel(‘振幅’);
title(‘用滤波得到的输出’);grid;
(2)y[n]和)y1[n]有差别吗?为什么要对x[n]进行补零得到的x1[n]来作为输入来产生y1[n]?
y[n]和)y1[n]是对同一个系统输入的响应,该系统是因果线性时不变系统,所以y[n]和)y1[n]没有差别;对x[n]补零后得到的x1[n]作为输入来产生y1[n]是因为filter函数产生的输入和输出序列长度相同,而两信号卷积后所得的长度为这两个信号长度之和减1(即为使得y[n]和y1[n]长度相同)。
(3)思考:设计实验,证明下列结论
①单位冲激信号卷积:,
clc;
n=0:20;
d=[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ];
f=sin(n);
f1=conv(d,f);
subplot(3,1,1);
f1=f1(1:21);
stem(n,f1);
grid;
subplot(3,1,2);
stem(n,f);
grid;
subplot(3,1,3);
stem(n,f-f1);
grid;
clc;
n = 0:20;
d = [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ];
f = sin(n);
f1 = conv(d,f);
f1 = f1(1:21);
subplot(2,1,1);
stem(n,f1);
f=[zeros(1,3) f];
f=f(1:21);
subplot(2,1,2);
stem(n,f);
②卷积交换律clc;
n=0:30;
f1=sin(n);
f2=cos(n);
y1=conv(f1,f2);
y1=y1(1:31);
y2=conv(f2,f1);
y2=y2(1:31); subplot(3,1,1); stem(n,y1);
grid;
subplot(3,1,2); stem(n,y2);
grid;
subplot(3,1,3);
y3=(y1-y2)>10^-14; stem(n,y3);
grid;
③卷积分配律
clc;
n=1:50;
f1=(-1).^n;
f2=cos(n);
f3=sin(n);
y1=conv(f1,(f2+f3));
y1=y1(1:50);
y2=conv(f1,f2)+conv(f1,f3); y2=y2(1:50);
subplot(3,1,1);
stem(n,y1);
title('f1*[f2+f3]');
grid;
subplot(3,1,2);
stem(n,y2);
title('f1*f2+f1*f3');
grid;
subplot(3,1,3);
y3=(y1-y2)>10^-14;
stem(n,y3);
title('f1*[f2+f3]-f1*f2+f1*f3'); grid;。