DSPRelated.com
Forums

How to make filter like this for stereo expansion

Started by jungledmnc October 6, 2012
This can be done by

OUT1= 0.5*(1 + AP(Z))

OUT2= 0.5*(1 - AP(Z))

Where AP(Z) is a cascade of allpass filters designed to produce the log-frequency characteristic  you are looking for. 
You probably need to use an optimizer to figure out AP(Z). 

The outputs sum to unity by construction. 
Mono-to-fake-stereo has been done like this since the early 70's. Back then it was all analog. 

If your goal is mono to stereo, I doubt that the log-spacing has to be super-accurate. Probably could get by with filter orders from 8 to 12 or so if I had to guess.


Bob
On Wednesday, December 12, 2012 9:28:22 PM UTC-7, Robert Adams wrote:
> This can be done by > OUT1= 0.5*(1 + AP(Z)) > > OUT2= 0.5*(1 - AP(Z)) > > Where AP(Z) is a cascade of allpass filters designed to produce the log-frequency characteristic you are looking for. > > You probably need to use an optimizer to figure out AP(Z). > > The outputs sum to unity by construction. > > Mono-to-fake-stereo has been done like this since the early 70's. Back then it was all analog. > > If your goal is mono to stereo, I doubt that the log-spacing has to be super-accurate. Probably could get by with filter orders from 8 to 12 or so if I had to guess. > > Bob
Wow, this is a blast from my past. I did this in 1997. I modified the log(frequency) phase at low frequencies else the oscillations become untenable, and I added a high pass at 50 or 100 Hz because you can get some large L-R amplitudes which can make even good speakers complain under certain conditions. I created the poles and zeros for the filter (digital and analog) by a Hankel matrix method plus some other tricks that I had all rolled up in a kind of CAD program�the details are pretty technical. As I recall it sounded pretty good. I just dug up the work and I still have files of filter coefficients. Jerry