线性卷积与圆周卷积的计算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.实验目的

1) 通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。

2) 掌握线性卷积与圆周卷积软件实现的方法,并验证两者之间的关系。

2.基本原理

线性卷积;圆周卷积;两个有限长序列的线性卷积;圆周卷积与线性卷积的关系。

3.实验内容及要求

已知两个有限长序列

X(n)= S (n)+2 -⑪+3 S -2)+4 S -3)+5 S (rt)

h(n)= S (n)+2-1S+(n S -2)+2 S (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('线性卷积');

线性卷积

1

1

T

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)%计算线性卷积

ny仁0:length(y1 n)-1;%分别计算x (n)和h ( n)的5点,6点,9点和10点圆周卷积

yc1=circ onv(xn,hn,N ⑴)

yc2=circo nv(x n,h n,N(2))

yc3=circo nv(x n,h n,N(3))

yc4=circonv(xn,hn,N(4))%分别作出线性卷积和取不同点数的圆周卷积的图像比较

subplot(1,2,1)

stem (n y1,y1 n);

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 len gth(x)>N

error('x 的长度必须小于 N'); end x=[x,zeros(1,N-le ngth(x))]; n=[0:1:N-1];

y=x(mod( n-m,N)+1);

线性卷积

2 4 时间序号n 8

4 J I T" ^12 0 8 6 4 2

20

4

1

12 3 4

时间序号n

线性卷积 2

4

6

时间序号n

O 8 € 4 2 O 8 6 4 2C

O

2

d i 1— 1— 1

6点圆周卷积

线性卷积 c 0864208642

2 d i 1 1— 1

9,点圆周卷

相关文档
最新文档