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

Answers (1)

Pragati
Pragati 3 minutes ago
Edited: Pragati 3 minutes ago
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

Categories

Find more on Mixed-Signal Blockset in Help Center and File Exchange

Tags

Asked:

on 23 May 2023

Edited:

about 15 hours ago

Community Treasure Hunt

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

Start Hunting!