function [my_xcorr]=myxcorr(msequence_I,msequence_Q);
% 本函数是用来求自相关函数或互相关函数的
% 输入:两个0、1序列,俩序列长度可以不一样
% 输出是自相关或互相关的值
% 将数据码变成双极性码,0->-1, 1-> 1
msequence_I= (-1).^(msequence_I+1); % 将数据码变成双极性码,0->-1, 1-> 1
msequence_Q= (-1).^(msequence_Q+1); % 将数据码变成双极性码,0->-1, 1-> 1
Li=length(msequence_I);
Lq=length(msequence_Q);
msequence_I_new=[zeros(1,Lq),msequence_I,zeros(1,Lq)]; % 构造新的序列
msequence_Q_new=[msequence_Q,zeros(1,Li+Lq)]; % 构造新的序列
Lqq=length(msequence_Q_new);
for t=1:1:Lq+Li;
msequence_Q_NEW=[zeros(1,t),msequence_Q_new(1:Lqq-t)]; % 非循环右移,左边补零
out=msequence_I_new.*msequence_Q_NEW; % 对应的矩阵点乘
sumout(t)=sum(out); % 求和,计算对齐的1元素的个数
my_xcorr(t)=sumout(t)/min(Li,Lq); % 归一化,相关函数最大值为1
end
clear ('t'); % 该变量以后用不到,释放内存
clear ('msequence_I_new'); % 该变量以后用不到,释放内存
clear ('msequence_Q_new'); % 该变量以后用不到,释放内存
clear ('msequence_Q_NEW'); % 该变量以后用不到,释放内存
clear ('t'); % 该变量以后用不到,释放内存
clear ('out'); % 该变量以后用不到,释放内存
clear ('sumout'); % 该变量以后用不到,释放内存
end
评论7
最新资源