📄 test_mrccompare.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Property of Freescale
% Freescale Confidential Proprietary
% Freescale Copyright (C) 2005 All rights reserved
% ----------------------------------------------------------------------------
% $RCSfile: test_MRCCompare.m.rca $
% $Revision: 1.4 $
% $Date: Mon Oct 30 16:59:14 2006 $
% Target: Matlab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Compares the outputs from mMRC.m and MRC.dll
%
% status = test_EqZFCompare(seed)
%
%-- Matlab files used by this file
% mMRC
%-- End of list
function status = test_MRCCompare(seed)
% clear global
% clear functions
% close all
addpath('./..')
if (exist('nantenna','var') == 0)
nantenna = 2;
end
DataSize = 48;
fname = 'MRC';
Q = 15;
if (exist('seed','var') == 0)
seed = sum(100*clock);
end
rand('state',seed);
disp('MRC Simulation');
disp('=====================================');
disp(' ');
%%%%%%%%%%%%%%%%%%%%%% Initialize Paramters %%%%%%%%%%%%%%%%%%%%%%%%%%%
disp('*********Initializing Parameters*********')
disp(strcat('SEED = ',num2str(seed)));
% generates pilot random data , include the 4/3 Pilot boosting
DataReal = rand(nantenna,DataSize).*2.*(0.5-round(rand(nantenna,DataSize)));
DataImag = rand(nantenna,DataSize).*2.*(0.5-round(rand(nantenna,DataSize)));
Data = round((DataReal + DataImag*i)*2^Q)/2^Q;
RSSI = round(rand(nantenna,1)*2^Q)/2^Q;
CINR = round(rand(nantenna,1)*2^Q)/2^Q;
FreqOff = round(rand(nantenna,1)*2^Q)/2^Q;
TimeOff = round(rand(nantenna,1)*2^Q)/2^Q;
[mDataComb mRSSIComb mCINRComb mFreqOffComb mTimeOffComb] = mMRC(nantenna,DataSize,Data,RSSI.',CINR.',FreqOff.',TimeOff.');
mDataComb = round(mDataComb*(2^Q));
mRSSIComb = round(mRSSIComb*(2^Q));
mCINRComb = round(mCINRComb*(2^Q));
mFreqOffComb = round(mFreqOffComb*(2^Q));
mTimeOffComb = round(mTimeOffComb*(2^Q));
Data = round(Data*2^Q);
RSSI = round(RSSI.*(2^Q));
CINR = round(CINR.*(2^Q));
FreqOff = round(FreqOff.*(2^Q));
TimeOff = round(TimeOff.*(2^Q));
[DataComb RSSIComb CINRComb FreqOffComb TimeOffComb] = MRC(nantenna,DataSize,Data,RSSI,CINR,FreqOff,TimeOff);
diffDataComb = (mDataComb - DataComb)./max(DataComb);
diffRSSIComb = (mRSSIComb - RSSIComb)./max(RSSIComb);
diffCINRComb = (mCINRComb - CINRComb)./max(CINRComb);
diffFreqOffComb = (mFreqOffComb - FreqOffComb)./max(FreqOffComb);
diffTimeOffComb = (mTimeOffComb - TimeOffComb)./max(TimeOffComb);
%-- display results
rdiff=real(diffDataComb);
idiff=imag(diffDataComb);
figure(1)
plot(rdiff,'^-b');
hold on
plot(idiff,'s-r');
diff2 = abs((mDataComb - DataComb))./max(abs(DataComb));
plot(diff2,'.-k');
legend(...
'real diffDataComb',...
'imag diffDataComb');
xlabel('NumCarriers');
ylabel('abs difference (relative to max(Data) )');
hold off
%-- Compare
result = ( abs(diffDataComb)>10e-4);
ModuleName='MRC';
if any([result ])
disp(['Error: MEX function ' ModuleName ' failed.' ]);
status = -1 ;
else
disp(['OK: MEX function ' ModuleName ' succeeded' ]);
status = 1;
end
rmpath('./..')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -