active noise cancelling
Posted: Sat Oct 12, 2013 7:08 pm
I was wondering if anyone has tech details on how active noise cancelling works. I mean, I get the inverse phase thing.. but I don't think the implementation is that straight forward.
Here's what I tried in desperation when my office was loud. I downloaded PD, and made a quick phase inverter that inverted the sound input (Mac book pro mic), and just pumped that into my headphones. I was imagining with a bit of phase tweaking, I could compensate for latency (5ms or something like that, lowest I could set it to) and get at least SOME cancellation. Well, not quite so easy. I got no discernible cancellation. Worse yet, it was pretty much the actual noise + mic input, which was like, double the noise. So I very successfully built a noise amplifier in case I wanted to hear everyone's conversation with double the precision.
Perhaps it was the latency. Since the inverted signal has to be in perfect inverse, my timing might have been off. But that's IF the noise input mic is on the headphone, or somewhere stationary where the distance between the mic and the headphone is constant. In that case, the inverse signal delay can be preset to account for the phase difference btw the input mic and driver. But I also have a pair of active noise cancelling IEM from Sony where the mic is separate from the ear piece. It's actually on a battery pack on the chord (where the volume controller usually is)... And it can move wherever. So perhaps the inverse signal is actually a more "general" signal, that doesn't have to be a perfect inverse.
As a work around "hack", I made a simple 3 band analyzer that controlled 3 bands of noise, so at least I could "mask" the incoming noise with a similarly shaped noise. This worked rather well, and it's obviously not using phase cancellation at all. Of course, I hear a bunch of noise generated by my noise "canceller" (quite ironic), but the generated noise is unintelligible and thus blocks my colleagues's stories about his favorite pizza joint from reaching my brain. It's at least a success in cancelling out the semantic portion of the noise. How did I know he was talking about pizza? Because that's what he'd been talking about the past 2 weeks. Ahh, gotta love New York.
But I still do wonder what the DSP way of accomplishing this is. Is it just inverting the input and timing it perfectly? There's got to be a more robust approach.. Anyway, that's what I was thinking about during my jog today. Thought I'd follow up on it and get some input from the greats on Z.
Here's what I tried in desperation when my office was loud. I downloaded PD, and made a quick phase inverter that inverted the sound input (Mac book pro mic), and just pumped that into my headphones. I was imagining with a bit of phase tweaking, I could compensate for latency (5ms or something like that, lowest I could set it to) and get at least SOME cancellation. Well, not quite so easy. I got no discernible cancellation. Worse yet, it was pretty much the actual noise + mic input, which was like, double the noise. So I very successfully built a noise amplifier in case I wanted to hear everyone's conversation with double the precision.
Perhaps it was the latency. Since the inverted signal has to be in perfect inverse, my timing might have been off. But that's IF the noise input mic is on the headphone, or somewhere stationary where the distance between the mic and the headphone is constant. In that case, the inverse signal delay can be preset to account for the phase difference btw the input mic and driver. But I also have a pair of active noise cancelling IEM from Sony where the mic is separate from the ear piece. It's actually on a battery pack on the chord (where the volume controller usually is)... And it can move wherever. So perhaps the inverse signal is actually a more "general" signal, that doesn't have to be a perfect inverse.
As a work around "hack", I made a simple 3 band analyzer that controlled 3 bands of noise, so at least I could "mask" the incoming noise with a similarly shaped noise. This worked rather well, and it's obviously not using phase cancellation at all. Of course, I hear a bunch of noise generated by my noise "canceller" (quite ironic), but the generated noise is unintelligible and thus blocks my colleagues's stories about his favorite pizza joint from reaching my brain. It's at least a success in cancelling out the semantic portion of the noise. How did I know he was talking about pizza? Because that's what he'd been talking about the past 2 weeks. Ahh, gotta love New York.
But I still do wonder what the DSP way of accomplishing this is. Is it just inverting the input and timing it perfectly? There's got to be a more robust approach.. Anyway, that's what I was thinking about during my jog today. Thought I'd follow up on it and get some input from the greats on Z.