⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modifiedwiener1.m

📁 PHS多天线基带调制与解调MATLAB程序
💻 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;
%    trace(RzzUW)
%    invRzzUW = inv(RzzUW+(abs(trace(RzzUW))*10e-3)*eye(4));
    invRzzUW = inv(RzzUW);
%    cond(invRzzUW)    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 ;    
     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));
        dZ = Z(lower:upper,:);
  

        z = dZ * wTrack ;
      
%        fid = fopen('S4C1T2F50_r.dat','wb');
%        fwrite(fid, real(z), 'float32');
%        fclose(fid);
%        fid = fopen('S4C1T2F50_i.dat','wb');
%        fwrite(fid, imag(z), 'float32');
%        fclose(fid);

        [AirData.TO, AirData.FO] = Freq_Time_Recovery(z, sys.over, sys.rate);
 
    case 'perfect'
        AirData.TO = AirParam.TO;
        AirData.FO = AirParam.FO;
    end

    AirParam.TO = AirData.TO;
    
    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) ;    AirData.w = wTrack;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -