Some very interesting references. I'm curious what uses people find for the Hilbert transform for in audio. An instantaneous amplitude envelope, for use in compressors and other envelope-driven effects? Or something else?
-Ethan On Sun, Feb 5, 2017 at 10:13 AM, Eric Brombaugh <ebrombau...@cox.net> wrote: > 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 > >
_______________________________________________ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp