Info
This question is closed. Reopen it to edit or answer.
How to adapt OFDM HDL Coder example from 72 to 36 active subcarriers (ASc)?
3 views (last 30 days)
Show older comments
Hello,
I am working with the OFDM HDL Coder MATLAB/Simulink example.
In MATLAB script-based simulation, I successfully changed the number of active subcarriers from 72 → 36, and both transmitter and receiver chains work correctly (headers are encoded/decoded properly, variables are validated, and frames are synchronized).
However, when I move to Simulink implementation, the situation is different:
- Frames are synchronized,
- But header is never detected (no CRC pass/fail, nothing happens after sync).
I already adapted the following in the MATLAB side:
- txParam.ASc = 36;
- txParam.NHeader = ceil(72/txParam.ASc); % = 2 when ASc=36
- Verified headerIntrlvMaxBlkSize = ASc * NHeader = 72 and headerIntrlvNColumns = headerIntrlvMaxBlkSize/4 = 18, so block length consistency is preserved.
- All OFDM-Tx/Rx functions (OFDMTx, OFDMRx, tx rx parameters etc.) run fine in script mode.
In Simulink, I suspect the issue is in one of the HDL-optimized blocks (Header Formatter / Header Interleaver / Header Parsing). Some blocks still assume a single header symbol (NHeader=1), or are hard-coded to ASc=72. For example:
- Generate Output Control Signals inside Header Interleaver Read Logic subtracts fixed numbers (8, 11) from block length.
- IndexGen functions (Reference Signal Parsing, Header & Data Parsing) may still be tied to fixed symbol counts.
- Thresholds in Frame Sync may need retuning for reduced subcarriers.
3 Comments
Answers (0)
This question is closed.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!