MATLAB离散卷积的实现_自己编写代码_实现两列数的卷积

一、实验目的

1.了解熟悉MATLAB中conv、filter函数的使用;

2.回忆卷积,深入了解conv原理,从差分方程和矩阵两个角度重构conv函数。

二、实验原理

卷积是两个变量在某范围内相乘后求和的结果。如果卷积的变量是序列和x[n]和h[n],则卷积的结果

 

其中星号*表示卷积。当时序n=0时,序列h[-i]是h[i]的时序i取反的结果;时序取反使得h[i]以纵轴为中心翻转180度,所以这种相乘后求和的计算法称为卷积和,简称卷积。另外,n是使h[-i]位移的量,不同的对应不同的卷积结果。

三、实验设计及操作

1、使用conv函数求卷积;

2、使用filter函数求卷积;

3、使用差分方程求卷积;

4、使用循环差分方程求卷积;

5、利用循环差分方程构造myconv1函数求卷积;

6、利用矩阵构造myconv2函数求卷积。

四、实验结果及分析

 

除了由filter函数求解的y2外,其他结果一致,说明各段代码编写正确。

相比于其他结果的5个结果,fliter取的是前三个结果而非后三个,这是出于实际工程中需要实时低延时输入输出的需要而设计的。

五、实验总结和提升

了解了MATLAB中卷积的实现,为日后的其他信号处理打下基础。

六、源代码

1.	clear  
2.	clc  
3.	close all  
4.	y1=conv([1,2,3],[4,5,6]);  
5.	y2=filter([4,5,6],1,[1,2,3]);  
6.	  
7.	  
8.	x(1:8)=[0,0,1,2,3,0,0,0];  
9.	y3(1:5)=[0,0,0,0,0];  
10.	for n=3:7  
11.	    y3(n-2)=4*x(n)+5*x(n-1)+6*x(n-2);  
12.	end  
13.	  
14.	x=[0,0,0,4,5,6,0,0,0];  
15.	h=[1,2,3];  
16.	y4=zeros(1,5);  
17.	for n = 1:5  
18.	    for m = 1:3  
19.	    y4(n)= y4(n)+x(n+m)*h(4-m);  
20.	    end  
21.	end  
22.	  
23.	%%%%%%%%%%%%%%%%%%%%%  
24.	y5=myconv1([4,5,6],[1,2,3]);  
25.	y6=myconv2([4,5,6],[1,2,3]);  
26.	function y=myconv1(x,h)  
27.	    hl=length(h);  
28.	    xl=length(x);  
29.	    x=[zeros(1,hl),x,zeros(1,hl)];  
30.	    y=zeros(1,xl+hl-1);  
31.	    for n=1:xl+hl-1  
32.	        for m=1:hl  
33.	            y(n)=y(n)+x(n+m)*h(hl+1-m);  
34.	        end  
35.	    end  
36.	end  
37.	  
38.	function y=myconv2(x,h)  
39.	hL=length(h);  
40.	if size(x,2)==1,x=x';end  
41.	x=[zeros(1,hL-1),x,zeros(1,hL-1)];  
42.	  
43.	if size(h,2)==1,h=h';end  
44.	X=buffer(x,hL,hL-1,'nodelay');  
45.	h=flip(h);  
46.	y=h*X;  
47.	end 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋时的雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值