Hi
If I can get my head round this (and as I'm _really_ not a guru at filter
design that's going to take some doing) I'll give it a go. As Geoffrey
says, the existing design really only works properly at higher sampling
rates tho' another design I have been playing with seems to work better at
the lower sampling rates. This is the Hilbert from CSound which uses poles
from Bernie Hutchin's "Musical Engineer's Handbook", but multiplied by a
factor of 15. The curious thing about that is that it doesn't seem to do
any warping unless it's already buried in the pole frequencies!
I'm also impressed with Fon's implementation (no surprise there) which I
put into my code this morning out of curiosity to see how well it does in
comparison - and it works very well indeed. The only problem with Fon's
code is that the filter poles are pre-optimised for a limited range of
sample rates (44.1/88.2 and 48/96) and I'd like more even more choice. It
shows a little bit more phase difference variance at the higher frequencies
than the CSound implementation but unless I am missing something it is only
a four pole per leg implementation, as opposed to CSounds (and Geoffrey's)
6 poles per leg. In both cases, however, the low end (under a hundred Hz)
becomes problematic at the higher sampling rates, tho' if I reduce the
multiplying factor of 15 mentioned above I can improve the performance of
the CSound based Hilbert without doing too much damage to its high end
response. What I'd be really interested in is if anyone has any code
(Scilab, Octave or even Matlab) to optimise the choice of poles....
Dave
On Jan 15 2011, Peter Craven wrote:
Geoffrey wrote:,
These are probably ok at 96 or 192, but at 44.1/48 I think they
will wander off at high frequencies due to warping.
A better approach is to look for a solution which is symmetrical
about fs/4.
If the bilinear transformation is used, then a 90 degree analogue
relative phase-shift becomes a 90-degree digital relative phase shift.
(Frequency warping will cause the roundabout to spin faster as we
approach Nyquist, but the two horses will remain 90 degrees apart !)
The "symmetrical about fs/4" design can be derived in this way. If
one starts with a set of logarithmically-spaced analogue poles and
zeroes (adjusted for end-effects a la Gerzon) and scales them to be
symmetrical about s=1, so that for each zero (or pole) at s=-k there
is another at s=-1/k, then when you take the two factors (1+s*k) and
(1+s/k), multiply them and put them through the bilinear
transformation s=(z-1)/(z+1), you find that the numerator is
(k^2+2*k+1)*z^2 - (k^2+2*k-1)
Thus there is no term in z, and the whole thing becomes a function of
z^2 only.
Hence the symmetry about fs/4. And some economy - especially if the
DSP platform can implement z^-2 can be implemented at less than twice
the cost of z^-1.
Peter
------------------------------------------------------------
Saturday, January 15, 2011, 10:38:34 AM, Geoffrey wrote:
On 14 Jan 2011, at 17:00, sursound-requ...@music.vt.edu wrote:
Message: 7
Date: Fri, 14 Jan 2011 08:52:17 +0000
From: Dave Malham <d...@york.ac.uk>
Subject: Re: [Sursound] Available UHJ encoders?
To: Surround Sound discussion group <sursound@music.vt.edu>
Message-ID: <4d300ec1.7080...@york.ac.uk>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
On 14/01/2011 01:54, J?rn Nettingsmeier wrote:
under linux, you can run jconvolver with the uhjenc plugin, sounds
very good, but introduces 2048 samples of latency. and fons has
recently added an IIR-based uhj encoder to the AMB plugin set (with
zero latency but likely some compromises in sound quality), i haven't
had the chance to test it carefully, but a quick run-through showed it
does the job, although i prefer the sound of the convolution one.
D*mn, I'm just finishing off a (VST/AU) encoder myself using an IIR
filter set based on the analogue all pass filters in the original
Calrec unit (as designed by Geoffrey)-
Nice to know something I did 30 years ago is still worth ripping off :-)
These are probably ok at 96 or 192, but at 44.1/48 I think they will
wander off at high frequencies due to warping. A better approach is to
look for a solution which is symmetrical about fs/4. That version is
only about 20 years old :-) Used with backwards dubbing gives
partitioned convolution a run for its money.
rgds, Geoffrey -------------- next part -------------- An HTML
attachment was scrubbed... URL:
<https://mail.music.vt.edu/mailman/private/sursound/attachments/20110115/5ca3ac54/attachment.html>
_______________________________________________ Sursound mailing list
Sursound@music.vt.edu
https://mail.music.vt.edu/mailman/listinfo/sursound
_______________________________________________
Sursound mailing list
Sursound@music.vt.edu
https://mail.music.vt.edu/mailman/listinfo/sursound
_______________________________________________
Sursound mailing list
Sursound@music.vt.edu
https://mail.music.vt.edu/mailman/listinfo/sursound