DSPRelated.com
Forums

counterphase detection in stereo audio

Started by kork February 4, 2010

kork wrote:

>>On Thu, 04 Feb 2010 09:57:49 -0600, kork wrote: >> >> >> >>>>kork wrote: >>>> >>>>>Hi folks, >>>>> >>>>>I'm going to develop a quality control application that inspects >>> >>>recently >>> >>>>>imported audio files for a number of checks. One of them is the >>> >>>detection >>> >>>>>of counterphase fragments in the file. With counterphase I mean a 180 >>>>>degrees (or pi rad, if you prefer) >>> >>>phase >>> >>>>>shift between the two audio channels in the (stereo) file. In a radio >>>>>broadcast of the file this is killing when it is listened through a >>>>>mono-receiver. >>>>> >>>>>I was thinking of subtracting one channel from the other (or reverse > > a > >>>>>channel and add it to the other). Then flagging the audio fragments > > as > >>>>>counterphase when the resulting signal differs a lot from zero during >>> >>>a >>> >>>>>certain amount of time. >>>>>But since it is likely that the 2 channels are anything but equal, I >>> >>>may >>> >>>>>never get to see a flatlioe. >>>>> >>>>>I thought maybe you DSP guys can give me some insights on this? Maybe >>>>>there's a test in the frequency domain I can think of? >>>> >>>>Compute (L+R) and (L-R), rectify, accumulate, compare. It is very >>>>obvious if the stereo channels are in phase or out of phase. >>>> >>>> >>>>Vladimir Vassilevsky >>>>DSP and Mixed Signal Design Consultant http://www.abvolt.com >>> >>>Hi Vladimir, >>> >>>Thanks for your answer. >>>Would you mind elaborating a bit on the "rectify" and "accumulate" >>>suggestions? They're not so obvious terms for me in this domain. Thanks >>>again. >> >>"Rectify": take the absolute value. >> >>"Accumulate": sum up a bunch of samples. >> >>Then compare the relative strengths of the L+R and L-R channels -- >>normally L-R should be significantly smaller than L+R. In fact, this is >>why the 'wrong' way is a broadcast-killer -- the FM stereo broadcast >>protocol depends on this property, won't work without it, etc. >> >>I'll charge you money for answers, too, but only if the question takes >>more than a few lines to answer. >> >>-- >>www.wescottdesign.com >> > > > An implementation of this has been running successfully for the past 15 > months so thanks a lot for the help. > > One nice anecdote to mention is that when an early version of the > application checked live recordings from churches or big halls (especially > with organs, flutes or sopranos) it gave a lot of false hits. Apparently > these types of recordings (using a couple of microphones hanging high on > the ceiling) resulted in a recording with not much difference between the > accumulations of L+R and L-R. I checked for [L-R] > [L+R] when I should > have checked for [L-R] > [L+R]*n. Where 2 <= 'n' <= 10.
You should have L and R lowpassed and then done the check.
> Hope this helps others.
2 + 2 = 4
> Thanks again.
"Thank you" means a lot to me. Just $100 would be enough. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com