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

📄 testtv_mrc.m

📁 OFDMA 物理层开发的matlab 源码.飞思卡尔提供.对物理层开发的工程师有帮助!
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Property of Freescale
%  Freescale Confidential Proprietary
%  Freescale Copyright (C) 2005 All rights reserved
%  ----------------------------------------------------------------------------
%  $RCSfile: testTV_MRC.m.rca $
%  Tag $Name:  $
%  $Revision: 1.4 $
%  $Date: Tue Dec 12 18:56:43 2006 $
%  Target: Matlab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%-- This function test the generation of random TV from MRC
%
%       function test_MRC(seed)
%
% input:
% seed : (double), random seed
%
% Note: for a good use of mGenBin, make sure your files are not "read only"


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

function testTV_MRC(nantenna,seed)

clear global
clear functions
close all

profile off

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

if (exist('nantenna','var') == 0)
    nantenna = 2;
end
DataSize = 48;
fname = 'MRC';
Q = 15;
QCHANEST = 31;

if (exist('seed','var') == 0)
    seed = sum(100*clock);
end
rand('state',seed);

system(['del ..\..\vector\log\TCRND',num2str(nantenna),'\',fname,'.txt']);
diary(['../../vector/log/TCRND',num2str(nantenna),'/',fname,'.txt']);

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 = round((2^(Q+1)-1).*rand(nantenna,DataSize)-2^Q);
DataImag = round((2^(Q+1)-1).*rand(nantenna,DataSize)-2^Q);
Data = DataReal + DataImag*i;
ChanEstReal = round((2^(QCHANEST+1)-1).*rand(nantenna,DataSize)-2^QCHANEST);
ChanEstImag = round((2^(QCHANEST+1)-1).*rand(nantenna,DataSize)-2^QCHANEST);
ChanEst = ChanEstReal + ChanEstImag*i;

RSSI = round(rand(nantenna,1)*2^Q);
CINR = round(rand(nantenna,1)*2^Q);
FreqOff = round(rand(nantenna,1)*2^Q);
TimeOff = round(rand(nantenna,1)*2^Q);
BitShift = zeros(nantenna,1);
Pad = zeros(nantenna,1);

[DataComb ChanEstComb RSSIComb CINRComb FreqOffComb TimeOffComb BitShiftComb]= ...
    mMRC2D(nantenna,DataSize,Data,ChanEst,RSSI.',CINR.',FreqOff.',TimeOff.',BitShift.');

SlotMeasurement = [round(RSSI.');round(CINR.');round(FreqOff.');round(TimeOff.');BitShift.';Pad.'];
SlotMeasurementComb = [RSSIComb;CINRComb;FreqOffComb;TimeOffComb;BitShiftComb;Pad];

for ant=1:nantenna
    filename = ['../../vector/in/TCRND',num2str(nantenna),'/IF2bRX_RND_RND_RND_',num2str(ant-1)];
    mGenBin(Data(ant,:),[filename,'.lod'],'int16','1R1I','b');
    filename = ['../../vector/in/TCRND',num2str(nantenna),'/IF2bRXEst_RND_RND_RND_',num2str(ant-1)];
    mGenBin(ChanEst(ant,:),[filename,'.lod'],'int32','1R1I','b');
    filename = ['../../vector/in/TCRND',num2str(nantenna),'/IF2bRXCtrl_RND_RND_RND_',num2str(ant-1)];
    mGenBin(SlotMeasurement(:,ant),[filename,'.lod'],'int16','R','b');
end

filename = ['../../vector/in/TCRND',num2str(nantenna),'/IF2bRX_RND_RND_RND'];
mGenHeader(Data.',[filename,'.h'],'int16','signed short int gasiData');
filename = ['../../vector/in/TCRND',num2str(nantenna),'/IF2bRXEst_RND_RND_RND'];
mGenHeader(ChanEst.',[filename,'.h'],'int32','signed long int galiChanEst');
filename = ['../../vector/in/TCRND',num2str(nantenna),'/IF2bRXCtrl_RND_RND_RND'];
mGenHeader(SlotMeasurement,[filename,'.h'],'int16','unsigned short int gausiSlotMeasurement','R');

filename = ['../../vector/ref/TCRND',num2str(nantenna),'/IF2aRX_RND_RND_RND'];
mGenBin(DataComb,[filename,'.lod'],'int16','1R1I','b');
mGenHeader(DataComb,[filename,'.h'],'int16','signed short int gasiRefData');
filename = ['../../vector/ref/TCRND',num2str(nantenna),'/IF2aRXEst_RND_RND_RND'];
mGenBin(ChanEstComb,[filename,'.lod'],'int32','1R1I','b');
mGenHeader(ChanEstComb,[filename,'.h'],'int32','signed long int galiRefChanEst');
filename = ['../../vector/ref/TCRND',num2str(nantenna),'/IF2aRXCtrl_RND_RND_RND'];
mGenBin(SlotMeasurementComb,[filename,'.lod'],'int16','R','b');
mGenHeader(SlotMeasurementComb,[filename,'.h'],'int16','unsigned short int gausiRefSlotMeasurement','R');

diary off

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

⌨️ 快捷键说明

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