Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronic Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Register Log in

2nd order sigma delta ADC

Status
Not open for further replies.

Mahyar_AMS

Newbie level 5
Joined
Sep 21, 2008
Messages
10
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,355
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!
 

Status
Not open for further replies.
Toggle Sidebar

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top