Yes, I'm using the Hilbert transform to generate an analytic signal for use in 
a Bode-style frequency shifter and also in single-sideband modulator and 
demodulators. The image rejection metric is a critical aspect of the 
performance of these systems and is related to the error from true 90deg phase 
shift.

For my optimization I started with the original 8th order set that was given 
and then used a polynomial curve fit to interpolate those values from 8th order 
to 12th order. Then using those values as a starting point, I went into an 
iterated optimization which dithered the coefficients and evaluated the phase 
shift error, saving any set that reduced the error. The end result provided a 
noticeable improvement in the image rejection and I've been using those 
coefficients in some of my radio designs. One of them is in github here:

https://github.com/emeb/iceRadio/blob/master/MCU/f303_ice5_rxadc/audio.c

As I said earlier, this approach to extending the performance of the filter is 
rather "brute force and ignorance", but it got the job done and the shift from 
8 to 12 poles didn't present a significant increase in the computational cost - 
I've been using ARM Cortex M4F processors with single-precision floating point 
hardware to implement these filters and they work well.

Eric

On Feb 4, 2017, at 11:25 PM, robert bristow-johnson wrote:

>  
> by "image rejection", do you mean, for an analytic filter:
> 
>     a[n] = x[n] + j*y[n]
> 
>    where y[n] = Hilbert{ x[n] }
> 
> the gain difference between the positive and negative frequencies? 
> 
> i guess you're right.  looks like -44 dB on Olli's graph.  that's not so 
> great, i guess.
> 
> is your optimized filter 8th order?  8 real poles or are there some 
> complex-conjugate poles in there? i haven't groked why Olli seems to think 
> that real poles, symmetrical about the origin, is the best way. it seems like 
> a restriction that might cause one to miss the optimum.
> 
> can you tell us how you designed or optimize the pole loci, Eric?  other than 
> some kinda brute force method (perhaps Greg's FDLS) i am still thinking about 
> how to approach that.  APFs so the gains stay 1 and we don't care about the 
> phase as long as the difference is 90°.  still don't know how i might set up 
> an optimization problem.  probably the best measure is the negative frequency 
> rejection with regard to the positive frequency gain.
> 
> r b-j
> 
>  
> 
> ---------------------------- Original Message ----------------------------
> Subject: Re: [music-dsp] ± 45° Hilbert transformer using pair of IIR APFs
> From: "Eric Brombaugh" <ebrombau...@cox.net>
> Date: Sat, February 4, 2017 10:28 pm
> To: r...@audioimagination.com
> music-dsp@music.columbia.edu
> --------------------------------------------------------------------------
> 
> > IIRC, when I implemented Olli's coefficients I was seeing about 40dB image 
> > rejection. My optimized filter gave more like 58dB.
> >
> > Eric
> >
> > On Feb 4, 2017, at 7:25 PM, robert bristow-johnson wrote:
> >
> >>
> >> sunuvubych Olli. i shoulda known about this.
> >>
> >> i dunno Eric, 2/100 radian is about ±0.5°. that's what Olli is indicating 
> >> on Figure 3. appears to be an 8th-order using 4 pole pairs about the 
> >> origin on the real line. (i'm just now groking his design methodology.) 
> >> and he seems to have exceedingly low amplitude variation in the Analytic 
> >> Filter magnitude response. dunno what is lackluster about that. (but i 
> >> haven't checked this out, yet.)
> >>
> >> i know that because you can sorta treat group delay (which is a function 
> >> solely of phase) like gain in an all-pass filter, for the purposes of 
> >> optimal filter design technique (like Parks-McClellan or Prony). maybe 
> >> that's what Olli is doing.
> >>
> >>
> >> --
> >>
> >> r b-j r...@audioimagination.com
> >>
> >> "Imagination is more important than knowledge."
> >>
> >>
> >>
> >> ---------------------------- Original Message ----------------------------
> >> Subject: Re: [music-dsp] ± 45° Hilbert transformer using pair of IIR APFs
> >>
> From: "Eric Brombaugh" <ebrombau...@cox.net>
> >> Date: Sat, February 4, 2017 8:55 pm
> >> To: music-dsp@music.columbia.edu
> >> --------------------------------------------------------------------------
> >>
> >> > The original Csound source has a set of coefficients for this type of
> >> > hilbert transform but they don't say how the coefficients were derived
> >> > and the performance is fairly lackluster. The only reference I've come
> >> > across for this was Olli Niemitalo's:
> >> >
> >> > http://yehar.com/blog/?p=368
> >> >
> >> > He gives a bit of theory, but the filter pair he provides doesn't give
> >> > great performance.
> >> >
> >> > I was able to use Olli's filter as a starting point for optimization of
> >> > a higher order AP set that gave almost 20dB better image rejection. I
> >> > interpolated the originals to a higher order and then used simulated
> >> > annealing with a cost function that included the bandwidth and image
> >> > rejection. Rather brute-force, but it worked.
> >> >
> >> > Eric
> >> >
> >> >
> >> > On 02/04/2017 04:32 PM, robert bristow-johnson wrote:
> >> >> hey guys,
> >> >>
> >> >> what's the best online reference you can tell me for theory and practice
> >> >> of designing APF pairs with ± 45° phase (+ a linear phase that
> >> >> represents causality delay) to result in a Hilbert pair for audio
> >> >> processing. i know how to do this for FIR and to use half-band
> >> >> symmetry, but i wanna make a MATLAB program where i can specify order
> >> >> and come up with an optimal pair of IIR APFs that have virtually 90°
> >> >> phase difference over the widest possible frequency range. also some
> >> >> discussion of error metric would be good (how do we decide what is
> >> >> "optimal"?). eventually, i wanna compare computational effort with the
> >> >> half-band FIR Hilbert transformer.
> >> >>
> >> >> anyone have a good, definitive reference?
> >> >>
> >> >> thanks.
> >> >>
> >> >> --
> >> >>
> >> >> r b-j r...@audioimagination.com
> >> >>
> >> >> "Imagination is more important than knowledge."
> >> >>
> >> >>
> >> >>
> >> >> _______________________________________________
> >> >> dupswapdrop: music-dsp mailing list
> >> >> music-dsp@music.columbia.edu
> >> >> https://lists.columbia.edu/mailman/listinfo/music-dsp
> >> >>
> >> >
> >> > _______________________________________________
> >> > dupswapdrop: music-dsp mailing list
> >> > music-dsp@music.columbia.edu
> >> > https://lists.columbia.edu/mailman/listinfo/music-dsp
> >> >
> >> >
> >>
> >> _______________________________________________
> >> dupswapdrop: music-dsp mailing list
> >> music-dsp@music.columbia.edu
> >> https://lists.columbia.edu/mailman/listinfo/music-dsp
> >
> >
> 

_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Reply via email to