Info
此问题已关闭。 请重新打开它进行编辑或回答。
How to adapt OFDM HDL Coder example from 72 to 36 active subcarriers (ASc)?
4 次查看(过去 30 天)
显示 更早的评论
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.
回答(0 个)
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!