DSPRelated.com
Forums

Frequency response to Impulse response conversion

Started by sudheer nair March 27, 2002
Hi All,
I want the impulse response of a filter from its
frequency response.

I have the required frequency response of my
filter--but the frequency response is specified for
some frequencies only.
For example:
Let F be the list of frequencies at for which I have
the response and M be the corresponding amplitude at
the given frequencies:
F = [ 100 125 160 ...... 4000]; freqn in Hz
M = [ m1 m2 m3 ...... mn ]; abs amplitude.

There is no relation between the frequencies at which
the response is available.

I want the impulse response of this filter.

Could anyone plz guide me how???

Thanx.

Rgds
Sudheer



Sudheer,

Your problem does not have a unique answer; it depends on the kind of filter
you design, based on the frequency response "specification" you provide.
Since you aren't specifying the points in between your frequency samples,
there are an infinite number of possible filters that match the spec.
However, you're probably thinking that the missing points should be
interpolated somehow.

If the m vector is the magnitude of the frequency response (i.e. no phase
response information) then you can use the yulewalk.m function in the Signal
Processing Toolbox. This designs an IIR filter that approximates the desired
magnitude frequency response. Then you can use impz.m to get the impulse
response of that filter.

For a linear-phase FIR filter, you could use remez.m or fircls.m to design
it. Then the impulse response is just the resullting coefficient vector. If
you want to specify a non-linear phase response as well as the magnitude
response, i.e. a complex frequency response, you may want to try cremez.m,
but you'll get a complex impulse response, maybe with a neglible imaginary
part if you're lucky.

Good luck,
Mark Egler

> -----Original Message-----
> From: sudheer nair [mailto:]
> Sent: Wed, March 27, 2002 12:25 AM
> To:
> Subject: [matlab] Frequency response to Impulse response conversion > Hi All,
> I want the impulse response of a filter from its
> frequency response.
>
> I have the required frequency response of my
> filter--but the frequency response is specified for
> some frequencies only.
> For example:
> Let F be the list of frequencies at for which I have
> the response and M be the corresponding amplitude at
> the given frequencies:
> F = [ 100 125 160 ...... 4000]; freqn in Hz
> M = [ m1 m2 m3 ...... mn ]; abs amplitude.
>
> There is no relation between the frequencies at which
> the response is available.
>
> I want the impulse response of this filter.
>
> Could anyone plz guide me how???
>
> Thanx.
>
> Rgds
> Sudheer >
> ------------------------ Yahoo! Groups Sponsor
> ---------------------~-->
> FIND OLD SCHOOL FRIENDS and OLD FLAMES
> Click here to start your search at Reunion.com today!
> http://us.click.yahoo.com/NFsLKA/Dn2DAA/ySSFAA/wHYolB/TM
> --------------------------
> -------~->
>
> _____________________________________
> Note: If you do a simple "reply" with your email client, only
> the author of this message will receive your answer. You
> need to do a "reply all" if you want your answer to be
> distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/matlab
>
> More DSP-Related Groups: http://www.dsprelated.com/groups.php3
>
> ">http://docs.yahoo.com/info/terms/