马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
相邻的两条信号进行互相关求时延,若有时延则进行平移对齐。相关代码如下:
clear all;clc;close all;
x=[1:9;1:9;4:9 0 0 0;0 0 0 4:9]';
[m,n]=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),相邻信号求互相关函数
[y_max(1,j),t_max(1,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.
请问应如何修改?思索了很久,不会,请各位大侠帮忙。 |