I believe the correct term for what I'm trying to find is PSD, which, as far as I can tell (eg from here http://www.mathworks.com/help/signal/ug/psd-estimate-using-fft.html ), is well estimated using the FFT.
On 11/18/13, Robert James <srobertja...@gmail.com> wrote: > Thanks. Here's my understanding of FFT - please let me know where my > mistake is: > > FFT gives you the power at every freq - eg 10 Hz is at power 0.1mW > 100Hz is at 0.03 mW etc. I'm not sure how it's represented, but > that's essentially the information it has. > > We can easily multiply by a constant - that's a simple LTI , mapping > impulse -> 2 * impulse > > What I want to do is not an LTI. In the case above, if I found that > every freq had power of at least 0.03mW, I'd assume there's a white > noise component at that power across the spectrum, "subtract" it out, > yielding 10 Hz power at 0.07mW, 100Hz at 0mW, etc., and then IFFT. > > I'm eager to learn what's wrong with my concept, especially from the > experts here. > > Even if it is *completely* wrong, I'd like to know the format of the > FFT output vector, so I can experiment myself. What is the format? > > On 11/18/13, Martin Braun (CEL) <martin.br...@kit.edu> wrote: >> On Mon, Nov 18, 2013 at 08:29:02AM -0500, Robert James wrote: >>> I'm working on a series of blocks to measure the level of white noise >>> and attentuate it. (Yes, I know there are better ways of doing this, >>> like a Wiener filter - my goal here is to experiment and learn.) >>> >>> Model: Assume white noise is present in equal power at all frequencies. >>> >>> Plan: >>> Signal --> FFT --> [Find min power val over entire freq vector] --> >>> [Subtract that min val from all freq] --> IFFT --> Output >>> >>> Two questions: >>> >>> 1. Will this work? >> >> I doubt it will do what you want it to. >> What do you mean, 'subtract that min val from all freq'? How do you >> subtract a power value from a complex amplitude? >> >>> 2. What format does the FFT output vector use? I imagine to find the >>> min power at any freq I need to write my own block - hopefully I can >>> do this in Python. Code to do that in Python is trivial, but I can't >>> find the FFT output vector format documented. Likewise for "Subtract" >>> - I mean this as a mathematical subtraction, *not* attenuation >>> (multiply), which would attentuate the signal just as much. So if the >>> FFT output vector is in a logarithmic format, I need to first turn it >>> into a linear format before subtracting. >> >> I'm not sure you understand what the FFT does. Output is complex values. >> >> A power spectrum density could be displayed logarithmically, but that's >> *not* an FFT. >> >> I'm not sure what you're attempting, but it looks like you want to >> >> - find frequencies with power >> - design a filter that attenuates the rest >> - filter your (time-domain) signal. >> >> MB >> >> -- >> Karlsruhe Institute of Technology (KIT) >> Communications Engineering Lab (CEL) >> >> Dipl.-Ing. Martin Braun >> Research Associate >> >> Kaiserstraße 12 >> Building 05.01 >> 76131 Karlsruhe >> >> Phone: +49 721 608-43790 >> Fax: +49 721 608-46071 >> www.cel.kit.edu >> >> KIT -- University of the State of Baden-Württemberg and >> National Laboratory of the Helmholtz Association >> > _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio