Code covered by the BSD License  

Highlights from
MB OFDM Transmission

image thumbnail

MB OFDM Transmission

by

 

Matlab code which implements MB-OFDM transmission block as per ECMA 368 standard.

mapCarriers(symbolVector)
function [outputVector] = mapCarriers(symbolVector)
% Maps symbols to data carriers, guard carriers and pilot carriers for
% MB-OFDM system

% Number of data sub carriers
Nd = 100;

% Number of guard sub carriers
Ng = 10;

% Number of pilot sub carriers
Np = 12;

% Check the number of symbols in 'symbolVector'
if(mod(length(symbolVector),Nd) ~= 0)
    error('Invalid number of symbols');
end

outputVector = zeros(1,128*(numel(symbolVector)/Nd));

for i=1:(numel(symbolVector))/Nd
    Cd = symbolVector(i:(i+Nd));
    Cg = [Cd(1:Ng/2),Cd(Nd-(Ng/2)+1:Nd)];
    Cp = modulateQPSK(ones(1,2*Np));
    
    outputSymbols = zeros(1,128);
    % Map the data, guard and pilot carriers
    outputSymbols(68:128) = [ Cg(1:5), Cd(1), Cp(1), Cd(2:10), Cp(2), Cd(11:19), Cp(3), Cd(20:28), Cp(4), Cd(29:37),  Cp(5), Cd(38:46), Cp(6), Cd(47:50) ];
    outputSymbols(1) = 0;
    outputSymbols(2:62) = [ Cd(51:54), Cp(7), Cd(55:63), Cp(8), Cd(64:72), Cp(9), Cd(73:81), Cp(10), Cd(82:90),  Cp(11), Cd(91:99), Cp(12), Cd(100), Cg(6:10) ];
    outputSymbols(63:67) = 0;
    
    offset = (i-1)*128 + 1;
    outputVector(offset:offset+127) = outputSymbols;
end

        

Contact us