discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] White Noise detection and elimination


From: Robert James
Subject: Re: [Discuss-gnuradio] White Noise detection and elimination
Date: Mon, 18 Nov 2013 09:56:03 -0500

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) <address@hidden> 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
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]