📄 test_itu_channel.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 + -