I have an output from a noisy signal, saved as a set of cosines.
I have a set of frequencies from 0
to x
Hz (x is a large number), and a set, of the same size, of amplitudes.
I want to work out the harmonic mean of the frequencies present, when the weighting of the frequency is the magnitude of the corresponding amplitude.
For example:
If I have a set of frequencies
[ 1 , 2 , 3]
and amplitudes [ 10, 100, 1000 ]
(such that the cosine with frequency 1
has amplitude 10
, etc.). Then, the harmonic mean of the frequencies is 2.8647
.
However, I run into problems when I have a zero frequency (a "DC" component) - the harmonic mean is just zero!
The real life problem is a very big set of cosines, starting with a zero frequency, going up to several GHz. Much of the signal is weighted in a portion of the spectrum and I want to compare a simple weighted mean of the spectrum with a harmonic mean.
The way around this (it seems a cheap way) is to ignore the zero frequency - it is only one frequency out of tens of thousands. But is there a correct way to do this?
Below is the equation for the weighted harmonic mean:
Applied to your example it's:
You can see that if one of the
x
values is0
, the sum in the denominator would be infinite. If you manually set the weight of this value to0
, you would have a0/0
scenario in the bottom sum (which evaluates toNaN
). Technically speaking - you can't have anx
of0
in the computation of this type of mean without getting a result of0
.I think it's quite clear that this isn't the right tool to handle a DC signal. Several things come to mind in order to get some meaningful information:
At the end of the day, you need to decide what is the point you're trying to make with this, and then process the data accordingly.