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)
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
Vaibhav BHATNAGAR
Vaibhav BHATNAGAR on 12 Sep 2025
Hello Andreas,
Many thanks for your comment.
I was able to get it working by using two header symbols instead of one, while keeping the block size and other parameters unchanged.
The remaining issue is that when I try to reduce the CP size from 32 to 16, the header at the receiver does not decode properly. I will wait for further information from the MathWorks support team on this.
Best regards,
Vaibhav
Vaibhav BHATNAGAR
Vaibhav BHATNAGAR on 16 Sep 2025
I found the solution of my problem the problem is due to : Params.OFDMDemodLatency for shorter CP it requires a adjustment. The same latency wont work.

Answers (0)

This question is closed.

Products


Release

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!