Delta sigma modulator PSD simulation
显示 更早的评论
Hi everyone. I built a first-order delta-sigma modulator, as shown in the figure, using Fourier transform to simulate PSD, but it is not the same as the simulation I saw in related papers, please help check where the problem is
attach my code and simulink module
回答(1 个)
Your DSM implementation is likely fine—the mismatch is coming from how the PSD is being computed.
Key things to fix
- Don’t use raw FFT directlyA simple FFT → |·|² → log will give inaccurate PSD. Use:
- Windowing (e.g., Hann)
- Averaging (e.g., Welch)
- Use long simulationsDSM noise shaping requires large sample sizes. Short runs produce noisy and misleading PSD.
- Discard transientsThe initial portion of the simulation distorts the spectrum—remove it before computing PSD.
- Average multiple segmentsA single FFT realization is not sufficient. Averaging is necessary to match published results.
- Normalize correctlyEnsure proper scaling for:
- Sampling frequency
- One-sided spectrum
- Check expected slopeFor a first-order DSM, the noise floor should rise (~20 dB/dec). If not, the issue is in PSD estimation.
Recommended approach
Instead of building everything manually, you can validate your results using Mixed-Signal Blockset:
- Use the Delta-Sigma Modulator block / ADC examples
- Run long simulations and use consistent analysis workflows for PSD/SNR
- These examples already capture correct NTF-based noise shaping and avoid common PSD pitfalls
类别
在 帮助中心 和 File Exchange 中查找有关 Mixed-Signal Blockset 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!