Sign in

username or email:

password:



Not a member?
Forgot your password?

Search compdsp



Search tips

Ads

Discussion Groups

Free Online Books

See Also

Embedded SystemsFPGA

Discussion Groups | Comp.DSP | Wiener deconvolution and noise floor

There are 1 messages in this thread.

You are currently looking at messages 1 to .


Is this discussion worth a thumbs up?

0

Wiener deconvolution and noise floor - Todd - 2012-08-11 12:46:00

Hello,

I am using an example from one of my favorite statistical signal processing texts
(http://www.amazon.com/Statistical-Adaptive-Signal-Processing-Estimation/dp/1580536107/ref=sr_1_
1?ie=UTF8&qid=1344697297&sr=8-1&keywords=kogon+adaptive+signal+processing).  I don't
know the page number or example off the top of my head, but I can find it if necessary.  The
problem derives the optimal FIR deconvolution filter assuming a white input signal and white
noise signal.  By making these assumptions, you can get the wiener-hopf equations knowing only
two parameters rather than needing the input spectrum and noise spectrum.

My application doesn't use white noise for the input, however most of the signal components I
care about are well above the noise floor; I think it is an OK assumption given that I don't
have the input signal.  The input signal power is assumed to be 1.0 since it ends up as just a
gain factor on the derived filter in the example.  The noise variance parameter is critical. 
Basically, I want to correct a handful of high SNR componenents while keeping the noise floor
where it is.

I've tested this and it works extremely well.  The trouble is, I can't figure out how to set the
noise parameter based on my knowledge of the noise floor.  If I understand correctly, the noise
power in the frequency domain is only meaningful per unit bandwidth (noise spectral density). 
So, assuming a constant noise power, if I increase the bandwidth, I drop the noise floor.  To
illustrate my problem, suppose I have two sample rates, one at 1/1000 sample per second, and one
at a gigasample. The change in noise spectral density (I think) is 10log10(1e12) or 120 dB.  So
this might be the difference between having a noise floor at -20 dB or -140 dB.  But the wiener
filter design doesn't care about sample rate; it only depends on total noise power.  So in the
first case, since the noise floor is not down very far, when I run the signal through the
inverse filter, it will correct the frequency components I care about, but the noise floor will
be pushed up so high, it will destroy all useful information.  In the later case, the noise
floor is so far down, everything should be fine.

It seems to me that the noise power parameter should be a function of sample rate - something
like noiseVar/fs.  But the sample rate doesn't show up anywhere in the problem formulation, so
it also makes sense that it's not in there.  It's interesting to note that the wiener
deconvolution interpretation in the frequency domain
(http://en.wikipedia.org/wiki/Wiener_deconvolution#Interpretation) has the behaviour I want.  If
you replace n(f)/s(f) with a constant, the inverse filter in this case looks as though it would
produce the desired behaviour regardless of sample rate.

I can, of course, tweak the noise variance rather than set it to the known/estimated noise
power, to get the behaviour I want.  But it's always better to understand what's going on before
you start fudging the numbers.
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.