yannai 发表于 2009-7-6 09:43

关于互相关函数的问题

相邻的两条信号进行互相关求时延,若有时延则进行平移对齐。相关代码如下:
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.
   请问应如何修改?思索了很久,不会,请各位大侠帮忙。

xiebian 发表于 2013-9-19 15:34

:-(我也遇到了这样的问题

zsvsdq 发表于 2014-12-18 17:23

呵呵,等待高手来解答啊
页: [1]
查看完整版本: 关于互相关函数的问题