• 大小: 3KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-05-14
  • 语言: Matlab
  • 标签: matlab  

资源简介

DCO_OFDM程序代码,内有QAM调制,对DCO_OFDM的模型有个基础的了解

资源截图

代码片段和文件信息

%% ---------------------- DCO-OFDM --------------------- %%



%% ************************** transmitter *****************************

%% --------------- to produce the bits stream -----------------

clear all;     
clc;

% QAM modulation order
M = 4;

% initial number of carrier before Hermitian symmetry
para=64;          

% number of bits transmitted
no_of_bits = log2(M)*para*1000;

% to produce the transmitted bits stream
seridata = randint(1no_of_bits);  

%% --------------- QAM modulation ---------------

% transfer the bits from binary to decimal
x = bi2de(reshape(seridatalog2(M)no_of_bits/log2(M))‘‘left-msb‘);  % 二进制转换成十进制

% QAM modulation using the function provided by matlab
h = modem.qammod(‘M‘M ‘SymbolOrder‘ ‘Gray‘);  % QAM调制
xk = modulate(hx);

%% -------------- calculate BER for every SNR (dB) ---------------

% % Eb/N0from 0dB to 30dB
ebn0 = [0:1:35];              

for k = 1:1:length(ebn0) 
  
% initial number of error bits   
noe = 0;    

% initial number of bits transmitted 
nod = 0;

% reshape the symbol according to the number of symbol per column
xk0=reshape(xk1no_of_bits/log2(M));
xk1 = reshape(xk0parano_of_bits/log2(M)/para);

%% ---------------- carrier setting ------------------

% Hermitian symmetry
yk=flipud(xk1);    % 上下翻转
wk=conj(yk);       % 共轭
% w=x‘

ze = zeros(1no_of_bits/log2(M)/para);
 zk=[ze
     xk1
     wk];

% number of carrier for every DCO-OFDM symbol
N=2*para+1;     

%% ------------------ IFFT -----------------

评论

共有 条评论