📄 test_puncturing.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Property of Freescale
% Freescale Confidential Proprietary
% Freescale Copyright (C) 2005 All rights reserved
% ----------------------------------------------------------------------------
% $RCSfile: test_Puncturing.m.rca $
% $Revision: 1.9 $
% $Date: Mon Oct 23 15:20:21 2006 $
% Target: Matlab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function status = test_Puncturing
addpath('../../../../CM/Utilities/matlab');
status = -1;
ModuleName = 'Puncturing';
disp(['Testing ' ModuleName ' ... ']);
%-- Test vectors, 1st col input, 2nd col reference, 3rd col - punct type,
%<FN>_<ZN>_<BN>_<CBN>
TV = { ...
'TC000/IF1eTX_00_00_00_00.lod' 'TC000/IF1fTX_00_00_00_00.lod' '2' ;
'TC001/IF1eTX_00_00_00_00.lod' 'TC001/IF1fTX_00_00_00_00.lod' '0' ;
'TC001/IF1eTX_00_00_01_00.lod' 'TC001/IF1fTX_00_00_01_00.lod' '0' ;
'TC001/IF1eTX_00_00_02_00.lod' 'TC001/IF1fTX_00_00_02_00.lod' '0' ;
'TC001/IF1eTX_00_00_03_00.lod' 'TC001/IF1fTX_00_00_03_00.lod' '0' ;
'TC001/IF1eTX_00_00_03_01.lod' 'TC001/IF1fTX_00_00_03_01.lod' '0' ;
'TC001/IF1eTX_00_00_03_02.lod' 'TC001/IF1fTX_00_00_03_02.lod' '0' ;
'TC001/IF1eTX_00_00_03_03.lod' 'TC001/IF1fTX_00_00_03_03.lod' '0' ;
'TC001/IF1eTX_00_00_03_04.lod' 'TC001/IF1fTX_00_00_03_04.lod' '0' ;
'TC002/IF1eTX_00_00_00_00.lod' 'TC002/IF1fTX_00_00_00_00.lod' '0' ;
'TC002/IF1eTX_00_00_01_00.lod' 'TC002/IF1fTX_00_00_01_00.lod' '0' ;
'TC002/IF1eTX_00_00_02_00.lod' 'TC002/IF1fTX_00_00_02_00.lod' '0' ;
'TC002/IF1eTX_00_00_03_00.lod' 'TC002/IF1fTX_00_00_03_00.lod' '2' ;
'TC002/IF1eTX_00_00_03_01.lod' 'TC002/IF1fTX_00_00_03_01.lod' '2' ;
'TC002/IF1eTX_00_00_03_02.lod' 'TC002/IF1fTX_00_00_03_02.lod' '2' ;
'TC002/IF1eTX_00_00_03_03.lod' 'TC002/IF1fTX_00_00_03_03.lod' '2' ;
'TC002/IF1eTX_00_00_03_04.lod' 'TC002/IF1fTX_00_00_03_04.lod' '2' ;
'TC002/IF1eTX_00_00_03_05.lod' 'TC002/IF1fTX_00_00_03_05.lod' '2' ;
'TC003/IF1eTX_00_00_00_00.lod' 'TC003/IF1fTX_00_00_00_00.lod' '0' ;
'TC003/IF1eTX_00_00_01_00.lod' 'TC003/IF1fTX_00_00_01_00.lod' '0' ;
'TC003/IF1eTX_00_00_02_00.lod' 'TC003/IF1fTX_00_00_02_00.lod' '0' ;
'TC003/IF1eTX_00_00_03_00.lod' 'TC003/IF1fTX_00_00_03_00.lod' '2' ;
'TC003/IF1eTX_00_00_03_01.lod' 'TC003/IF1fTX_00_00_03_01.lod' '0' ;
'TC003/IF1eTX_00_00_03_02.lod' 'TC003/IF1fTX_00_00_03_02.lod' '0' ;
'TC004/IF1eTX_00_00_00_00.lod' 'TC004/IF1fTX_00_00_00_00.lod' '0' ;
'TC004/IF1eTX_00_00_01_00.lod' 'TC004/IF1fTX_00_00_01_00.lod' '0' ;
'TC004/IF1eTX_00_00_02_00.lod' 'TC004/IF1fTX_00_00_02_00.lod' '0' ;
'TC004/IF1eTX_00_00_03_00.lod' 'TC004/IF1fTX_00_00_03_00.lod' '2' ;
'TC004/IF1eTX_00_00_03_01.lod' 'TC004/IF1fTX_00_00_03_01.lod' '2' ;
'TC004/IF1eTX_00_00_03_02.lod' 'TC004/IF1fTX_00_00_03_02.lod' '2' ;
'TC004/IF1eTX_00_00_03_03.lod' 'TC004/IF1fTX_00_00_03_03.lod' '2' ;
'TC004/IF1eTX_00_00_03_04.lod' 'TC004/IF1fTX_00_00_03_04.lod' '2' ;
'TC005/IF1eTX_00_00_00_00.lod' 'TC005/IF1fTX_00_00_00_00.lod' '0' ;
'TC005/IF1eTX_00_00_01_00.lod' 'TC005/IF1fTX_00_00_01_00.lod' '0' ;
'TC005/IF1eTX_00_00_02_00.lod' 'TC005/IF1fTX_00_00_02_00.lod' '0' ;
'TC005/IF1eTX_00_00_03_00.lod' 'TC005/IF1fTX_00_00_03_00.lod' '0' ;
'TC005/IF1eTX_00_00_03_01.lod' 'TC005/IF1fTX_00_00_03_01.lod' '0' ;
'TC005/IF1eTX_00_00_03_02.lod' 'TC005/IF1fTX_00_00_03_02.lod' '0' ;
'TC005/IF1eTX_00_00_03_03.lod' 'TC005/IF1fTX_00_00_03_03.lod' '0' ;
'TC005/IF1eTX_00_00_03_04.lod' 'TC005/IF1fTX_00_00_03_04.lod' '0' ;
'TC005/IF1eTX_00_00_03_05.lod' 'TC005/IF1fTX_00_00_03_05.lod' '0' ;
'TC006/IF1eTX_00_00_00_00.lod' 'TC006/IF1fTX_00_00_00_00.lod' '0' ;
'TC006/IF1eTX_00_00_01_00.lod' 'TC006/IF1fTX_00_00_01_00.lod' '0' ;
'TC006/IF1eTX_00_00_02_00.lod' 'TC006/IF1fTX_00_00_02_00.lod' '0' ;
'TC006/IF1eTX_00_00_03_00.lod' 'TC006/IF1fTX_00_00_03_00.lod' '1' ;
'TC006/IF1eTX_00_00_03_01.lod' 'TC006/IF1fTX_00_00_03_01.lod' '1' ;
'TC006/IF1eTX_00_00_03_02.lod' 'TC006/IF1fTX_00_00_03_02.lod' '1' ;
'TC006/IF1eTX_00_00_03_03.lod' 'TC006/IF1fTX_00_00_03_03.lod' '1' ;
'TC006/IF1eTX_00_00_03_04.lod' 'TC006/IF1fTX_00_00_03_04.lod' '1' ;
'TC006/IF1eTX_00_00_03_05.lod' 'TC006/IF1fTX_00_00_03_05.lod' '1' ;
'TC007/IF1eTX_00_00_00_00.lod' 'TC007/IF1fTX_00_00_00_00.lod' '0' ;
'TC007/IF1eTX_00_00_01_00.lod' 'TC007/IF1fTX_00_00_01_00.lod' '0' ;
'TC007/IF1eTX_00_00_02_00.lod' 'TC007/IF1fTX_00_00_02_00.lod' '0' ;
'TC007/IF1eTX_00_00_03_00.lod' 'TC007/IF1fTX_00_00_03_00.lod' '2' ;
'TC007/IF1eTX_00_00_03_01.lod' 'TC007/IF1fTX_00_00_03_01.lod' '2' ;
'TC007/IF1eTX_00_00_03_02.lod' 'TC007/IF1fTX_00_00_03_02.lod' '2' ;
'TC007/IF1eTX_00_00_03_03.lod' 'TC007/IF1fTX_00_00_03_03.lod' '2' ;
'TC007/IF1eTX_00_00_03_04.lod' 'TC007/IF1fTX_00_00_03_04.lod' '2' ;
'TC007/IF1eTX_00_00_03_05.lod' 'TC007/IF1fTX_00_00_03_05.lod' '2' ;
'TC007/IF1eTX_00_00_03_06.lod' 'TC007/IF1fTX_00_00_03_06.lod' '2' ;
'TC007/IF1eTX_00_00_03_07.lod' 'TC007/IF1fTX_00_00_03_07.lod' '2' ;
'TC007/IF1eTX_00_00_03_08.lod' 'TC007/IF1fTX_00_00_03_08.lod' '2' ;
'TC007/IF1eTX_00_00_03_09.lod' 'TC007/IF1fTX_00_00_03_09.lod' '2' ;
'TC007/IF1eTX_00_00_03_10.lod' 'TC007/IF1fTX_00_00_03_10.lod' '2' ;
'TC007/IF1eTX_00_00_03_11.lod' 'TC007/IF1fTX_00_00_03_11.lod' '2' ;
'TC008/IF1eTX_00_00_00_00.lod' 'TC008/IF1fTX_00_00_00_00.lod' '0' ;
'TC008/IF1eTX_00_00_01_00.lod' 'TC008/IF1fTX_00_00_01_00.lod' '0' ;
'TC008/IF1eTX_00_00_02_00.lod' 'TC008/IF1fTX_00_00_02_00.lod' '0' ;
'TC008/IF1eTX_00_00_03_00.lod' 'TC008/IF1fTX_00_00_03_00.lod' '2' ;
'TC008/IF1eTX_00_00_03_01.lod' 'TC008/IF1fTX_00_00_03_01.lod' '2' ;
'TC009/IF1eTX_00_00_00_00.lod' 'TC009/IF1fTX_00_00_00_00.lod' '0' ;
'TC009/IF1eTX_00_00_01_00.lod' 'TC009/IF1fTX_00_00_01_00.lod' '0' ;
'TC009/IF1eTX_00_00_02_00.lod' 'TC009/IF1fTX_00_00_02_00.lod' '0' ;
'TC009/IF1eTX_00_00_03_00.lod' 'TC009/IF1fTX_00_00_03_00.lod' '2' ;
'TC009/IF1eTX_00_00_03_01.lod' 'TC009/IF1fTX_00_00_03_01.lod' '2' ;
'TC010/IF1eTX_00_00_00_00.lod' 'TC010/IF1fTX_00_00_00_00.lod' '0' ;
'TC010/IF1eTX_00_00_01_00.lod' 'TC010/IF1fTX_00_00_01_00.lod' '0' ;
'TC010/IF1eTX_00_00_02_00.lod' 'TC010/IF1fTX_00_00_02_00.lod' '0' ;
'TC010/IF1eTX_00_00_03_00.lod' 'TC010/IF1fTX_00_00_03_00.lod' '2' ;
'TC010/IF1eTX_00_00_03_01.lod' 'TC010/IF1fTX_00_00_03_01.lod' '2' ;
'TC13/IF1eTX_00_00_03_00.lod' 'TC13/IF1fTX_00_00_03_00.lod' '0' ;
'TC13/IF1eTX_00_00_03_01.lod' 'TC13/IF1fTX_00_00_03_01.lod' '0' ;
'TC13/IF1eTX_00_00_03_02.lod' 'TC13/IF1fTX_00_00_03_02.lod' '0' ;
'TC99/IF1eTX_00.lod' 'TC99/IF1fTX_00.lod' '2' ;
};
%-- Loop over the TV
result = 1.*ones(1,size(TV,1));
for i=1:size(TV,1)
%-- Load stimuli
In = mGetBin(['../vector/in/' TV{i,1} ],'uint8','R');
Ref = mGetBin(['../vector/ref/' TV{i,2}],'uint8','R');
%-- Call Matlab function
mOut = mPuncturing(double(In),length(In),str2double(TV(i,3)));
%-- Compare
if (length(mOut) == length(double(Ref)))
result(i) = any(mOut-double(Ref));
else
result(i) = 1;
length(mOut)
length(double(Ref))
end
if any(result(i))
disp(['Error: Matlab function failed for ' TV{i,1} ]);
else
disp(['OK: Matlab function succeeded for ' TV{i,1} ]);
end
end
if any(result)
disp(['Error: Matlab function ' ModuleName ' failed.' ]);
status = -1 ;
else
disp(['OK: Matlab function ' ModuleName ' succeeded.' ]);
status = 1;
end
%test case from the spec IEEE Std 802.16-2004
disp('Test cases from the spec ');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
disp('Testing Puncturing mode 0 (no puncturing) for OFDMA ');
In1_bits = mGetBin('../vector/in/In1_bits.lod','uint8','R');
Ref1_bits= mGetBin('../vector/ref/Ref1_bits.lod','uint8','R');
%call Matlab function
mOut_bits = mPuncturing(In1_bits,length(In1_bits),0);
if any(mOut_bits-Ref1_bits)
disp('Error: Matlab function failed.');
status = -1;
else
disp('OK: Matlab function succeeded.');
end
disp('Testing Puncturing mode 2 (2 out of 6) for OFDMA ');
In2_bits= mGetBin('../vector/in/In2_bits.lod','uint8','R');
%reference
Ref2_bits=mGetBin('../vector/ref/Ref2_bits.lod','uint8','R');
%call Matlab function
mOut_bits = mPuncturing(In2_bits,length(In2_bits),2);
if any(mOut_bits-Ref2_bits)
disp('Error: Matlab function failed for standard test.');
status = -1;
else
disp('OK: Matlab function succeeded for standard test.');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -