实验2相关与褶积实验报告.docVIP

  • 18
  • 0
  • 约2.67千字
  • 约 8页
  • 2016-08-23 发布于河南
  • 举报
实验2相关与褶积实验报告

实验二 相关和褶积 实验题目: 已知两个序列:X=(1,2,3,4,5,6,7);Y=(7,6,5,4) 做褶积与相关,并画出图像。并根据计算结果理解相关和褶积的区别和联系。 实验内容: 1.做序列X、Y的褶积和相关 褶积的计算公式:X(n)=∑h(m)×x(n-m) 相关的计算公式:rxy(m)=∑y(n)×x(n+m) (1)根据计算公式,褶积的源程序如下: function C =convolution(A,B) M=length(A); N=length(B); C=zeros(1,N+M-1); for n=2:(M+N) k1=min(n-1,M); %根据求和表达式,=k=M k2=max(n-N,1); %1=n-k=N for k=k2:1:k1; %确定k的取值范围 C(n-1)=C(n-1)+A(k)*B(n-k); end end 由于在matlab中数组下标是从1开始的,所以有效长度为2---11,为10=7+4-1(褶积长度为L=M+N-1); 运行程序,得褶积运算结果: (2)根据计算公式,实现相关的源程序如下: function D =correlation(A,B) M=length(A); N=length(B); D=zeros(1,M+N-1); for n=(-N+1):M-1 s1=max(1,1-n); s2=min(M-n,N); for s=s1:s2 D(n+N)=D(n+N)+A(n+s)*B(s); end end 运行程序,得相关运算结果: 2.褶积和相关的对比分析 (1)用系统自带程序运算验证 1’褶积的源程序与系统自带conv函数对比: 输出数据对比: convolution(A,B) ans = 7 20 38 60 82 104 126 92 59 28 conv(A,B) ans = 7 20 38 60 82 104 126 92 59 28 显然,输出数据是相等的,说明设计的褶积程序算法与系统自带的算法一致,不存在延迟。两函数图像如图所示: 2’ 相关的源程序与系统自带xcorr函数对比: 输出数据对比 correlation(A,B) ans = 4 13 28 50 72 94 116 106 84 49 xcorr(A,B) ans = Columns 1 through 10 0 0 0 4.0000 13.0000 28.0000 50.0000 72.0000 94.0000 116.0000 Columns 11 through 13 106.0000 84.0000 49.0000 观察输出数据可知,用xcorr函数作离散互相关运算时,当x, y是不等长向量时,短的向量会自动填0与长的对齐,运算结果是行向量还是列向量就与x一样 (2)褶积和相关的振幅谱与相位谱研究 1’振幅谱 编写源程序如下: N=10; n=[1:10]; k=[1:10]; q(k)=D*exp(-j*2*pi/N).^(n*k);% q(k)=C *exp(-j*2*pi/N).^(n*k) a=abs(q); plot(a,k),title(振幅谱),grid on; 利用DFT实现离散褶积运算和离散相关运算,分析振幅谱。运行程序得下图: 褶积和相关的振幅是相等的,实际上褶积和相关运算都是振幅谱相乘。 2’相位谱 编写源程序如下: N=10; n=[1:10]; k=[1:10]; q(k)=D*exp(-j*2*pi/N).^(n*k);% q(k)=C *exp(-j*2*pi/N).^(n*k) a=abs(q); p=angle(q); p=180/pi*p; plot(p,k),title(相位谱),grid on; 利用DFT实现离散褶积运算和离散相关运算,分析相关谱。运行程序得下图: 与振幅谱不同,褶积和相关的相位谱是不同的,实际上褶积是相位谱相加,相关是相位谱相减。 实际上,褶积与相关都是一种线性滤波。褶积是振幅谱相乘,相位谱相加相关是振幅谱相乘,相位谱相减 附录 相关和褶积的源程序 clear clf A=[1 2 3 4 5

文档评论(0)

1亿VIP精品文档

相关文档