用计算机计算线性卷积的基本规则,实验三_线性卷积与圆周卷积的计算.doc

实验三_线性卷积与圆周卷积的计算

电信类课程试验报告

学 院:基础信息工程系 别:电子信息工程课程名称:数字信号处理姓 名:学 号:日 期:实验三实验名称:线性卷积与圆周卷积的计算一、实验目的

(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文件。

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';

再次定义圆周移位的函数,保存为.m文件。

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);

在此基础上运行MATLAB函数:

(1)

① x(n)⑤y(n)

clear all;

N1=5;

N2=4;

xn=[1 2 3 4 5];

hn=[1 2 1 2];

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)

clear all;

N1=5;

N2=4;

xn=[1 2 3 4 5];

hn=[1 2 1 2];

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)

clear all;

N1=5;

N2=4;

xn=[1 2 3 4 5];

hn=[1 2 1 2];

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)

clear all;

N1=5;

N2=4;

xn=[1 2 3 4 5];

hn=[1 2 1 2];

yln

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值