estimate.m
来自「频谱感知 多用户合作 能量检测 伪随机序列」· M 代码 · 共 32 行
M
32 行
function [l,threshold]=estimate(rr,S)
% 循环周期数S,可改为 20,40,80
k=fix(length(rr)/S); % 相关延时,可改
y=[zeros(1,k), rr];
N=fix(length(rr)/S); % 循环周期长度:2048,1024,512,204,102,51,25,12
q=fix(N); % 采样点数,可改为N或N的整数分之一
for n=1:q
for s=1:S
%Cxx(n,s) = xcorr(rr(n+(s-1)*N),'unbiased');
Cxx(n,s) =(rr(n+(s-1)*N))*(rr(n+(s-1)*N));
end
Cxx1(n) = sum(Cxx(n,:))/S;
Cxx_ave = mean(Cxx1(1,:));
Cxx2 = Cxx1-Cxx_ave;
end
for m=1:q
for s=1:S
%Cyy(m,s) = xcorr(y(m+(s-1)*N),'unbiased');
Cyy(m,s) =(y(m+(s-1)*N))*(y(m+(s-1)*N));
end
Cyy1(m) = sum(Cyy(m,:))/S;
end
COV = xcov(Cxx1,Cyy1);
lj=fix(sqrt(length(COV)));
li = length(COV(1:lj^2));
COV=reshape(COV(1:lj^2),lj,lj);
Cxx3=reshape(Cxx2(1:lj),1,lj);
l = S * Cxx3*inv(COV)*Cxx3'
threshold=chi2inv(0.7,q); % 原算法的固定阈值
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?