关于互相关函数的问题
相邻的两条信号进行互相关求时延,若有时延则进行平移对齐。相关代码如下:clear all;clc;close all;
x=';
=size(x);
Y(:,1)=x(:,1);
for j=2:4
Cc(:,j)=xcorr(x(:,j),Y(:,j-1)); %信号1为Y(:,j-1),信号2为x(:,j),相邻信号求互相关函数
=max(Cc(:,j)); %找出Cc的最大值及对应的t_max
l1=length(x(:,j));
l2=length(Y(:,j-1));
if(l1<l2)
certain_point=l2;
else
certain_point=l1;
end
sample_delay(1,j)=t_max(1,j)-certain_point; %计算与中心点相差的样点
if sample_delay(1,j)<0
Y(1:length(x(:,j))+abs(sample_delay(1,j)),j)=immove(x(:,j),0,-sample_delay(1,j)); %信号2以信号1(即前一信号)作为基准进行平移
else if sample_delay(1,j)>0
Y(1:length(x(:,j))-sample_delay(1,j),j)=immove(x(:,j),0,-sample_delay(1,j)); %immove是进行平移的一个函数
else Y(1:length(x(:,j)),j)=x(:,j);
end
end
end
j=3时,Y=
1 1 0
2 2 0
3 3 0
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
0 0 0
0 0 0
0 0 0
Cc是17×3的矩阵
而当j=4时,是Y(:,3)和x(:,4)进行互相关,Cc(:,4)的长度照道理应该是23,但之前是17,会出现如下错误
??? Subscripted assignment dimension mismatch.
请问应如何修改?思索了很久,不会,请各位大侠帮忙。 :-(我也遇到了这样的问题 呵呵,等待高手来解答啊
页:
[1]