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

📄 ofdm_optimal_tx0.m

📁 OFDM发送端源程序代码仿真
💻 M
字号:
binary  = InputPort1.Sequence;
RF_signal = InputPort2.Sampled.Signal;
RF_length = length(RF_signal); %RF_length=1024

Bitrate = Parameter0;%2.5GHz
OutputPort1 = InputPort1;

Cyclic_Prefix = 1024;  
Bitrate = Parameter0;%2.5GHz
QAM_16_mapper = [-3 -1 3 1]/(10^0.5);

%==========================================================================
% Symbol Mapper
%==========================================================================
Mapper_input = binary;

for i=1:4:length(Mapper_input)
    Mapper_re((i+3)/4)=QAM_16_mapper(sum(Mapper_input(i:i+1)*[2 1]')+1);
    Mapper_im((i+3)/4)=QAM_16_mapper(sum(Mapper_input(i+2:i+3)*[2 1]')+1);
end

Mapper_output1 = complex(Mapper_re,Mapper_im);
Mapper_output=Mapper_output1;

%==========================================================================
% Pilot Insert
%==========================================================================
Pilot_Insert_input=Mapper_output;
Pilot_Insert_output(1:16)=Pilot_Insert_input(1:16);
Pilot_Insert_output(17)=1+0i;
Pilot_Insert_output(18:49)=Pilot_Insert_input(17:48);
Pilot_Insert_output(50)=-1+0i;
Pilot_Insert_output(51:82)=Pilot_Insert_input(49:80);
Pilot_Insert_output(83)=1+0i;
Pilot_Insert_output(84:115)=Pilot_Insert_input(81:112);
Pilot_Insert_output(116)=-1+0i;
Pilot_Insert_output(117:148)=Pilot_Insert_input(113:144);
Pilot_Insert_output(149)=-1+0i;
Pilot_Insert_output(150:181)=Pilot_Insert_input(145:176);
Pilot_Insert_output(182)=1+0i;
Pilot_Insert_output(183:214)=Pilot_Insert_input(177:208);
Pilot_Insert_output(215)=-1+0i;
Pilot_Insert_output(216:247)=Pilot_Insert_input(209:240);
Pilot_Insert_output(248)=1+0i;
Pilot_Insert_output(249:264)=Pilot_Insert_input(241:256);

%==========================================================================
% Guard channel insert
%==========================================================================
Guard_Insert_input = Pilot_Insert_output;
Guard_Insert_output(1:124)=0;
Guard_Insert_output(125:388)=Guard_Insert_input(1:264);
Guard_Insert_output(389:512)=0;

%==========================================================================
% IFFT
%==========================================================================
IFFT_input = Guard_Insert_output;
IFFT_output = ifft(IFFT_input); %length(IFFT_output)=512

%==========================================================================
% Up_sampling 
%==========================================================================
DSM_input=IFFT_output;
DSM_input1=zeros(1,length(DSM_input)*4);
DSM_input1(1:4:end)=DSM_input;
DSM_input1_fft=fft(DSM_input1);
DSM_input1_fft(513:end-512)=0;
DSM_input2=ifft(DSM_input1_fft);
DSM_output=DSM_input2;

%==========================================================================
% Cyclic Prefix Add 
%==========================================================================
%CP_add_input = DSM_output;
%CP_add_output(1:Cyclic_Prefix) = CP_add_input((length(CP_add_input)-Cyclic_Prefix+1):length(CP_add_input));
%CP_add_output(Cyclic_Prefix+1:(length(CP_add_input)+Cyclic_Prefix)) = CP_add_input(1:length(CP_add_input));

%==========================================================================
%==========================================================================
%  finish OFDM synbol
%==========================================================================
%==========================================================================
Signal_ouput1 = DSM_output;
Signal_output = interp(Signal_ouput1,32);

OutputPort1=InputPort2;
for i=1:RF_length
    OutputPort1.Sampled.Signal(i)=Signal_output(i);
end

⌨️ 快捷键说明

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