No BSD License
-
UWB_settings(OFDMDataSymPerFr...
Modulation and coding
-
UWB_settings(OFDMDataSymPerFr...
Modulation and coding
-
fpscaling(wordLength, LE, ret...
-
fpscaling(wordLength, LE, ret...
-
plothist(x, ax, firstcall, a,...
-
plothist(x, ax, firstcall, a,...
-
show_data_type_overrides(sys)
Known limitation: if model is saved with overrides on,
-
show_data_type_overrides(sys)
Known limitation: if model is saved with overrides on,
-
udg(t, x, u, varargin)
UDG User-defined graphics.
-
udg(t, x, u, varargin)
UDG User-defined graphics.
-
uwb_imr(chan, ch_idx, plot_im...
The first step is to read in the data from the .mat files supplied by the
-
uwb_imr(chan, ch_idx, plot_im...
The first step is to read in the data from the .mat files supplied by the
-
uwb_init;
Generate channel impulse responses if required.
-
uwb_init;
Generate channel impulse responses if required.
-
uwb_sv_cnvrt_ct( h_ct, t, np,...
convert continuous-time channel model h_ct to N-times oversampled discrete-time samples
-
uwb_sv_cnvrt_ct( h_ct, t, np,...
convert continuous-time channel model h_ct to N-times oversampled discrete-time samples
-
uwb_sv_model_ct(Lam, lambda, ...
IEEE 802.15.3a UWB channel model for PHY proposal evaluation
-
uwb_sv_model_ct(Lam, lambda, ...
IEEE 802.15.3a UWB channel model for PHY proposal evaluation
-
uwb_sv_params( cm_num )
Return S-V model parameters for standard UWB channel models
-
uwb_sv_params( cm_num )
Return S-V model parameters for standard UWB channel models
-
uwb_sv_eval_ct.m
-
uwb_sv_eval_ct.m
-
uwb
-
uwb
-
uwb_lib
-
uwb_lib
-
View all files
from
UWB Fixed-Point Model (Multiband OFDM)
by Martin Clark and Mike Mulligan
Ultrawideband (UWB) multiband OFDM physical layer with fixed-point transmitter/receiver modeling.
|
| UWB_settings(OFDMDataSymPerFrame, OFDMWordLength);
|
function params = UWB_settings(OFDMDataSymPerFrame, OFDMWordLength);
% Modulation and coding
p.bitsPerBlock = 125;
p.trellisStructure = poly2trellis(7, [133 145 175]);
p.punctureVector = [1 0 1 1 0 0 1 0 1 0 0 1 1 0 1].';
p.codeRate = 5/8;
p.codedBitsPerBlock = p.bitsPerBlock / p.codeRate;
p.codedBitsPerQPSKSymbol = 2;
p.spreadFactor = 2;
% OFDM/FFT
p.NSD = 100; % data subcarriers in OFDM symbol (variable name as in IEEE 802.15.3a proposal)
p.NST = 122; % subcarriers used in OFDM symbol (variable name as in IEEE 802.15.3a proposal)
p.NFFT = 128; % number of points for FFT
p.NCyclicPrefix = 32;
p.NFFT2 = p.NFFT + p.NCyclicPrefix;
% FFT-related indices
p.TXFFTShiftIndices = [p.NST/2+1:p.NFFT 1:p.NST/2];
p.TXCyclicPrefixIndices = [p.NFFT-[p.NCyclicPrefix-1:-1:0] 1:p.NFFT];
p.RXCyclicPrefixIndices = [p.NCyclicPrefix+1:p.NFFT2];
p.RXSelectFFTIndices = [p.NFFT-[p.NST/2-1:-1:0] 1:p.NST/2+1];
% Number of OFDM symbols
p.OFDMDataSymPerFrame = OFDMDataSymPerFrame; % payload
p.OFDMSpreadSymPerFrame = OFDMDataSymPerFrame * p.spreadFactor;
p.CEPerFrame = 6; % channel estimation preamble
p.PSPerFrame = 3; % Packet sync sequence
p.FSPerFrame = 6; % Frame sync sequence
p.OFDMTotSymPerFrame = p.OFDMSpreadSymPerFrame + p.CEPerFrame + p.PSPerFrame + p.FSPerFrame;
p.NGuard = 5; % Guard period (samples)
%p.filterDelay = 2; % OFDM frame delay for tx/rx filtering
% Viterbi trace back depth and link delay
p.vtbd = 34;
p.linkDelay = (floor(p.OFDMSpreadSymPerFrame/2)+3)*3*p.bitsPerBlock+p.vtbd - 250;
% Fixed point word length and data type
p.OFDMWordLength = OFDMWordLength;
p.OFDMDataType = sfix(OFDMWordLength); % Signed
% Channel
p.channel.chan = 1;
p.channel.chan_idx = 12;
p.PSSequence = PSMatrix;
p.FSSequence = -p.PSSequence;
% Channel estimation sequence (frequency domain)
CM = CEMatrix;
p.CESequence = [CM(11:15).'; CM(1:56).'; 0; CM(57:112).'; CM(11:15).'];
% make sure user defined pilots are compatible
% Timing-related parameters
p.W = 528e6; % two-sided bandwidth (output samples)
p.bitPeriod = 1/p.W ...
* 1/p.codeRate ...
* (p.NFFT2+p.NGuard)/p.NSD ...
* p.OFDMTotSymPerFrame/p.OFDMSpreadSymPerFrame;
params = p;
function s = CEMatrix;
s = [...
1-j 1-j 1+j 1+j
-1+j 1-j -1-j -1-j
-1+j -1+j 1+j -1-j
1-j -1+j -1-j 1+j
1-j -1+j -1-j -1-j
1-j 1-j -1-j -1-j
-1+j -1+j -1-j -1-j
1-j -1+j -1-j 1+j
-1+j 1-j 1+j -1-j
-1+j -1+j 1+j 1+j
-1+j -1+j 1+j -1-j
1-j -1+j -1-j -1-j
-1+j -1+j 1+j -1-j
-1+j 1-j -1-j -1-j
-1+j -1+j 1+j -1-j
-1+j 1-j -1-j -1-j
-1+j -1+j -1-j 1+j
-1+j 1-j -1-j -1-j
1-j 1-j -1-j -1-j
-1+j 1-j 1+j -1-j
1-j -1+j -1-j 1+j
-1+j -1+j -1-j -1-j
-1+j -1+j 1+j 1+j
-1+j -1+j -1-j 1+j
1-j -1+j -1-j 1+j
-1+j 1-j -1-j -1-j
-1+j -1+j 1+j -1-j
1-j 1-j 1+j 1+j
]/sqrt(2);
function s = PSMatrix;
s = [...
1 1 1 1
1 1 -1 -1
1 -1 1 -1
-1 1 1 -1
-1 1 -1 1
1 -1 -1 1
-1 -1 -1 -1
-1 -1 1 1
-1 1 -1 1
-1 1 1 -1
-1 -1 -1 -1
1 1 -1 -1
1 1 1 1
-1 -1 1 1
1 -1 1 -1
1 -1 -1 1
-1 -1 -1 1
-1 -1 1 -1
-1 1 -1 -1
1 -1 -1 -1
1 -1 1 1
-1 1 1 1
1 1 1 -1
1 1 -1 1
1 -1 -1 1
1 -1 1 -1
1 1 -1 -1
-1 -1 -1 -1
-1 -1 1 1
1 1 1 1
-1 1 1 -1
-1 1 -1 1
-1 -1 -1 -1
-1 -1 1 1
-1 1 -1 1
1 -1 -1 1
1 -1 1 -1
-1 1 1 -1
1 1 1 1
1 1 -1 -1
1 1 -1 -1
1 1 1 1
1 -1 -1 1
-1 1 -1 1
-1 1 1 -1
1 -1 1 -1
-1 -1 1 1
-1 -1 -1 -1
-1 -1 1 1
-1 -1 -1 -1
-1 1 1 -1
1 -1 1 -1
1 -1 -1 1
-1 1 -1 1
1 1 -1 -1
1 1 1 1
-1 -1 -1 1
-1 -1 1 -1
-1 1 -1 -1
1 -1 -1 -1
1 -1 1 1
-1 1 1 1
1 1 1 -1
1 1 -1 1
1 -1 1 -1
1 -1 -1 1
1 1 1 1
-1 -1 1 1
-1 -1 -1 -1
1 1 -1 -1
-1 1 -1 1
-1 1 1 -1
1 1 -1 -1
1 1 1 1
1 -1 -1 1
-1 1 -1 1
-1 1 1 -1
1 -1 1 -1
-1 -1 1 1
-1 -1 -1 -1
-1 -1 -1 1
-1 -1 1 -1
-1 1 -1 -1
1 -1 -1 -1
1 -1 1 1
-1 1 1 1
1 1 1 -1
1 1 -1 1
-1 -1 1 -1
-1 -1 -1 1
-1 1 1 1
1 -1 1 1
1 -1 -1 -1
-1 1 -1 -1
1 1 -1 1
1 1 1 -1
-1 1 1 1
-1 1 -1 -1
-1 -1 1 -1
1 1 1 -1
1 1 -1 1
-1 -1 -1 1
1 -1 -1 -1
1 -1 1 1
-1 -1 -1 -1
-1 -1 1 1
-1 1 -1 1
1 -1 -1 1
1 -1 1 -1
-1 1 1 -1
1 1 1 1
1 1 -1 -1
-1 1 -1 1
-1 1 1 -1
-1 -1 -1 -1
1 1 -1 -1
1 1 1 1
-1 -1 1 1
1 -1 1 -1
1 -1 -1 1
1 1 1 1
1 1 -1 -1
1 -1 1 -1
-1 1 1 -1
-1 1 -1 1
1 -1 -1 1
-1 -1 -1 -1
-1 -1 1 1
];
|
|
Contact us at files@mathworks.com