Power spectral density of sigma-delta modulator

I am simulating a 3rd order SDM and I want to plot the PSD of the output.

As you may know, the output is a sequence of pulses ranging from -3 to +4. The number of samples is $$N$$.

The way I approached the problem is the following:

1. Use fft on the output sequence
2. normalize (divide by $$N$$)
3. Square the above signal.
4. multiply by 2 ( because I need the one-sided band -- not sure about this ).

The plot should then be $$10\log_{10}(signal)$$ if I am not mistaken.

Problem is that I get a big deviation from the ideal curve of the expected noise.

Am I doing something wrong?

• How is it deviating? What software are you using? Might be a good idea to try a built-in PSD estimate if one is available, and then use that to check your own implementation... Mar 8 '17 at 11:39
• You approach to getting the PSD sounds correct. The squaring should be a complex conjugate multiplication which you may be doing. "As you may know": I did not know that the output HAD to be -3 to +4, This sounds like a 3rd order SDM with a 3 bit output quantizer. However I believe you could also implement a 3rd order SDM with other quantizer down to even 1 bit. I mention this in case there was confusion with the output levels and order; order refers to the number of integrations (accumulators) in the SDM. If you give your actual and expected results we may be able to provide more insight. Mar 8 '17 at 12:06
• @Arnfinn I am using Scilab for the implementation of the system and the PSD plot. My curves are deviating from the curves shown in a paper , which should be the correct ones. Unfortunately, the only built-in function in Scilab is a periodogram() ( Matlab ) like function which is not functioning properly Mar 8 '17 at 12:48
• @DanBoschen I didn't clear that up , you are right. The modulator is in MASH topology ( 3 cascaded 1st order modulators ) and every loop has an 1bit quantizer. As far as the expected results are concerned : According to the paper I am reading, the maximum deviation between the ideal curve and the PSD of the outputs of the modulator should should be around 8 dB. Mar 8 '17 at 12:51
• @DanBoschen Argh, i passed the time limit of editing. Anyway, in the model i implemented ( in Scilab ) , that maximum deviation is around 12 dB. I am pretty sure the model is functioning properly , as i get the expected noise shaping and fractional output. So i though it must be a problem of PSD computation. Mar 8 '17 at 12:58