2nd order sigma delta and fft
I am starting the system modeling of a reconfigurable 2nd order SD ADC in Simulink. I have some questions while my design specs are like this:
* 80dB SNDR over 100 KHz (GSM) and 60 dB SNDR over 500 KHz (Bluetooth)
* Technology = 0.18 um
* Power : as lower power as possible
My questions:
1- What architecture do you suggest me to use? (Error feedback(Unity STF) , Boser-Wooley or etc.)
2- I am being given a file to estimate the SINAD of the ADC in MATLAB after the simulink simulation. the file is like below.
I did not understand what bin (cycles) and len stand for? and also this line: ms = ms(1:end/2)/N*2; what does it do and why?
% tsample=1/1e6; OSR=1; len=1024; bin=17; N=5;
% Uncomment the hanning window if the number of periods during
% the simulation is not an entire number
% First remove the DC
mean = sum(adc_out)/len;
adc_out = adc_out - mean;
m = adc_out;
m = adc_out.*hann(len);
% Execute discrete fourier transform
ms = abs(fft(m));
ms = ms(1:end/2)/N*2;
cycles = bin
msdb=20*log10(ms);
figure;
semilogx(msdb)
% The energy of the test signal is contained in the bin msigbin:
msigbin = 1 + cycles;
% The noise is found by creating a new array and removing the test signal
M = len/2; % We only need to look at half of the FFT
mnoise = zeros(1,M);
%%% The hanning window spreads the main signal in a few bins
NBINS = 3;
for i=1
msigbin-NBINS),
mnoise(i) = ms(i);
end
% The signal is obtained by:
msignal = ms(msigbin-NBINS:msigbin+NBINS)
%mnoise(msigbin) = 0;
%mnoise = [ms(1:msigbin-1), ms(msigbin+1:end)];
% The SINAD is found by squaring the test signal and dividing by the
% square of all the noise components
%msnr = 10*log10( ms(msigbin)^2/sum(mnoise.^2))
msnr = 10*log10( sum(msignal.^2)/sum(mnoise.^2))
s = sprintf('SINAD = %f',msnr)
legend(s,'Location','NorthEeast')
.............................................................................
Thank you very much indeed!