Obtain exact frequency from impulse response

Discussion in 'MATLAB' started by Jyh-Cheng Jeng, Aug 11, 2008.

  1. When I compute the frequency response from impulse response
    by fft, does the accuracy of frequency response depend on
    the sampling interval of impulse response?

    If yes, how to improve the accaracy when I cannot reduce
    the sampling interval of impulse response?

    i.e.
    h is the impulse response of G(s)
    hatG = fft(h)
    how to make hatG approach G(jw) as close as possible?
     
    Jyh-Cheng Jeng, Aug 11, 2008
    #1
    1. Advertisements

  2. Jyh-Cheng Jeng

    Rune Allnor Guest

    The FFT is exact, to within numerical precision. If you compute
    the spectrum of a sampled waveform, the result of those computations
    must necessarily depend on the sampling interval.
    It depends on where G(jw) came from in the first place.

    If G(jw) is the spectrum of an infinite-length continuous-
    time waveform, there is nothing you can do, inasmuch as
    G[k]=fft(g[n]) is a sampled waveform and G(jw) is not.

    If G(jw) is the spectrum of a discrete-time waveform,
    you can let G[k] approach G(jw) by including more
    samples in g[n].

    Rune
     
    Rune Allnor, Aug 11, 2008
    #2
    1. Advertisements

  3. Jyh-Cheng Jeng

    Greg Heath Guest

    t = 0:dt:T-dt, T = N*dt

    f = 0:df:Fs-df, Fs = N*df

    the frequency resolution is df = 1/T
    the frequency extent is Fs = 1/dt

    If you cannot reduce dt to increase the frequency extent,
    can you increase N, to improve frequency resolution?
    Decrease dt and increase T.

    Hope this helps.

    Greg
     
    Greg Heath, Aug 11, 2008
    #3
  4. Jyh-Cheng Jeng

    jcjeng Guest

    If I cannot decrease dt, what can I do ??
    Also, I find the frequency response still not accurate when I use a
    large T.
    Increasing T seems only improve frequency resolution but not the
    accuracy.
    Thanks.
     
    jcjeng, Aug 13, 2008
    #4
  5. Jyh-Cheng Jeng

    jcjeng Guest

    G(jw) comes from a continuous stable transfer function G(s) (e.g. 1/(s
    +1))
    The impulse response of G(s) is of finite length.
    I cannot reduce the sampling interval.
    How can I make the FFT of the impulse response approach G(jw)?
    Thanks.

    JC
     
    jcjeng, Aug 13, 2008
    #5
  6. Jyh-Cheng Jeng

    Rune Allnor Guest

    First of all, you are mixing apples and oranges. The original
    spectrum G(s) is the Laplace transform of a continuous-time
    signal (conceptually) of infinite duration, whereas the FFT
    works on finite amounts of discrete-time data.

    So the FFT can not be used to compute G(s) directly.

    You can use several methods to find a discrete-time (DT) system
    which *approximates* the continuous-time (CT) system, though.

    One such method would be to sample the impulse response of
    the CT system. The FFT of the sampled impulse response
    would look similar to (but not equal to) the original G(s).
    Look up "filter design by the impulse invariance method"
    in a text on Digital Signal Processing to see the details.

    Another method to design a DT filter from a CT prototype
    is to transform the spectrum in a systematic way from
    CT domain to DT domain. This is known as "Bilinear
    Transform", BLT. Again, the DT result is *similar*,
    not equal, to the CT prototype. Look up the details
    in a book on DSP.

    Rune
     
    Rune Allnor, Aug 13, 2008
    #6
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.