⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ofdm_rx_init_packettimingcontrol.m

📁 ofdm_tx_mimo_init.m MIMO_OFDM_estimation
💻 M
字号:
%Assumes that a short symbol starts at time 0; everything else is
% paramaterized below
pktTiming_controlCounter_bits = 16; %ceil(log2(tx_packetLength))

%Structure of packet following detection
%Short symbols
pktTiming_ss_num = 6;
pktTiming_ss_length = length(shortSymbol_time);

%Long symbols
pktTiming_ls_num = 2;
pktTiming_ls_length = length(longSymbol_time);

%Long symbol cyclic prefix
pktTiming_lscp_length = 32;

%Symbol and Payload length
pktTiming_symbol_length = numSubcarriers + CPLength;
%pktTiming_payload_length = tx_symbolLength * tx_numSymbols;

%Counter values for various points in the packet structure
pktTiming_count_ssStart = 0;
pktTiming_count_lscpStart = (pktTiming_count_ssStart + pktTiming_ss_num*pktTiming_ss_length);
pktTiming_count_lsStart = (pktTiming_count_lscpStart + pktTiming_lscp_length);
pktTiming_count_payloadStart = pktTiming_count_lsStart + pktTiming_ls_num*pktTiming_ls_length;
%%pktTiming_count_packetDone = pktTiming_count_payloadStart + pktTiming_payload_length;

% Count values at which to capture the accumulator output
% Generate four ss_latchAccum pulses and one ls_latchAccum pulse
%  Ignore the last short symbol cross correlation to avoid problems with
%   possible correlating with the first few samples of the longsym prefix
freqSync_coarse_count_ss_latchAccum = 2+pktTiming_count_ssStart+pktTiming_ss_length+[pktTiming_ss_length : pktTiming_ss_length : (pktTiming_ss_num-2)*pktTiming_ss_length];
freqSync_coarse_count_ls_latchAccum = (-18) + 2+pktTiming_count_lsStart+pktTiming_ls_length+[pktTiming_ls_length:pktTiming_ls_length:(pktTiming_ls_num-1)*pktTiming_ls_length];
freqSync_coarse_count_latchAccum = [freqSync_coarse_count_ss_latchAccum freqSync_coarse_count_ls_latchAccum];

% Count values at which to reset the accumulator; these should precede pktTiming_coarse_ss_length accumulations by one cycle
%  Normally: [15 31 47 63 127]
freqSync_coarse_count_ss_accumReset = freqSync_coarse_count_ss_latchAccum - pktTiming_ss_length;
freqSync_coarse_count_ls_accumReset = freqSync_coarse_count_ls_latchAccum - pktTiming_ls_length;
freqSync_coarse_count_accumReset = [freqSync_coarse_count_ss_accumReset freqSync_coarse_count_ls_accumReset];

%Skip the first two short symbol accumulations - AGC doesn't settle in time to use all four
%freqSync_coarse_count_latchAccum = [freqSync_coarse_count_latchAccum(3:end) 0 0];
%freqSync_coarse_count_accumReset = [freqSync_coarse_count_accumReset(3:end) 0 0];

%Bypass this scheme for triggering the long-symbol calculaion
freqSync_coarse_count_latchAccum = [freqSync_coarse_count_latchAccum(3:end-1) 0 0 0];
freqSync_coarse_count_accumReset = [freqSync_coarse_count_accumReset(3:end-1) 0 0 0];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -