0% found this document useful (0 votes)
11 views15 pages

Data_Assignment 04_sol

Uploaded by

gsundaraiahIIT
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views15 pages

Data_Assignment 04_sol

Uploaded by

gsundaraiahIIT
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

EE6580: VLSI DATA CONVERSION CIRCUITS

ASSIGNMENT 4

SUNDARAIAH GURINDAGUNTA

EE10M086

Signal bandwidth=1M

SQNR>100dB

SNR>84dB

∆=2

a)

Order=3

OBG=1.5

OSR=128

Sampling rate(fs)=2*OSR* Signal bandwidth =256M

b)

clear clear
clc
path(path,'D:\delsig\delsig');
w=linspace(0,pi,10000);
order=3;
osr=128;
obg=1.5;
nlev=2;
ntf=synthesizeNTF(order,osr,0,obg,0);
ntf_mag=abs(evalTF(ntf,exp(j*w)));

( − 1)
=
( − 0.6694) ( − 1.531 + 0.6639)
Plot of NTF in Db scale

Plot of NTF in linear scale


= | ( )|
12

So we can calculate this integral by using MATLAB.


clear all
w=(0:0.0001:pi/(4*128));
z=exp(j*w);
mag=(((z-1).^3)./((z-0.6694).*(z.^2 - 1.531*z + 0.6639)));
mag=abs(mag);
mag=mag.^2;
noisepower=trapz(mag,w)

Theoritical

noisepower= 1.3952e-013

inband_noisepower= 1.48e-014=-138Db

SNR for 0.65v sinusoidal signal=-12-(-128)=125dB

Total noise power=-4.77dB

Cutoff frequency of NTF=0.4072

practical

A sinusoid of amplitude 0.65V and frequency of 250k

The SQNR is 101.64db

c)

MSA Calculation
clear clear
clc
path(path,'D:\delsig\delsig');
w=linspace(0,pi,10000);
order=3;
osr=128;
obg=1.5;
nlev=2;
ntf=synthesizeNTF(order,osr,0,obg,0);
ntf_mag=abs(evalTF(ntf,exp(j*w)));
u=0:nlev/1e6:nlev;
[v,xn,xmax,y]=simulateDSM(u,ntf,nlev,randn(order,1));
MSA=(1/(nlev-1))*u(min(find((y>50))))
plot(log10(abs(y)));

MSA = 0.7976

Peak SNR calculation

clear clear
clc
path(path,'D:\delsig\delsig');
w=linspace(0,pi,10000);
order=3;
osr=128;
obg=1.5;
nlev=2;
ntf=synthesizeNTF(order,osr,0,obg,0);
ntf_mag=abs(evalTF(ntf,exp(j*w)));
[snr,amp]= simulateSNR(ntf,osr,-3.74,0,nlev,1/(4*osr),14);
[snr,amp] = simulateSNR(ntf,osr);
figureMagic([-100 0], 10, 1, ...
[0 100], 10, 1);
xlabel('Input Level, dB')
ylabel('SNR dB');
title('SNR curve');
s=sprintf('peak SNR = %4.1fdB\n',...
max(snr));
text(-49,15,s);

Peak snr=107.34db

Spectrum for the input


clear
clc
path(path,'D:\delsig\delsig');
w=linspace(0,pi,10000);
order=3;
osr=128;
obg=1.5;
nlev=2;
ntf=synthesizeNTF(order,osr,0,obg,0);
ntf_mag=abs(evalTF(ntf,exp(j*w)));
u1=0.65*1*sin(2*pi*(1:1:2^14)/(4*osr));
[v1,xn1,xmax1,y1]=simulateDSM(u1,ntf,nlev,randn(order,1));
plot(log10(abs(y1)));
psd(v1,2^15,256e6);

hear i take the 2^15 fft to facilitate the no.of bins in


signal band is 128
d) 1)

clear clear

clc
path(path,'D:\delsig\delsig');
w=linspace(0,pi,10000);
order=3;
osr=128;
obg=1.5;
nlev=2;
ntf=synthesizeNTF(order,osr,0,obg,0);
ABCDc=realizeNTF_ct(ntf,'FF')

ABCDc =

0 0 0 1.0000 -1.0000

1.0000 0 0 0 0

0 1.0000 0 0 0

0.6703 0.2442 0.0440 0 -0.0000

K1=0.6703

K2=0.2442

K3=0.0440

New values with half clock cycle delay

2 3
0′ = 1 + + = 0.3666
2 6
3
1′ = 1 + 2 + = 0.7979
2
2′ = 2 + 3 = 0.2662

3′ = 3 = 0.0440
1′ 2′ 3′
( ) = 0′ + + +
0.7979 0.2662 0.0440
( ) = 0.3666 + + +

2)

Loop filter realization

3)
*simulation of DSM
v3 n12 0 pulse(0 5 1f 1f 1f 1.953125e-9 3.90625e-9)
v2 n13 0 pulse(5 0 1f 1f 1f 1.953125e-9 3.90625e-9)
v1 1 0 SIN 0 0.65 250k

*quantize inversion
rq1 out inq 5k
rq2 inq outq 5k
Gq outq 0 0 inq 10000000000 *out is int output
*k0 inversion
ruv1 1 inuv 5k
ruv2 outq inuv 5k
Guv outuv 0 0 inuv 10000000000 *out is int output
ruvfeed outuv inuv 5k
*k0 inversion
rkuv outuv inuvinv 5k
rkuv1 inuvinv outuvinv 5k
Guvinv outuvinv 0 0 inuvinv 10000000000 *out is int output

*integrator1
rint1 outuvinv in1 1k/6.2832
cint1 in1 out1 3.9025e-13
rint11 in1 out1 1Meg
Gint1 out1 0 0 in1 10000000000 *out is int output
*integrator2
rint2 out1 in2 8k/6.2832
cint2 in2 out2 0.5e-12
rint21 in2 out2 1Meg
Gint2 out2 0 0 in2 10000000000 *out is int output
*integrator3
rint3 out2 in3 40k/6.2832
cint3 in3 out3 0.5e-12
Gint3 out3 0 0 in3 10000000000 *out is int output
rint31 in3 out3 1Meg
*k0 inversion
rk01 1 ink0 5k
rk02 ink0 outk0 5k
Gk0 outk0 0 0 ink0 10000000000 *out is int output
*k2 inversion
rk21 out2 ink2 5k
rk22 ink2 outk2 5k
Gk2 outk2 0 0 ink2 10000000000 *out is int output
*summing
rk0 outk0 insum 13.64k
rk1 out1 insum 6.27k
rk2 outk2 insum 18.78k
rk3 out3 insum 113.64kk
rfeed insum outsum 5k
Gsum outsum 0 0 insum 10000000000 *out is int output
routsum outsum 0 1Meg
*switch
Y1 VSWITCH outsum outswitch1 n13 0
cswitch1 outswitch1 0 1p
Y2 VSWITCH outswitch1 outswitch2 n12 0
cswitch2 outswitch2 0 1p
E1 out 0 outswitch2 0 10000000000 MIN=-1 MAX=1
r2 out 0 1k
*Gquantize outswitch1 0 outquantize 0 100000000000 MIN=-1
MAX=1
*output
*r2 outquantize 0 1k
.tran .01u 10u
*.ac dec 100 1 100Meg
.plot v(out1) v(out2) v(out3) v(outswitch1) v(outswitch2)
v(out) v(outsum) v(n12) v(n13) v(outuvinv) v(1) v(outq)
.end

Time domain version for 250khz signal

Spectral density for 250khz signal


4)
Loop filter
v1 1 0 ac 1
*integrator1
rint1 1 in1 1k/6.2832
cint1 in1 out1 3.9025e-13
Gint1 out1 0 0 in1 10000000000 *out is int output
rint11 in1 out1 10Meg
*integrator2
rint2 out1 in2 8k
cint2 in2 out2 0.5p
Gint2 out2 0 0 in2 10000000000 *out is int output
rint21 in2 out2 10Meg
*integrator3
rint3 out2 in3 8k/6.2382
cint3 in3 out3 0.5p
Gint3 out3 0 0 in3 10000000000 *out is int output
rint31 in3 out3 10Meg
*k0 inversion
rk01 1 ink0 8k
rk02 ink0 outk1 8k/6.2382
Gk01 outk1 0 0 ink0 10000000000 *out is int output
*k2 inversion
rk21 out2 ink2 8k
rk22 ink2 outk2 8k
Gk01 outk2 0 0 ink2 10000000000 *out is int output
*summing
rk0 outk0 insum 13.64k
rk1 out1 insum 6.27k
rk2 outk2 insum 18.78k
rk3 out3 insum 113.64kk
rfeed insum outsum 5k
Gk01 outsum 0 0 insum 10000000000 *out is int output
*output
*.tran .01u 10u
.ac dec 1000 1 10Meg
.plot v(out1) v(out2) v(out3)
.end
5)
*simulation of DSM
v3 n12 0 pulse(0 5 1f 1f 1f 1.953125e-9 3.90625e-9)
v2 n13 0 pulse(5 0 1f 1f 1f 1.953125e-9 3.90625e-9)
v1 1 0 SIN 0 0.65 256.25Meg

*quantize inversion
rq1 out inq 5k
rq2 inq outq 5k
Gq outq 0 0 inq 10000000000 *out is int output
*k0 inversion
ruv1 1 inuv 5k
ruv2 outq inuv 5k
Guv outuv 0 0 inuv 10000000000 *out is int output
ruvfeed outuv inuv 5k
*k0 inversion
rkuv outuv inuvinv 5k
rkuv1 inuvinv outuvinv 5k
Guvinv outuvinv 0 0 inuvinv 10000000000 *out is int output

*v1 1 0 ac 2
*integrator1
rint1 outuvinv in1 1k/6.2832
cint1 in1 out1 3.9025e-13
rint11 in1 out1 1Meg
Gint1 out1 0 0 in1 10000000000 *out is int output
*integrator2
rint2 out1 in2 8k/6.2832
cint2 in2 out2 0.5e-12
rint21 in2 out2 1Meg
Gint2 out2 0 0 in2 10000000000 *out is int output
*integrator3
rint3 out2 in3 40k/6.2832
cint3 in3 out3 0.5e-12
Gint3 out3 0 0 in3 10000000000 *out is int output
rint31 in3 out3 1Meg
*k0 inversion
rk01 1 ink0 5k
rk02 ink0 outk0 5k
Gk0 outk0 0 0 ink0 10000000000 *out is int output
*k2 inversion
rk21 out2 ink2 5k
rk22 ink2 outk2 5k
Gk2 outk2 0 0 ink2 10000000000 *out is int output
*summing
rk0 outk0 insum 13.64k
rk1 out1 insum 6.27k
rk2 outk2 insum 18.78k
rk3 out3 insum 113.64kk
rfeed insum outsum 5k
Gsum outsum 0 0 insum 10000000000 *out is int output
routsum outsum 0 1Meg
*switch
Y1 VSWITCH outsum outswitch1 n13 0
cswitch1 outswitch1 0 1p
Y2 VSWITCH outswitch1 outswitch2 n12 0
cswitch2 outswitch2 0 1p
E1 out 0 outswitch2 0 10000000000 MIN=-1 MAX=1
r2 out 0 1k
*Gquantize outswitch1 0 outquantize 0 100000000000 MIN=-1
MAX=1
*output
*r2 outquantize 0 1k
.tran .01u 10u
*.ac dec 100 1 100Meg
.plot v(out1) v(out2) v(out3) v(outswitch1) v(outswitch2)
v(out) v(outsum) v(n12) v(n13) v(outuvinv) v(1) v(outq)
.end

Time domain version for 250khz signal

Spectral density for 250khz signal


Time domain version for fs+250khz signal

Spectral density for fs+250khz signal

So from time domain version of output waveforms for both


250khz and fs+250khz ,it has inhibited ani alias property.
ON THOSE DIAGRAMS the amplitude of the quantized output for
250khz is 1 and -1 varying with signal,but for fs+250khz
the amplitude is -1 which stays at the same point

f)

Jitter noise

∆ ∆
= ( ) ∗ (1 − )
12 ∗

clear all

w=(0:0.0001:pi);z=exp(j*w);

mag=((((z-1).^3).*(1-z.^-1))./((z-0.6694).*(z.^2 - 1.531*z
+ 0.6639)));

mag=abs(mag); mag=mag.^2;

power=trapz(mag,w)

power =14.2165

∆ ∆
= ∗ 14.2165

1 = −137 = 1.99 ∗ 10
4
= ∆ ∗ 14.2165
12 ∗ 128 ∗ (3.90625 − 9)

12 ∗ 128 ∗ (3.90625 − 9) ∗ 1.99 ∗ 10


∆ = =
4 ∗ 14.2165

∆ =5

You might also like