Transient noise contributions don't add up

Status
Not open for further replies.

pollostrazon

Newbie
Joined
Dec 22, 2021
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
55
Hello everyone,
I hope I am posting this question in the right sub-forum.

In Virtuoso (I am using spectre) I have a circuit in which I inject some charges through delta-like pulses and expect at the output a semigaussian unipolar response (I evaluate it at a time t_p). I am performing transient noise analyses (# = 300) in order to get the input-referred noise in terms of charge (Equivalent Noise Charge, in electrons) at t_p through a formula which is basically based on the Signal-to-Noise Ratio. For reference when SNR -> inf, ENC -> 0 e- .
My issue is that when I compare the results obtained for a transient noise in which every possible noise source is activated (noise contribution list is not set) and those obtained through single transient noise analyses in which I enable a block at a time (noise contribution list set to "on" for the block I want to get info about), they don't add up. I'll provide a numeric example so as to make my statement clearer. Let's say that transient noise gives me 250 e- at the input, then I perform the transient noise with single block contribution activated (preamplifier, shaper, biases) and, summing them, I get 170 e-; summing them in quadrature doesn't work too. My question is: where are the 80 e- missing? I made sure to perform one transient noise for each single block, so no block contribution is missing in the sum.

Transient noise analysis is set to conservative, noisefmax = 1G, noisefmin = 1, noiseseed = VAR("ITERATION") (I set this value to parallelise transient noise analyses).

Hope everything is clear and specified to an acceptable degree.
Thanks in advance for the help.
 

you ran individual noise processes and "everybody" noise process
try running two or three at a time
there may be processes where they interact in random(?) ways,
so that the results do not add up (should not add up??)

noiseseed = VAR("ITERATION") (I set this value to parallelise transient noise analyses).
what does noiseseed do? the name implies to me a seed for a random number generator.
if that's what it is, each time to you set it to something, you should get different results.
since it is computer, each time you set it to the same thing, you should get the same result.

if noise analysis is a random process, depending on some seed, i see no reason why the individual results and the total should agree
 

Hello wwfeldman,
you ran individual noise processes and "everybody" noise process
try running two or three at a time
there may be processes where they interact in random(?) ways,
so that the results do not add up (should not add up??)
I will try to do it, but it seems strange to me that that the blocks I have in my circuit are interacting in some ways. Is there a way in which I am able to assure they are uncorrelated? (I thought a buffer would be sufficient.)
Exactly: noiseseed value in transient noise form, acts as a seed for random generation. Fact is that I always run simulations with this seed going from 1 to 300 with unitary step, so that I am parallelising the jobs and my analysis are reproducible. I therefore think that noise is generated in the same way for each simulation I carry out. Am I wrong?

Thanks and appreciate your time.
 

it seems strange to me that that the blocks I have in my circuit are interacting in some ways. Is there a way in which I am able to assure they are uncorrelated? (I thought a buffer would be sufficient.)

you're looking at noise, not circuit function
adding a buffer adds a component which adds noise
 

Sorry for the awfully late reply
you're looking at noise, not circuit function
adding a buffer adds a component which adds noise
I have not specified that this buffer is ideal (vcvs component from AnalogLib). Is the situation unchanged? I expected this component not to introduce noise.

Thanks for your patience,
Paolo
 

Is it possible that the math is inappropriate, like
needing to be RSS'd rather than straight summation?
 

you wrote:

I have not specified that this buffer is ideal (vcvs component from AnalogLib). Is the situation unchanged? I expected this component not to introduce noise.

i take it you meant you specified it as ideal, hence it will introduce no noise.
 

i think, that, just as circuit behavior in "block 1" effects circuit behavior in "block 2",
noise behavior in "block 1" effects noise behavior in "block 2".
therefore, i do not expect noise behavior to add up.

you can check by
(1) measure the noise result in "block 1", with no noise in the other blocks,
(2) then measure the noise result in "block 2", with no noise in the other blocks,
(3) then measure the noise result in "block 1 and block 2", with no noise in the other blocks,
i do not expect the first two to add up to the third.

then repeat with 2 other blocks.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…