Forums

cremez usage confusion

Started by Appalayagari Sreedhar November 22, 2002
Hi,

I am trying to design a Nonlinear FIR filter,

i am confused with the inputs to be given,

i have fresp in that,i gave the inputs as follows

b = cremez(20,[0 0.375 0.5 1],[0.01 0.1]);

ignoring the fresp but the coefficeints i obtained are symmetric and symmetric
impulse response does not gives us the Nonlinear phase,it indeed gives the
linear response.

thanx in advance.

with luv,sree.



Appalayagari Sreedhar

Look for a minimum phase function, to convert symmetric impulse response but
keep
magnitude (freq) response the same.

Jeff Brower
DSP sw/hw engineer
Signalogic

> I am trying to design a Nonlinear FIR filter,
>
> i am confused with the inputs to be given,
>
> i have fresp in that,i gave the inputs as follows
>
> b = cremez(20,[0 0.375 0.5 1],[0.01 0.1]);
>
> ignoring the fresp but the coefficeints i obtained are symmetric and symmetric
impulse response does not gives us the Nonlinear phase,it indeed gives the
linear response.
>
> thanx in advance.
>
> with luv,sree.





You cannot ignore the fresp function, that is where you specify the response you
want (both magnitude and phase). If you are making a differentiator or a
hilbert-transform filter, you can use the pre-written fresp functions
"differentiator" or "hilbert", respectively. Otherwise, you'll have to write
your own fresp function. Type "help cremez" for the details.

If you are trying to design a minimum-phase FIR filter, you can do the following
without using cremez:
1. Design a normal, linear-phase FIR filter using remez (not cremez).
2. The MATLAB statement "Flt_min = polystab(Flt)" converts the linear phase
filter Flt into the minimum-phase filter Flt_min having the same magnitude
response.

If, however, the phase response you want is custom, such as you'd need for
channel equalization, you'll have to write your own fresp function.

Sincerely,
Glen Ragan