• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: Matlab
  • 标签: DMT  OFDM  

资源简介

在篇代码中首先实现了OFMD功能,通过matlab产生的随机序列然后经过IFFT产生OFDM符号,同时也采用共轭对称的方式产生DMT,DMT符号均为实数,并不是以复数的形式存在。可以简化传输信道。适用于可见光通信系统中。

资源截图

代码片段和文件信息

%% L-OFDM 训练序列同步 发射机
clc;
clear all ;
close all;
XP =zeros(2581);
N_IFFT=256;%IFFT点数
D_IFFT=240;
BitperSymbol=4;%每符号的比特数
DataSymlength=180;%传输的符号数
N_TS_S=1;    %OFDM符号同步(训练序列)
Data_Bitlength=DataSymlength*D_IFFT*BitperSymbol;
N_cp=16;%循环前缀的个数
Length_OFDMSample=(N_IFFT+N_cp)*DataSymlength;
zero_in=(N_IFFT- D_IFFT)/2;
map1=[57];
map2=[13];
%% 训练序列MQAM调制  (训练序列与数据是相同的调制方式)------------TS

Bitlength_TS=N_IFFT/2*N_TS_S*BitperSymbol;        

X_BitSource_TS=round(rand(1Bitlength_TS)).‘;
hI_TS = modem.qammod(‘M‘2^BitperSymbol ‘PhaseOffset‘ 0 ‘SymbolOrder‘...
    ‘Binary‘ ‘InputType‘ ‘bit‘);
TS = modulate(hI_TSX_BitSource_TS);

%% 产生Novel训练序列厄米尔变换,IFFT  ------------(X_TS_S)用于符号同步

X_TS_S=reshape(TSN_IFFT/2[]);
X_TS_S(1:2:end:)=0;                
H=zeros(size(X_TS_S));
for k=2:N_IFFT/2
    H(k:)=conj(X_TS_S(N_IFFT/2+2-k:));
end

X_TS_H1 = vertcat(X_TS_S(1:N_IFFT/41)H(11)H(N_IFFT/4+2:end1));%完成厄米尔对称
X_TS_H2 = vertcat(X_TS_S(N_IFFT/4+1:end1)H(N_IFFT/4+11)H(2:N_IFFT/41));

X_TS_real_1=real(X_TS_H1);      %要求IFFT输入为实数 保证了IFFT的输出信号也是对称信号
X_TS_real_2=real(X_TS_H2);
X_TS_IFFToutput_1 =ifft(X_TS_real_1);           %IFFT输出后训练序列满足厄米尔对称,均为实数,满足N/2特性
X_TS_IFFToutput_2 =ifft(X_TS_real_2);

X_TS_IFFToutput = vertcat(X_TS_IFFToutput_1(11)X_TS_IFFToutput_1(2:N_IFFT/41)X_TS_IFFToutput_2(11)...
X_TS_IFFToutput_2(N_IFFT/4+2:end1)X_TS_IFFToutput_1(N_IFFT/4+11)X_TS_IFFToutput_1(N_IFFT/4+2:end1)X_TS_IFFToutput_2(N_IFFT/4+11)X_TS_IFFToutput_2(2:N_IFFT/41));
X_TS_IFFToutput = X_TS_IFFToutput.*0.1;
csvwrite(‘X_TS_IFFToutput.csv‘X_TS_IFFToutput);
%% 产生数据信号   ------------(X_Data)

X_BitSource=round(rand(1Data_Bitlength/2)).‘; %120*180*4

% MQMAM调制  
hI = modem.qammod(‘M‘2^BitperSymbol ‘PhaseOffset‘ 0 ‘SymbolOrder‘...
    ‘Binary‘ ‘InputType‘ ‘bit‘);
X_Data = modulate(hIX_BitSource);
X_input=reshape(X_DataD_IFFT/2[]); 
%% 符号重新映射
%X_input=mapping(X_inputmap1D_IFFT/

评论

共有 条评论