- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.实验目的
通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。
掌握线性卷积与圆周卷积软件实现的方法,并验证两者之间的关系。
2.基本原理
线性卷积;圆周卷积;两个有限长序列的线性卷积;圆周卷积与线性卷积的关系。
3.实验内容及要求
已知两个有限长序列
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)。
2.编制一个计算圆周卷积的通用程序,计算上述4种情况下两个序列x(n)与h(n)的圆周卷积。
3.上机调试并打印或记录实验结果。
4.将实验结果与预先笔算的结果比较,验证真确性。
4.相应程序及图像
1)编制一个计算两个序列线性卷积的通用程序,计算x(n)*h(n).
clear all;
xn=[1 2 3 4 5];
hn=[1 2 1 2];
yln=conv(xn,hn);
ny=[0:1:length(yln)-1];
stem(ny,yln);
xlabel(时间序号n);
ylabel(信号幅度);
title(线性卷积);
2)编制一个计算圆周卷积的通用程序,计算上述4种情况下两个序列x(n)与h(n)的圆周卷积。
主程序:
clear all
clc
N=[5 6 9 10];%圆周卷积的长度向量
xn=[1 2 3 4 5];
hn=[1 2 1 2];
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点圆周卷积);
2.圆周卷积的函数
function yc=circonv(x1,x2,N)
if length(x1)N
error(N必须大于等于x1的长度);
end
if length(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);
for n=1:1:N
H(n,:)=cirshiftd(x2,n-1,N);
end
yc=x1*H;
3.实现圆周移位的函数
function y=cirshiftd(x,m,N)
if length(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);
5.思考题
1)线性卷积的运算步骤一般可分为哪几个部分?圆周卷积的运算步骤一般可分为哪几个部分?比较两者之间的异同。
线性卷积:翻转,移位,相乘,相加;
圆周卷积:翻转,移位,相乘,相加,取主值;
文档评论(0)