On Mon, Nov 18, 2013 at 11:25 AM, Robert James <srobertja...@gmail.com> wrote: > Got it: The Fourier coefficients tell you *two* things per freq: > amplitude and phase. In real values (what I'm used to), those are two > distinct numbers. In complex values (welcome to DSP), it's one > complex number, telling you the amplitude of the 0-degree component > (Re) and the amplitude of the -90-degree component (Img). > > Going from complex to real is easy: complex r = real amplitude, > complex theta = real phase. But that's besides the point. The point > is that amplitude alone is only half the story, phase is the other > half, and, without phase, you can't reconstruct the original signal. > (The FFT displays might not show the phase, and we might not alwasy > talk about it, but it's half the information, like it or not.) > > So while FFT is invertible to signal, PSD isn't. > > What about this approach, then: Put the Fourier coefficients of in > polar coordinates. White noise will tend add a fixed complex value, > call it W, to each Fourier coefficient of the signal. Assuming the > original signal has many zero Fourier coefficients (many more than > nonzero), when we add the noise, the most common coefficients will be > close to W. > > If there is a complex value, call it W-hat, that is within delta of x% > of Fourier coefficients, we assume W-hat is the value of the additive > white noise. Subtract W-hat from all the Fourier coefficients, IFTT, > and recover the signal with much of the white noise removed. >
This is not going to filter any noise. Remember that the auto-correlation of white noise (should be) an impulse. If you're taking the minimum value and subtracting that value from other FFT bins that's not really meaningful. One of the DFT properties: a*x1[n] + b*x1[n] -> a*X1[k] + b*X2[k]. Let's make the actual signal x1[n], and a=1. You're making X2[k] a step since you subtract the same value from the original signal's FFT. The value of b you're using is the smallest random number you find, the specific value isn't important. In the time domain you're just subtracting a sort of sinc with amplitude that changes every FFT length. Definitely not reducing any noise. The noise in each sample should be independent if you're assuming white noise. _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio