实验三线性卷积与圆周卷积的计算.docx
- 文档编号:10106700
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:12
- 大小:184.52KB
实验三线性卷积与圆周卷积的计算.docx
《实验三线性卷积与圆周卷积的计算.docx》由会员分享,可在线阅读,更多相关《实验三线性卷积与圆周卷积的计算.docx(12页珍藏版)》请在冰豆网上搜索。
实验三线性卷积与圆周卷积的计算
电信类课程试验报告
学院:
基础信息工程
系别:
电子信息工程
课程名称:
数字信号处理
姓名:
学号:
日期:
实验三
实验名称:
线性卷积与圆周卷积的计算
一、实验目的
(1)通过编程,上机调试程序,进一不增强使用计算机解决问题的能力。
(2)掌握线性卷积与圆周卷积软件实现的方法,并实验两者之间的关系。
二、主要函数简介
对于无限长序列不能用MATLAB直接计算线性卷积,在MATLAB内部只能提供了一个conv函数计算两个有限长序列的线性卷积。
对于圆周卷积MATLAB内部没有提供现成的函数,我们可以按照定义式直接编程计算。
计算两个有限长序列的线性卷积函数:
y(n)=conv(x,h)
输入参数:
x,h为已知两个有限长序列矢量。
输出参数:
y为线性卷积所的序列矢量。
三、实验内容及要求
已知两个有限长序列:
x(n)=δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)
h(n)=δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)
(1)实验前,预先笔算好这两个序列的线性卷积及下列几种情况的圆周卷积
①x(n)⑤h(n)②x(n)⑥h(n)③x(n)⑨h(n)④x(n)⑽h(n)
(2)编制一个计算两个序列线性卷积的通用程序,计算x(n)*h(n).
(3)编制一个计算圆周卷积的通用程序,计算上述4种情况下两个序列x(n)与h(n)的圆周卷积。
(4)上机调试并打印或记录实验结果。
注:
可在一个程序中用菜单形式实现上述两种卷积的计算。
(5)将实验结果与预先笔算的结果比较,验证其真确性。
首先定义圆周卷积的函数,保存为.m文件。
functionyc=circonv(x1,x2,N)
iflength(x1)>N
error('N必须大于等于x1的长度');
end
iflength(x2)>N
error('N必须大于等于x2的长度');
end
x1=[x1,zeros(1,N-length(x1))];
x2=[x2,zeros(1,N-length(x2))];
n=[0:
N-1];
x2=x2(mod(-n,N)+1);
H=zeros(N,N);
forn=1:
1:
N
H(n,:
)=cirshiftd(x2,n-1,N);
end
yc=x1*H';
再次定义圆周移位的函数,保存为.m文件。
functiony=cirshiftd(x,m,N)
iflength(x)>N
error('x的长度必须小于N');
end
x=[x,zeros(1,N-length(x))];
n=[0:
1:
N-1];
y=x(mod(n-m,N)+1);
在此基础上运行MATLAB函数:
(1)
①x(n)⑤y(n)
clearall;
N1=5;
N2=4;
xn=[12345];
hn=[1212];
yln=conv(xn,hn);
ycn=circonv(xn,hn,5);
ny1=[0:
1:
length(yln)-1];
ny2=[0:
1:
length(ycn)-1];
subplot(2,1,1);
stem(ny1,yln);
ylabel('线性卷积');
subplot(2,1,2);
stem(ny2,ycn);
ylabel('圆周卷积');
②x(n)⑥y(n)
clearall;
N1=5;
N2=4;
xn=[12345];
hn=[1212];
yln=conv(xn,hn);
ycn=circonv(xn,hn,6);
ny1=[0:
1:
length(yln)-1];
ny2=[0:
1:
length(ycn)-1];
subplot(2,1,1);
stem(ny1,yln);
ylabel('线性卷积');
subplot(2,1,2);
stem(ny2,ycn);
ylabel('圆周卷积');
③x(n)⑨y(n)
clearall;
N1=5;
N2=4;
xn=[12345];
hn=[1212];
yln=conv(xn,hn);
ycn=circonv(xn,hn,9);
ny1=[0:
1:
length(yln)-1];
ny2=[0:
1:
length(ycn)-1];
subplot(2,1,1);
stem(ny1,yln);
ylabel('线性卷积');
subplot(2,1,2);
stem(ny2,ycn);
ylabel('圆周卷积');
④x(n)⑩y(n)
clearall;
N1=5;
N2=4;
xn=[12345];
hn=[1212];
yln=conv(xn,hn);
ycn=circonv(xn,hn,10);
ny1=[0:
1:
length(yln)-1];
ny2=[0:
1:
length(ycn)-1];
subplot(2,1,1);
stem(ny1,yln);
ylabel('线性卷积');
subplot(2,1,2);
stem(ny2,ycn);
ylabel('圆周卷积');
(2)(3)
clearall
clc
N=[56910];%圆周卷积的长度向量
xn=[12345];
hn=[1212];
y1n=conv(xn,hn)%计算线性卷积
ny1=0:
length(y1n)-1;
%分别计算x(n)和h(n)的5点,6点,9点和10点圆周卷积
yc1=circonv(xn,hn,N
(1))
yc2=circonv(xn,hn,N
(2))
yc3=circonv(xn,hn,N(3))
yc4=circonv(xn,hn,N(4))
%分别作出线性卷积和取不同点数的圆周卷积的图像比较
subplot(1,2,1)
stem(ny1,y1n);
xlabel('时间序号n');
ylabel('信号幅度');
title('线性卷积');
subplot(1,2,2)
stem(0:
N
(1)-1,yc1);
xlabel('时间序号n');
ylabel('信号幅度');
title('5点圆周卷积');
figure
subplot(1,2,1)
stem(ny1,y1n);
xlabel('时间序号n');
ylabel('信号幅度');
title('线性卷积');
subplot(1,2,2)
stem(0:
N
(2)-1,yc2);
xlabel('时间序号n');
ylabel('信号幅度');
title('6点圆周卷积');
figure
subplot(1,2,1)
stem(ny1,y1n);
xlabel('时间序号n');
ylabel('信号幅度');
title('线性卷积');
subplot(1,2,2)
stem(0:
N(3)-1,yc3);
xlabel('时间序号n');
ylabel('信号幅度');
title('9点圆周卷积');
figure
subplot(1,2,1)
stem(ny1,y1n);
xlabel('时间序号n');
ylabel('信号幅度');
title('线性卷积');
subplot(1,2,2)
stem(0:
N(4)-1,yc4);
xlabel('时间序号n');
ylabel('信号幅度');
title('10点圆周卷积');
四、实验小结
五、教师评语
教师签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 线性 卷积 圆周 计算