• 大小: 655B
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: Matlab
  • 标签: Matlab  

资源简介

由于MATLAB本身自带的相关函数在扩频通信中并不适合,性能欠佳。本程序是我自己编写的求自相关或互相关的MATLAB函数。可直接调用该函数。已通过验证。

资源截图

代码片段和文件信息

function [my_xcorr]=myxcorr(msequence_Imsequence_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(1Lq)msequence_Izeros(1Lq)];          % 构造新的序列
msequence_Q_new=[msequence_Qzeros(1Li+Lq)];                   % 构造新的序列
Lqq=length(msequence_Q_new);
for t=1:1:Lq+Li;
    msequence_Q_NEW=[zeros(1t)msequence_Q_new(1:Lqq-t)];      % 非循环右移,左边补零
    out=msequence_I_new.*msequence_Q_NEW;                       % 对应的矩阵点乘
    sumout(t)=sum(out);                                         % 求和,计算对齐的1元素的个数
    my_xcorr(t)=sumout(t)/min(LiLq);                           % 归一化,相关函数最大值为1
end
clear (‘t‘);                         % 该变量以后用不到,释放内存
clear (‘msequence_I_new‘);           % 该变量以后用不到,释放内存
clear (‘msequence_Q_new‘);           % 该变量以后用不到,释放内存
clear (‘msequence_Q_NEW‘);           % 该变量以后用不到,释放内存
clear (‘t‘);                         % 该变量以后用不到,释放内存
clear (‘out‘);                       % 该变量以后用不到,释放内存
clear (‘sumout‘);                    % 该变量以后用不到,释放内存

end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1508  2013-03-30 20:50  myxcorr.m

----------- ---------  ---------- -----  ----

                 1508                    1


评论

共有 条评论