[SI-LIST] Re: Impulse vs. Step Response?

  • From: "Dmitriev-Zdorov, Vladimir" <vladimir_dmitriev-zdorov@xxxxxxxxxx>
  • To: "si-list@xxxxxxxxxxxxx" <si-list@xxxxxxxxxxxxx>
  • Date: Mon, 5 Sep 2011 03:44:15 +0000

Thanks Yuriy,

The problem is indeed in the FFT algorithm, but it appears even deeper than it 
first looked. Thanks to the original question, this thread highlights an 
important issue.  

The entire discussion is caused by a wrong expectation from FFT. We used 
discrete Fourier transform (DFT) - because FFT is merely an algorithmically 
efficient implementation of DFT - but expected the results to be similar to the 
analytical solution for the integral Fourier transformation, in case of 
singular spectrum.
Unfortunately, the two approaches - though closely related - are different. DFT 
essentially replaces unbounded aperiodic function, with a one having a period 
equal to the time interval of consideration. It is correct to say that DFT 
computes the coefficients of N harmonics, n=0…N-1, of a periodical function, 
with base frequency equal 1/T, if the time domain response of duration T is 
represented by N samples.
In some cases, DFT results in an intuitively expected spectrum. This is for 
example the case when an entire time domain response fits into the interval 
(0,T) and is zero outside. Plus, the sampling of the time response should be 
sufficiently fine to accurately represent high frequencies. The second 
condition is satisfied, but the first is not.
What happens if we compute Fourier series of a periodical function having a 
non-zero mean value? Right, the mean value becomes a zero harmonic and does not 
affect magnitudes of other harmonics in any way. This is what happens with DFT 
in case of the response X(t)=1-exp(-t/tau). With sufficiently large t 
(practically, already after 10ns) X(t) approximates to the constant 1.0. FFT 
converts this constant into relatively large zero harmonic (or, depending on 
implementation, it may become not the first but the N-th sample of the resulted 
spectrum). We do not see any 1/(j*2*Pi*freq) multiplies from DFT exactly for 
this reason.
Mathematically, DFT is computed as follows: Y(k) = (1/N) SUM(for n=0 to N-1) { 
Xn*exp(-j*2*Pi*k*n/N)}. If Xn is constant (let’s consider the case of separate 
summation for the term equal ‘1’, the above sum is exact zero for all k except 
multiples of N. It is only for k=0 that exponentials are all ones and the sum 
becomes 1.0.
To properly address the case of aperiodical function truncated at essentrially 
non-zero value is to remove such discontinuity from the very beginning. Then, 
we should compute the spectrum of a pulse that has a finite energy (in our 
case, this is exp(-t/tau)) and then add what we ‘d expect from this extra 
constant addition.

Please be aware that many standard FFT implementations were not designed to 
take the constant components properly. 

Vladimir

-----Original Message-----
From: "Yuriy Shlepnev" <shlepnev@xxxxxxxxxxxxx>
Subject: [SI-LIST] Re: Impulse vs. Step Response?
Date: Sat, 3 Sep 2011 12:28:40 -0700

David,

Following Vladimir's advice, take a look at the time domain response curve
V(out).
If it looks close to the expected step response (voltage exponentially rise
from 0 to 1), then the problem is with the FFT computation. I would use
complex FFT from a math software in this case with appropriate
normalization.
If it looks close to the expected impulse response (voltage jumps to some
value and exponentially goes to 0), then the problem is in your SPICE
simulation setup. I would switch to PWL description of the step function as
was suggested earlier.

Best regards,
Yuriy

Yuriy Shlepnev
www.simberian.com   


From: si-list-bounce@xxxxxxxxxxxxx [mailto:si-list-bounce@xxxxxxxxxxxxx] On
Behalf Of David Banas
Sent: Friday, September 02, 2011 3:36 PM
To: 'shlepnev@xxxxxxxxxxxxx'; 'steve weir'; 'si-list@xxxxxxxxxxxxx'
Subject: [SI-LIST] Re: Impulse vs. Step Response?

I used the FFT calculator in CosmosScope with the following settings:
- `# of Points (Displayed)' = 8192
- `Time Start'              =    0
- `Time Stop'               =    1 us
- `Time Increment'          = linear
- `Waveform View'           = line
- `Windowing Function'      = rect

-db------------------------------------------------------------------
To unsubscribe from si-list:
si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field

or to administer your membership from a web page, go to:
//www.freelists.org/webpage/si-list

For help:
si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field


List technical documents are available at:
                http://www.si-list.net

List archives are viewable at:     
                //www.freelists.org/archives/si-list
 
Old (prior to June 6, 2001) list archives are viewable at:
                http://www.qsl.net/wb6tpu
  

Other related posts: