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? I'd appreciate you responses. Thanks in advance, Rob Vermeulen
counterphase detection in stereo audio
Started by ●February 4, 2010
Reply by ●February 4, 20102010-02-04
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
Reply by ●February 4, 20102010-02-04
> > >kork wrote: >> Hi folks, >> >> I'm going to develop a quality control application that inspectsrecently>> imported audio files for a number of checks. One of them is thedetection>> 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 duringa>> certain amount of time. >> But since it is likely that the 2 channels are anything but equal, Imay>> 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.comHi 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. Regards, ~Rob
Reply by ●February 4, 20102010-02-04
>>Compute (L+R) and (L-R), rectify, accumulate, compare. >>It is very obvious if the stereo channels are in phase or out of phase. >> > > 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.The cost of elaborated answer is $500. My contact info is at the web site. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Reply by ●February 4, 20102010-02-04
>It is very obvious if the stereo channels are in phase or out of phase.... (cut)...>The cost of elaborated answer is $500. >My contact info is at the web site. > > >Vladimir Vassilevsky >DSP and Mixed Signal Design Consultant >http://www.abvolt.com$500 for a "very obvious" solution? I wish I had your job ;-)
Reply by ●February 4, 20102010-02-04
kork wrote:>>It is very obvious if the stereo channels are in phase or out of phase. > > > ... (cut)... > > >>The cost of elaborated answer is $500. >>My contact info is at the web site. >> >> >>Vladimir Vassilevsky >>DSP and Mixed Signal Design Consultant >>http://www.abvolt.com > > > > $500 for a "very obvious" solution? I wish I had your job ;-)That's why you don't have my job. If I was you, I woudn't ask idiotic questions. VLV
Reply by ●February 4, 20102010-02-04
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
Reply by ●February 5, 20102010-02-05
Tim Wescott 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.The accumulation should be lossy; i.e., include a "forgetting factor". alternatively, you could dump the result after a suitable time and start over. Jerry -- Engineering is the art of making what you want from things you can get. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Reply by ●February 5, 20102010-02-05
>Tim Wescott 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 a180>>>>> degrees (or pi rad, if you prefer) >>> phase >>>>> shift between the two audio channels in the (stereo) file. In aradio>>>>> 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 reversea>>>>> channel and add it to the other). Then flagging the audio fragmentsas>>>>> counterphase when the resulting signal differs a lot from zeroduring>>> 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, thisis>> 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. > >The accumulation should be lossy; i.e., include a "forgetting factor". >alternatively, you could dump the result after a suitable time and start>over. > >Jerry >--Thanks Tim and Jerry, I appreciate the jargon explanation. This sounds pretty straight-forward to implement. I'll have a go at it. Jerry, your "forgetting factor" sounds logical. I was thinking of just testing separate successive chunks of samples, so I won't have any "memory-effect". Best regards, ~Rob
Reply by ●February 5, 20102010-02-05
kork wrote:>> Tim Wescott 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. >> The accumulation should be lossy; i.e., include a "forgetting factor". >> alternatively, you could dump the result after a suitable time and start > >> over. >> >> Jerry >> -- > > Thanks Tim and Jerry, > > I appreciate the jargon explanation. > This sounds pretty straight-forward to implement. I'll have a go at it. > > Jerry, your "forgetting factor" sounds logical. I was thinking of just > testing separate successive chunks of samples, so I won't have any > "memory-effect".That will require counting and branching. Forgetting is actually simpler. The convention is that x[n] is the input and y[n] is the output. Set y[n+1] = (1-a)*y[n] + a*x[n+1]. For stability, 0 > a > 1. Larger values forget faster. This is called an exponential averager. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������