The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Design >> Mixed-Signal Design >> How does the CIFF strucutre achieve exact NTF zero locations in sigma-dela ADCs? https://designers-guide.org/forum/YaBB.pl?num=1266894841 Message started by john_ana on Feb 22nd, 2010, 7:14pm |
Title: How does the CIFF strucutre achieve exact NTF zero locations in sigma-dela ADCs? Post by john_ana on Feb 22nd, 2010, 7:14pm Hi, I am using the toolbox from Richard Schreier for a sigma-data ADC. >> ntf=synthesizeNTF(3,16,1.5,1) Zero/pole/gain: (z-1) (z^2 - 1.977z + 1) ----------------------------------- (z-0.9942) (z^2 - 1.994z + 0.9942) >> [a,g,b,c]=realizeNTF(ntf,'CIFF') realizeNTF Warning: The ntf's zeros have had their real parts set to one. a = 0.0116 -0.0229 -0.0003 g = 0.0230 b = 1 0 0 1 c = 1 1 1 However, from the flow-diagram of CIFF structure, it only uses cascaded 1/(z-1), and there is a feedback from the output of the third integrator to the input of the second. This can only achieve z^2-2*z+1+r ,where r is the small feedback facto. It has no way to realize the zeros in z^2-1.977*z+1. Is something wrong with my understanding? |
Title: Re: How does the CIFF strucutre achieve exact NTF zero locations in sigma-dela ADCs? Post by yvkrishna on Feb 22nd, 2010, 8:52pm hi john_ana, I am not sure if you are refering to the flow diagram of the CIFF structure shown in the Toolbox document "DSToolbox.pdf" page num 35 (ver 7.3) It clearly has more than one forward paths with coefficients a1,a2,a3. so there can be zeros. regards, yvkrishna |
Title: Re: How does the CIFF strucutre achieve exact NTF zero locations in sigma-dela ADCs? Post by john_ana on Feb 22nd, 2010, 9:32pm Acutally, I am using > ntf=synthesizeNTF(3,16,1,1.5) Zero/pole/gain: (z-1) (z^2 - 1.977z + 1) ----------------------------------- (z-0.6657) (z^2 - 1.524z + 0.6599) Anyway, there zeros are at 1, 0.9885 + 0.1512i, 0.9885 - 0.1512i They are all on unit circle. However, if I use the CIFF stucture, there is no way I can get complex conjugate zeros on unit circle, I can only get zeros where z^2-2*z+1+g1=0. Please see the attached derivation, I asume k1=k2=k3, which is the case on pp. 22 of Richard's toolbox v7.2 documentation. |
Title: Re: How does the CIFF strucutre achieve exact NTF zero locations in sigma-dela ADCs? Post by yvkrishna on Feb 22nd, 2010, 10:30pm looks like there is some confusion about 'g1' used. since -g1 is used in the realisation, it can be assumed to be a positive quantity. now z^2-2*z+1+g1=0 can have complx conj roots if (DET<0) i.e., 4-4*(1+g1) <0 => -4*g1 <0 which is true. regards yvkrishna |
Title: Re: How does the CIFF strucutre achieve exact NTF zero locations in sigma-dela ADCs? Post by john_ana on Feb 22nd, 2010, 10:50pm if you use freqz([ 1 -2 1.023]) which is realizable via CIFF and compare with freqz([ 1 -1.977 1]), whose zeros are on unit circle. you can tell the frequency response is quite different. The first reponse has quite less attenduation at desired zero frequency. |
Title: Re: How does the CIFF strucutre achieve exact NTF zero locations in sigma-dela ADCs? Post by Berti on Feb 23rd, 2010, 12:29am If you use want you zeros being on the unit circle (z-transform), the local feedback loop (g) must have only one delay. If the loop has two delays the zeros lie on a straight line, which results in z^2-2*z+1+g1=0, as you wrote. However, for moderately large OSR the difference is usually small and people accept that the zeros are not on the unit circle since the circuit implementation is simpler. For low OSRs however, you should probably modify you loop filter in order the keep the zeros on the unit circle. Regards |
Title: Re: How does the CIFF strucutre achieve exact NTF zero locations in sigma-dela ADCs? Post by john_ana on Feb 23rd, 2010, 1:31am Hi Berti, I agree that for high or moderate OSR, the difference is not big. For low OSRs, how do you achieve the desired NTF? 1) use CRFF or CRFB structure, which has a z/(z-1)^2 in their transfer function. It is easy to realize z^-1/(1-z^-1), how do you realize 1/(1-z^-1). I know some switch-capacitor implementation can realize z^1/2, is there any other way? 2) use CIFB structure, but you have need extra DACs need to build and Feed forward structure can achieve lower distortion since it only process mostly quantization noise only. 3) how do you achieve the NTF in continuous-time Sigma-Delta? I know you can use d2c with zoh to converter the NTF from Z domain to S domain and the 'zoh' will take care NRZ dac pulse, however, usually you get a transfer function H(s) that has poles like Num(H(s))=s(a*s^2+b*s +c). However, if you use two 1/s in cascade and feedback from the output of the second 1/s to the input of the first 1/s, you will get something like K(s)=(x*s^2+y), unless you feedback from the output of the second 1/s to the input of 1/s as well. However, if you look at most published continuous-time sigma-delta, nobody actually feedback from the output of the second 1/s to the input of the second 1/s. All of them only feedback from the output of the second 1/s to the input of first 1/s. |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |