IIR Hilbert - Matlab help anyone



Hi,
I'm (trying to) implement an IIR Hilbert Transformer. I found a
reference to a design which provides the z domain poles and zeros as
listed at the bottom of this post. The function is 12th order and I
figured that I could implement this conveniently with 6 cascaded
biquads (which I happen to have available in my FPGA DSP design).

I calculated out the IIR filter coeffs by taking the conjugate pole
pairs and zero pairs and multiplying them out to provide a function
like z^2 + aZ + b to provide the coefficients. These are listed below
also:

I then simply transplanted these coefficients into my biquad DSP (b
coeffs do not need to be negated as is often the case).

The response I get is not what I expected. It is flat in magnitude
with 45dB gain (should be 0dB) but the phase constantly varies instead
of being roughly 90 degrees for most of the band.

I also computed the frequency response in Excel and this does not
appear to give the response expected either. I assume it's finger
trouble but would someone out there mind having a look at this problem
in Matlab? I don't have Matlab or Scilab (and not trained up) and I
think it would be relatively straightforward for an experienced person
to check these calculations.

Many thanks if you can spare some time to look at this and please feel
free to call me stupid if I have made an obviously bad assumption.

Zeros (complex)
=========================
a jb
-0.834946 -1.459074
-0.834946 1.459074
0.834946 -1.459074
0.834946 1.459074
0 -1.707483
0 1.707483
-1.362397 -0.79655
-1.362397 0.79655
1.362397 -0.79655
1.362397 0.79655
-1.118507 0
1.118507 0

Poles (complex)
==============
-0.894071 0
0.894071 0
-0.547048 -0.319837
-0.547048 0.319837
0.547048 -0.319837
0.547048 0.319837
-0.295469 -0.516331
-0.295469 0.516331
0.295469 -0.516331
0.295469 0.516331
0 -0.585696
0 0.585696

Coefficients (numerator coeffs first then denominator):
======================================
a0 a1 a2
1 -1.669892 2.82603176
1 -1.669892 2.82603176
1 1.669892 2.82603176
1 0 2.915498195
1 -2.724794 2.490617488
1 2.724794 2.490617488
1 0 -1.251057909

(1) b1 b2
1 0 -0.799362953
1 -1.094096 0.401557221
1 1.094096 0.401557221
1 -0.590938 0.353899632
1 0.590938 0.353899632
1 0 0.343039804

.



Relevant Pages

  • Re: filter with arbitrary and variable rolloff
    ... realized by alternating real poles with real zeros. ... If you plot R.B-J's poles and zeros on log paper, ... if i recall correctly there was some manual adjustment ...
    (comp.dsp)
  • Re: Value of coupling caps
    ... > happining (multiple poles) an octave or so before the first -3dB ... > bandwidth of the first stage to a reasonable point. ... > And then an octave wider for the next stage and ect. ... zeros were the only considerations. ...
    (rec.audio.tubes)
  • Re: Bandpass system identification using IIRs (audio)
    ... You've specified the response relatively very far away from the ... location of the poles and zeros, and with only 6 digit precision, ... like it requires many more bits of precision to specify the ...
    (comp.dsp)
  • Re: Iterative Technique for PID Controller Tuning
    ... Page 5 The point to point response for my 3 poles at -2*PI*10 is plotted. ... The response is a critically damped response except for when the output is saturate. ... Notice that poles are were I put them but as I said before, the zeros can go anywhere. ... Page 8 The closed loop Bode plot. ...
    (sci.engr.control)
  • Re: Pole Barns
    ... Make poles out of 2x8s(I bolted mine together after nailing ... I made the bottom half of the poles with staggered ends ... packing material, got a laser and set my bottom wall girt, then ... Is this the Morton's Design? ...
    (rec.sport.football.college)

Loading