📄 test_slotextraction.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Property of Freescale
% Freescale Confidential Proprietary
% Freescale Copyright (C) 2005 All rights reserved
% ----------------------------------------------------------------------------
% $RCSfile: test_SlotExtraction.m.rca $
% Tag $Name: $
% $Revision: 1.2 $
% $Date: Mon Oct 30 15:26:29 2006 $
% Target: Matlab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%-- Matlab files used by this file
%-- End of list
%-- Needs also "testTV_SlotExtractionVariables.mat"
%-- If not present, run "testTV_SlotExtraction"
function status = test_SlotExtraction
addpath('../');
addpath('../../../../../../../SP/CM/matlab');
ModuleName = 'SlotExtraction';
disp(['Testing MEX ' ModuleName ' ... ']);
%-- Load some variables
if exist('./../test/testTV_SlotExtractionVariables.mat')==2
load ./../test/testTV_SlotExtractionVariables.mat
else
error('./../test/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]= SlotExtraction(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: MEX function failed for [' TV{i,1} ' ; ' TV{i+1,1} ' ; ' TV{i+2,1} ']' ]);
else
disp(['%-- Pilots: ' 'OK: MEX function succeeded for [' TV{i,1} ' ; ' TV{i+1,1} ' ; ' TV{i+2,1} ']' ]);
end
end
if any([result_Data result_Pilots ])
disp(['Error: MEX function ' ModuleName ' failed.' ]);
status = -1 ;
else
disp(['OK: MEX function ' ModuleName ' succeeded.' ]);
status = 1;
end
rmpath('../');
rmpath('../../../../../../../SP/CM/matlab');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -