Hacker News new | ask | show | jobs
by oakwhiz 4613 days ago
Selective noise cancellation could be possible using a Fourier transform. Zero out the coefficients that you still want to hear and then perform an inverse transform, then a time-domain inversion, and finally apply the appropriate amount of delay to the signal.
4 comments

You might know this, but I want to state it at least for the benefit of people reading this without much signal processing experience. Just zeroing like that really isn't the best idea. Square waves (that are 1 for signals that you want and 0 for signals you don't want) inverse Fourier transform to sinc functions[1], so if you are filtering just by chopping things out, it will greatly distort the time-domain system because the inverse Fourier transform of the filter and the signal get combined (convolved) in the time domain.

[1] http://en.wikipedia.org/wiki/Sinc_function

Yeah exactly right. If you don't make it smooth in the frequency domain it won't be smooth in the time domain either.
Wouldn't the result would be as smooth as the FFT's window function?
Most of what they 'demo' in the video are nonlinear sources, they'll need a lot more processing smarts than a simple FFT to sort that out.
That would be more like an equalizer than selecting out particular "sounds".
Your answer is very fascinating, can you please explain it like I'm five?
The basic idea is that it is possible to transform a signal without loss of information from being some value vs time (so called time-domain signals) to being a bunch of different frequencies with different intensities (so called frequency domain) where the frequencies are just sine and cosine waves. A pure sine wave in the time domain gets transformed into just one value with the same amplitude as that wave in the time domain.

To see why this is useful, imagine a song you wanted to listen to that was recorded with a low-pitch hum in the background because the microphone running next to a power cable and picked up the 60 Hz signal. Removing this unwanted tone by looking at the value of the song in time is really hard because the 60 Hz signal is mixed up with the rest of the song. However, when transformed into the frequency domain, the 60 Hz hum is very easy to spot and remove. When you transform the signal back into the time-domain (so you can listen to it), the 60 Hz will still be gone.

This process can be done automatically with computers using a technique called the Fast Fourier Transform. This is the basis of many techniques in the field of Digital Signal Processing (DSP) which is the theory behind most of the communication breakthroughs of the last 40 years. I should note that many naive approaches to this problem (like the approach in my example) don't work particularly well, so as in any problem domain, there are important but subtle performance trade-offs to consider.

[1] http://www.dspdimension.com/admin/dft-a-pied/