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

📄 ofdm_64qam.m

📁 ofdm_64QAM_simulation,只是进行的初步的实验,大家仅仅供参考,共同研究进步吧!
💻 M
字号:
% 64QAM/OFDM system

% The number of subcarrier is 16
clear all
% THe IFFT input SubCarrier is 15+Zero(17) = 32
% USEFUL DATA : 51.840Mbps(STM-0)
% CODING : 26/27
% Coded data : (51.840*27/26) 53.83385Mbps
% 64QAM mapping Data : (53.83385/6) = 8.972308Msps

% subcarrier spacing is (8.972308/16) = 0.5982MHz

% OFDM signal BW (=Subcarr_spacing * 16), (=8.972308MHz) 3dB point
% OFDM signal 99% PWR BW : 9.5330772MHz((=Subcarr_spacing * 17/16)
% Nyquist frequency is 2*8.972308 >= 17.944616MHz
% Hence the sampling interval (ts) = 1/(17.944616MHz) = 55.727. . . ns

%%%%%%%%%% Initialization %%%%%%%%%%%%%%%%%%%%%
Number=50;
Num_car = 32;
Zero_Num = 0;
SubCarrier = Num_car + Zero_Num;
d_rate = 51.84*10^6;             % required information bit rate
c_rate = 26/27;				   % code rate
coded_rate = d_rate/c_rate;  % coded symbol rate
SymbolRate = coded_rate/(log2(64));   % 64QAM symbol rate
SubCarrierSpacing = SymbolRate/Num_car;    % subcarrier spacing
OF_Carrierdur = 1/SubCarrierSpacing;
OF_Symdur = OF_Carrierdur*SubCarrier;
iff_N = 32; % This must be carefully selected to prevent spectral aliasing
ts = 1/(OF_Carrierdur); 
fs = 1/ts;		% this must be larger than the OFDM BW*2
df = 2*10^3; % required frequency resolution
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Path_Num = 2;%input ('Enter is Path of Number(1~2): ');

%64 QAM Generator
QAM_Data = QAM_Generator(Num_car*Number);
disp('End of QAM_Generator'); 

%IFFT
IFFTData= Radix2IFFT(QAM_Data,SubCarrier);
%Plot_frequence(IFFTData);%2 graph
disp('End of Radix2IFFT');

%Insert Zero
for st=1:SubCarrier*Number,
   IFFTDataWithZero(st*2-1)=IFFTData(st);
   IFFTDataWithZero(st*2)=0;
end;

%Filter
for loop=0:31,
   
alpha=input ('Enter is fading Depth (0~1) : ');%0.9;
FadingDelay=16*10^-9;
SampleDelay=input ('Enter is SampleDelay : ');
SampleDelay=10^-9*SampleDelay;
delay=SampleDelay;
FilteredData=Dig_Filter(IFFTDataWithZero,delay);
delay=FadingDelay+SampleDelay;
DelayedData=DelayFilter(IFFTDataWithZero,delay);
disp('End of Dig_Filter');
delay=FadingDelay+SampleDelay;
MultiPathData=FilteredData-alpha*DelayedData;
%Spectrum Display
%Spec_Display(FilteredData);
%Spec_Display(DelayedData);
Spec_Display(MultiPathData);

for j=0:Number-1,
   OFDM_Dat= IFFTData(SubCarrier*j+1:SubCarrier*(j+1));
   pt(SubCarrier*j+1:SubCarrier*(j+1))=fft(OFDM_Dat);
end;
%Constel(QAM_Data,SubCarrier);

for j=0:Number-1,
   for k=0:SubCarrier-1,
      SamplingPoint=j*SubCarrier+k;
      pop(k+1)=FilteredData(16+SamplingPoint*2);
   end;
   FFTData(j*SubCarrier+1:(j+1)*SubCarrier)=fft(pop);

end;
%Constel(FFTData,SubCarrier);

for j=0:Number-1,
   for k=0:SubCarrier-1,
      SamplingPoint=j*SubCarrier+k;
      pop(k+1)=MultiPathData(16+SamplingPoint*2);
   end;
   FFTData(j*SubCarrier+1:(j+1)*SubCarrier)=fft(pop);

end;
Constel(FFTData,SubCarrier);            % original constellation

end;


⌨️ 快捷键说明

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