📄 uwb_settings.m
字号:
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
];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -