function [FrameStart]=FrameDetectionTD_OFDMA(NoisedFrame)
N=2048;
L=round(N/3);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1st Frame
Buffer_corr=zeros(1,2*L);
%Len=length(NoisedFrame);
Buffer_sum=zeros(1,2*L);
Len=6000;
%**************互相关
for k=1:1:Len
Buffer_corr(1:2*L-1)=Buffer_corr(2:2*L);
Buffer_corr(2*L)=NoisedFrame(k);
TempAccu(k)=Buffer_corr(1:L)*Buffer_corr(L+1:2*L)';
Normalization(k)=0.5*sum(abs(Buffer_corr).^2);
TempAccu(k)=(abs(TempAccu(k))^2)/Normalization(k);
end
Accu(1:Len-2*L+1)=TempAccu(2*L:Len); %%%%%%% 减掉由于 Buffer 移位操作对序号位置的影响
%for k=1:1:Len-2*L+1
% Buffer_sum(1:2*L-1)=Buffer_sum(2:2*L);
% Buffer_sum(2*L)=Accu(k);
% TempAccusum(k)=sum(Buffer_sum);
%end
%Accusum(1:Len-4*L+2)=TempAccusum(2*L:Len-2*L+1); %%%%%%% 减掉由于 Buffer 移位操作对序号位置的影响
for k=1:1:Len-2*L+1-1200+1
Accusum(k)=sum(Accu(k:k+1200-1));
end
%%%%%%% 输出的峰值位置对应一个 Short Preamble 的最后一个码片
figure;
plot(abs(TempAccu),'b');
figure;
plot(abs(Accu),'b');
figure;
%plot(abs(TempAccusum),'b');
figure;
plot(abs(Accusum),'b');
%[max,index]=max(abs(TempAccusum))
[max,index1]=max(abs(Accusum))
FrameStart=index1
评论0