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

📄 test_mrccompare.m

📁 OFDMA 物理层开发的matlab 源码.飞思卡尔提供.对物理层开发的工程师有帮助!
💻 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 + -