Noise Cancelling in Software? 84
doc_verma wonders: "There are directions to build noise-cancelling devices in hardware, but what would it take to create noise cancelling in software? Since computers have a speaker-of-sorts and can possibly have a microphone, why not take the input from the mic, reverse-phase it via software, and output it through the speaker? A noise-cancelling feature would be great to run on servers in a rack. It would also be a great app to run on your laptop when you are on a plane."
Re:Not in planes... (Score:1, Interesting)
No it doesn't. It means that 50% of the time problems are reported by pilots, maintence can't find the problem.
Your factoid says nothing about: The harmfulness of the reported problems, the rate at which the problems are reported by pilots, and if pilots ever score false poisitves reporting problems. All of these factors would be needed to arrive at your "half of the airplanes
Re:Real-time sound (Score:2, Interesting)
> canceling based on feedback from sound heard earlier. That's how the headphones
> work too.
Actually, it isn't. You can cancel one-tone that way unless you constantly do a
windowed FFT.
> (You don't think they have instantanious electronics do you? Even anlog signals > have latency.)
Not instananeous, but orders of magnitude faster than digital. Most do in fact just invert the signal. Headphones make the sound directional enough so that it can work.
> The real problem comes with phase alignment, which will only be possible at
> certain points, not everywhere.
Correct. With enough speakers and microphones it might be possible over fairly broad areas, but the variable latencies kill you.
So you think you're fast....... (Score:3, Interesting)
Dedicated, you'd probably be fine at 100Mhz or less with the right [embedded : most likely hand coded assembly] software. Most modern desktops have so much crap running all the time however that those precious CPU cycles dissapear very quickly. Even if you could do it, there'd probably be gaps or delays without some nicely written double or triple buffering techniques. These things take time and then therefore kill what you set out to do.....
Actually - If the microphone was placed very close to the source, you may be able to generate some anti-sound "down range" (ie. Your desk) and the latency could be compensated for in that regard. It would take some fine tuning - in fact another microphone at the place where you need the quiet could be used for the system to tune itself. (This of course is assuming there are no walls in the room for the sound to bounce off of so that you aren't trying to defeat 17 "sources" simultaneously).
I'm not claiming any authority on this or saying it can't be done, just stating that it's probably quite a bit more complicated than it may look at first glance. Real time [wikipedia.org] work is not something most "normal" OSes are setup to do. It can be done, but for things to be faster than sound you've got to get your latency WAY WAY WAY down.
http://en.wikipedia.org/wiki/Real_time [wikipedia.org]
http://en.wikipedia.org/wiki/Real-time_computing [wikipedia.org]
http://en.wikipedia.org/wiki/Real-time_operating_
http://en.wikipedia.org/wiki/Audio_signal_process
http://en.wikipedia.org/wiki/Noise_cancellation [wikipedia.org]
http://slashdot.org/article.pl?sid=04/05/27/16412
Re:Real-time sound (Score:3, Interesting)
But you'll be hard pressed to get there using a multi-tasking OS on a standard laptop.
It depends on the OS. Some allow you to change kernel code. That lets you do your timing sensitive operations with interrupts disabled. With the right hooks in your DSP driver you may not reduce the latency, but you could practically eliminate the latency jitter (the real problem) during your calculations.