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

📄 test_itu_channel.m

📁 OFDMA 物理层开发的matlab 源码.飞思卡尔提供.对物理层开发的工程师有帮助!
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Property of Freescale
%  Freescale Confidential Proprietary
%  Freescale Copyright (C) 2005 All rights reserved
%  ------------------------------------------------------------------------
%  $RCSfile: test_itu_channel.m.rca $
%  $Date: Sun Oct 22 03:19:50 2006 $
%  Target: Matlab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear;
addpath('../../../../UP/CM/Utilities/matlab');
NumSym=100;
OriginalOFDMin=zeros(512,NumSym);
OFDMin=zeros(576,NumSym);
ModIn = zeros(512,1);

for k=1:NumSym
    %Frequency selective fading and time variation fo the chanel
    input=uint8(mod(round(rand*100*(1:128)),255)).';
    %Correlation measurement
    inputBit = mByteUnpack(input);
    [InputLen dum]=size(inputBit);
    temp   = reshape(1-inputBit.*2,2,InputLen/2)'/sqrt(2);
    ModIn = reshape(temp(:,1) + i*temp(:,2),InputLen/2,1);
    OriginalOFDMin(:,k)=ModIn(:,1);
    temp=ifft(ModIn);
    OFDMin(1:64,k)=temp(449:512);
    OFDMin(65:576,k)=temp(1:512);
end

%constalation of Tx signal
figure;
plot(OriginalOFDMin,'.b');

OFDMinRow=reshape(OFDMin,[],1);

NumOfWaves=20;
Fofdm=5.712e6;
CPGI=64/Fofdm;

OnGoingSpeed=0;
for v = 60:60:120
    OnGoingSpeed=OnGoingSpeed+1;

AntennaInput = itu_channel(OFDMinRow,2.5e+9,Fofdm,'vehicularB',v);

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% % AWGN channel
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SNR=Inf;
% if SNR~=Inf
%     dBW=10*log10(mean(AntennaInput.*conj(AntennaInput)));
%     AntennaInput = awgn(AntennaInput,SNR,dBW);
% end
% 
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

AntennaInput=reshape(AntennaInput,576,[]);
temp=AntennaInput(65:576,:);

DemodSig1(OnGoingSpeed,:,:)=fft(temp);
end

%time variant of power
figure;
%first velocity
DemodSig(:,:)=DemodSig1(1,:,:);
%results for a particular subcarrier
plot(20*log10(abs(DemodSig(100,:))),'LineWidth',2,'Color','r');
hold;
title('Time variation of the channel');
xlabel('Time (OFDM symbol number)');
ylabel('Rx power [dB]');
axis([1 100 -20 5]);
grid;
%Results for full band signal
TimeVariationOfFullBand=sum(abs(DemodSig(:,:)))/512;
plot(20*log10(TimeVariationOfFullBand),'LineWidth',2,'Color','g');
%second velocity
DemodSig(:,:)=DemodSig1(2,:,:);
%results for a particular subcarrier
plot(20*log10(abs(DemodSig(100,:))),'LineWidth',2,'Color','b');
%Results for full band signal
TimeVariationOfFullBand=sum(abs(DemodSig(:,:)))/512;
plot(20*log10(TimeVariationOfFullBand),'LineWidth',2,'Color','k');
legend({'SC:100 @ v=60','averaged @ v=60','SC:100 @ v=120','averaged @ v=120'});

%time variant of phase
figure;
%first velocity
DemodSig(:,:)=DemodSig1(1,:,:);
%results for a particular subcarrier
plot((angle(DemodSig(100,:))),'LineWidth',2,'Color','r');
hold;
title('Time variation of the channel');
xlabel('Time (OFDM symbol number)');
ylabel('Rx power [dB]');
axis([1 100 -1*pi pi]);
grid;
%second velocity
DemodSig(:,:)=DemodSig1(2,:,:);
%results for a particular subcarrier
plot((angle(DemodSig(100,:))),'LineWidth',2,'Color','b');
legend({'SC:100 @ v=60','SC:100 @ v=120'});

%frequency selective fading characteristic
figure;
%first velocity
DemodSig(:,:)=DemodSig1(1,:,:);
%results for a particular subcarrier
plot(20*log10(abs(DemodSig(:,ceil(NumSym/4))).'),'LineWidth',2,'Color','r');
hold
title('Received power of some OFDM symbols');
xlabel('Subcarrier number (frequency)');
ylabel('Rx power [dB]');
axis([1 512 -20 5]);
% axis([1 512 min(20*log10(abs(DemodSig(:,ceil(NumSym/4))))) max(20*log10(abs(DemodSig(:,ceil(NumSym/4)))))]);
%Time average of the frequency selective fading
TimeAveragedFreqVariation=sum(abs(DemodSig(:,:).')).'/NumSym;
plot(20*log10(TimeAveragedFreqVariation),'LineWidth',2,'Color','g');
%second velocity
DemodSig(:,:)=DemodSig1(2,:,:);
%results for a particular subcarrier
plot(20*log10(abs(DemodSig(:,ceil(NumSym/4))).'),'LineWidth',2,'Color','b');
%Time average of the frequency selective fading
TimeAveragedFreqVariation=sum(abs(DemodSig(:,:).')).'/NumSym;
plot(20*log10(TimeAveragedFreqVariation),'LineWidth',2,'Color','k');
legend({'Sy:25 @ v=60','averaged @ v=60','Sy:25 @ v=120','averaged @ v=120'});

%frequency variation of phase
figure;
%first velocity
DemodSig(:,:)=DemodSig1(1,:,:);
%results for a particular subcarrier
plot((angle(DemodSig(:,ceil(NumSym/4))).'),'LineWidth',2,'Color','r');
hold
title('Received power of some OFDM symbols');
xlabel('Subcarrier number (frequency)');
ylabel('Rx power [dB]');
axis([1 512 -1*pi pi]);
% axis([1 512 min(20*log10(abs(DemodSig(:,ceil(NumSym/4))))) max(20*log10(abs(DemodSig(:,ceil(NumSym/4)))))]);
%second velocity
DemodSig(:,:)=DemodSig1(2,:,:);
%results for a particular subcarrier
plot((angle(DemodSig(:,ceil(NumSym/4))).'),'LineWidth',2,'Color','b');
legend({'Sy:25 @ v=60','Sy:25 @ v=120'});


%Time correlation
figure;
%first velocity
DemodSig(:,:)=DemodSig1(1,:,:);
TimeCorr=corrcoef(DemodSig);
plot(abs(TimeCorr(1,:)),'LineWidth',2,'Color','r');
hold
title('Time correlation');
xlabel('Time (OFDM symbol number)');
ylabel('correlation coef');
axis([1 100 0 1]);
%second velocity
DemodSig(:,:)=DemodSig1(2,:,:);
TimeCorr=corrcoef(DemodSig);
plot(abs(TimeCorr(1,:)),'LineWidth',2,'Color','b');
legend({'v=60','v=120'});

%Frequency correlation
figure;
%first velocity
DemodSig(:,:)=DemodSig1(1,:,:);
FreqCorr=corrcoef(DemodSig.');
plot(abs(FreqCorr(1,:)),'LineWidth',2,'Color','r');
hold;
title('Frequency correlation');
xlabel('Subcarrier number (frequency)');
ylabel('correlation coef');
axis([1 512 0 1]);
%second velocity
DemodSig(:,:)=DemodSig1(2,:,:);
FreqCorr=corrcoef(DemodSig.');
plot(abs(FreqCorr(1,:)),'LineWidth',2,'Color','b');
legend({'v=60','v=120'});


%===========================
%time variant of phase
figure;
%first velocity
DemodSig(:,:)=DemodSig1(1,:,:);
%results for a particular subcarrier
plot((angle(DemodSig(10,:))),'LineWidth',1,'Color','r');
hold;
title('Time variation of the channel');
xlabel('Time (OFDM symbol number)');
ylabel('Rx power [dB]');
axis([1 100 -1*pi 22*pi]);
grid;
plot((angle(DemodSig(11,:))+2*pi),'LineWidth',1,'Color','r');
plot((angle(DemodSig(12,:))+4*pi),'LineWidth',1,'Color','r');
plot((angle(DemodSig(13,:))+6*pi),'LineWidth',1,'Color','r');
plot((angle(DemodSig(14,:))+8*pi),'LineWidth',1,'Color','r');
plot((angle(DemodSig(15,:))+10*pi),'LineWidth',1,'Color','r');
plot((angle(DemodSig(16,:))+12*pi),'LineWidth',1,'Color','r');
plot((angle(DemodSig(17,:))+14*pi),'LineWidth',1,'Color','r');
plot((angle(DemodSig(18,:))+16*pi),'LineWidth',1,'Color','r');
plot((angle(DemodSig(19,:))+18*pi),'LineWidth',1,'Color','r');
plot((angle(DemodSig(20,:))+20*pi),'LineWidth',1,'Color','r');
%====================================

⌨️ 快捷键说明

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