📄 modifiedwiener.m
字号:
%function for wiener SAPSP
function [AirData, BitData] = ModifiedWiener (AirParam, BitParam)global Z;global alg;global sys;global env;global n;cisoid_S = exp(-j*2*pi*[1:alg.nRzzSym]*AirParam.FO/sys.rate).' ;
lower = 1 + alg.beginRzzSym*sys.over;upper = lower + alg.nRzzSym*sys.over - 1;uwstart = 8 + 1 + 6*sys.over;if( alg.UWWeights == 1 ) dUWZ = Z(uwstart+round(AirParam.TO):sys.over:(uwstart+10*sys.over)+round(AirParam.TO)-1,:) .* ... (cisoid_S(1:10) * ones(1,sys.nAnt)) ; RzzUW = dUWZ'*dUWZ;
invRzzUW = inv(RzzUW);
% invRzzUW = inv(RzzUW+(abs(trace(RzzUW))*10e-2)*eye(4)); wStart = invRzzUW * (dUWZ'*BitParam.uwref) ;endwTrack = wStart ;
cisoid_S = exp(-j*2*pi*[1:sys.nSym]*AirParam.FO/sys.rate).' * ones(1,sys.nAnt) ; dZ = Z(1+round(AirParam.TO):sys.over:1+round(AirParam.TO)+sys.over*(sys.nSym-1),:) ; dZ = dZ .* cisoid_S ; zTrack = dZ * wTrack; BitData.bits = phs_demod_mex(zTrack.',1,sys.tracking) ; [BitData.S_uwe, BitData.S_crce, BitData.S_type, BitData.S_info] = ... PayloadExtract_mex(BitData.bits,0,-1,-1,sys.keyS) ; [BitData.I_uwe, BitData.I_crce, BitData.I_type, BitData.I_info] = ... PayloadExtract_mex(BitData.bits,0,-1,-1,sys.keyI) ; switch alg.FreqAlignEstMode case 'normal' cisoid_S = exp(-j*2*pi*[1:alg.nFreqEstSym*sys.over]*AirParam.FO / ... (sys.over*sys.rate)).' ; lower = 1 + alg.beginFreqEstSym*sys.over; upper = lower + alg.nFreqEstSym*sys.over - 1; dZ = Z(lower:upper,:) .* (cisoid_S * ones(1,sys.nAnt)); z = dZ * wTrack ; [AirData.TO, AirData.FO] = Freq_Time_Recovery(z, sys.over, sys.rate); case 'perfect' AirData.TO = AirParam.TO; AirData.FO = AirParam.FO; end AirData.w = wTrack;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -