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

📄 test_mslotextraction.m

📁 OFDMA 物理层开发的matlab 源码.飞思卡尔提供.对物理层开发的工程师有帮助!
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Property of Freescale
%  Freescale Confidential Proprietary
%  Freescale Copyright (C) 2005 All rights reserved
%  ----------------------------------------------------------------------------
%  $RCSfile: test_mSlotExtraction.m.rca $
%  Tag $Name:  $
%  $Revision: 1.1 $
%  $Date: Mon Oct 30 13:37:37 2006 $
%  Target: Matlab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%-- Matlab files used by this file
% mSlotExtraction
%-- End of list

%-- Needs also "testTV_SlotExtractionVariables.mat"
%-- If not present, run "testTV_SlotExtraction"

function status = test_mSlotExtraction

addpath('../');
addpath('../../../../../../../SP/CM/matlab');

ModuleName = 'mSlotExtraction';
disp(['Testing ' ModuleName ' ... ']);

%-- Load some variables
if exist('testTV_SlotExtractionVariables.mat')==2
    load testTV_SlotExtractionVariables.mat
else
    error('testTV_SlotExtractionVariables.mat not present')
end

%-- Test vectors, 1st col input, 2nd col reference, 3rd Pilots
%3 inputs vectors per ref vector
TV = { ...
    'IF3RX_RND_RND_0_RND.lod' 'IF2eRX_RND_RND_0_RND.lod' 'IF2eRXPlt_RND_RND_0_RND.lod' ;
    'IF3RX_RND_RND_1_RND.lod' ' ' ' ' ;
    'IF3RX_RND_RND_2_RND.lod' ' ' ' ' ;

    'IF3RX_RND_RND_3_RND.lod' 'IF2eRX_RND_RND_1_RND.lod' 'IF2eRXPlt_RND_RND_1_RND.lod' ;
    'IF3RX_RND_RND_4_RND.lod' '' '' ;
    'IF3RX_RND_RND_5_RND.lod' '' '' ;

    'IF3RX_RND_RND_6_RND.lod' 'IF2eRX_RND_RND_2_RND.lod' 'IF2eRXPlt_RND_RND_2_RND.lod' ;
    'IF3RX_RND_RND_7_RND.lod' '' '' ;
    'IF3RX_RND_RND_8_RND.lod' '' '' ;

    'IF3RX_RND_RND_9_RND.lod' 'IF2eRX_RND_RND_3_RND.lod' 'IF2eRXPlt_RND_RND_3_RND.lod' ;
    'IF3RX_RND_RND_10_RND.lod' '' '' ;
    'IF3RX_RND_RND_11_RND.lod' '' '' ;

    'IF3RX_RND_RND_12_RND.lod' 'IF2eRX_RND_RND_4_RND.lod' 'IF2eRXPlt_RND_RND_4_RND.lod' ;
    'IF3RX_RND_RND_13_RND.lod' '' '' ;
    'IF3RX_RND_RND_14_RND.lod' '' '' ;

    'IF3RX_RND_RND_15_RND.lod' 'IF2eRX_RND_RND_5_RND.lod' 'IF2eRXPlt_RND_RND_5_RND.lod' ;
    'IF3RX_RND_RND_16_RND.lod' '' '' ;
    'IF3RX_RND_RND_17_RND.lod' '' '' ;

    'IF3RX_RND_RND_18_RND.lod' 'IF2eRX_RND_RND_6_RND.lod' 'IF2eRXPlt_RND_RND_6_RND.lod' ;
    'IF3RX_RND_RND_19_RND.lod' '' '' ;
    'IF3RX_RND_RND_20_RND.lod' '' '' ;

    };


%-- Loop over the TV
for i=1:3:size(TV,1)

    %-- Load stimuli
    In_part1 = mGetBin(['../../vector/in/TC' DirName '/' TV{i,1} ],'int16','1R1I','b');
    In_part2 = mGetBin(['../../vector/in/TC' DirName '/' TV{i+1,1} ],'int16','1R1I','b');
    In_part3 = mGetBin(['../../vector/in/TC' DirName '/' TV{i+2,1} ],'int16','1R1I','b');
    Ref = mGetBin(['../../vector/ref/TC' DirName '/' TV{i,2}],'int16','1R1I','b');
    Refplt = mGetBin(['../../vector/ref/TC' DirName '/' TV{i,3}],'int16','1R1I','b');

    %-- Adjust Data
    In_part1=reshape(In_part1,1,size(In_part1,1));
    In_part2=reshape(In_part2,1,size(In_part2,1));
    In_part3=reshape(In_part3,1,size(In_part3,1));
    In=[In_part1; In_part2 ;In_part3];
    In=double(In);
    Ref=reshape(Ref,1,size(Ref,1));
    Ref=double(Ref);
    Refplt=reshape(Refplt,1,size(Refplt,1));
    Refplt=double(Refplt);

    %-- Call function: loop over NSubCh
    SlotVec=round(i/3)+1;
    SlotVecIndex = SlotVec-SlotVecStart+1;
    SymbolSlot2=In([1 2 3],:);

    for SubCh = 1:NSubCh
        SubChTileLocationLUT = TileLocationLUT(SlotVecIndex,SubCh,:);
        [DataSubCh,PilotSubCh]= mSlotExtraction(NFFTUsed,(SlotVecIndex-1),SymbolSlot2,SubChTileLocationLUT,PNCodeLUT);
        Data2(1,((SubCh-1)*NDATA+1):SubCh*NDATA) = DataSubCh;
        Pilot2(1,((SubCh-1)*NPILOT+1):SubCh*NPILOT) =  [PilotSubCh(1,:) PilotSubCh(2,:)];
    end

    %-- Compare Data
    result_Data(i) = any(Data2-double(Ref) );
    if any(result_Data(i))
        disp(['%-- Data:   ' 'Error: Matlab function failed for [' TV{i,1} ' ; ' TV{i+1,1} ' ; ' TV{i+2,1}  ']' ]);
    else
        disp(['%-- Data:   ' 'OK: Matlab function succeeded for [' TV{i,1} ' ; ' TV{i+1,1} ' ; ' TV{i+2,1}  ']' ]);
    end

    %-- Compare Pilots
    result_Pilots(i) = any(Pilot2-double(Refplt) );
    if any(result_Pilots(i))
        disp(['%-- Pilots: ' 'Error: Matlab function failed for [' TV{i,1} ' ; ' TV{i+1,1} ' ; ' TV{i+2,1}  ']' ]);
    else
        disp(['%-- Pilots: ' 'OK: Matlab function succeeded for [' TV{i,1} ' ; ' TV{i+1,1} ' ; ' TV{i+2,1}  ']' ]);
    end

end

if any([result_Data  result_Pilots ])
    disp(['Error: Matlab function ' ModuleName ' failed.' ]);
    status = -1 ;
else
    disp(['OK: Matlab function ' ModuleName ' succeeded.'  ]);
    status = 1;
end


rmpath('../');
rmpath('../../../../../../../SP/CM/matlab');

⌨️ 快捷键说明

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