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. |
|
cremez usage confusion
Started by ●November 22, 2002
Reply by ●November 22, 20022002-11-22
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. |
Reply by ●November 22, 20022002-11-22
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 |