DSPRelated.com
Forums

Differentiators using Remez/Parks McClellan

Started by Kumar Appaiah March 1, 2007
Kumar Appaiah wrote:
> On Mar 4, 2:11 am, wrote: >> The magnitude response of an ideal Hilbert transformer is the same as >> the magnitude response of a wire, ignoring delay. Kumar writes that he's >> content to ignore phase. So what does he want? A pure delay? How long? >> That's what I have trouble with. > > You are correct, and I realize that I should have worded my question a > bit more carefully. I apologize for my carelessness. > > OK, but still, my question remains this: whether someone has managed > to design a Hilbert transformer and/or a differentiator successfully > with Jake's code or GNU Octave? I have tried to debug it, but I can't > seem to find where the mistake lies, or what I'm doing wrong. > >> FIR impulse responses get very long when significant frequencies are >> very small fractions of (or come very close to) Fs/2, whatever they're >> intended for. HTs are no different. > > I really don't care about the length now. As long as I get something > close to +90 and -90 degrees of phase shift in most parts of the -pi > to pi interval with gain close to 1 (magnitude), I am happy. All I > want to know is "the right way" to use Jake's code for this purpose, > as it doesn't seem to be doing the same thing Matlab is doing.
I don't know anything about Jakes code. What about it gives it particular importance? If it some sort of assignment? Jerry -- Engineering is the art of making what you want from things you can get. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
On Mar 4, 6:59 am, Jerry Avins wrote:
> I don't know anything about Jakes code. What about it gives it > particular importance? If it some sort of assignment?
No, but it is a free implementation which has readable code, and I can correlate the information with Oppenheim and Schafer. Finally, I have got things working. I took the version of the code available with GNU Octave forge, and set a high grid density, and added instrumentation to their code to see how it works. In GNU Octave, you can get a decent differentiator with: remez(31, [0 1], [0 pi], 4096, 'differentiator') Hilbert transformers also seem all right with this. Thanks for the responses. Kumar
On Mar 4, 6:58 am, Jerry Avins wrote:
> Real signals are noisy, and differentiators emphasize high-frequency > noise. Even most analog "differentiators" are rolled off at high > frequencies. Digital differentiators with an odd number of taps roll off > properly. If you have time to waste, you can use a 5-tap differentiator, > but more than that brings only diminishing returns as you try to reach > Fs/4. Rick Lyons published an easily computed 5-tap differentiator. Ask > him or Google for it. > > If you explain what you want the differentiator to do, we might be able > to help you.
Thanks for the suggestion. I am looking through it. Kumar