Artificially improving the spectral power of a low frequency signal

50 Views Asked by At

First of all, I have to state upfront that I am not sure if this question is valid.

Essentially, my question pertains to the frequency of a time series with measurement data. I obtained the periodogram for the time series, where I have two peaks (see the left picture, around period = 12.5 and 25).

My question is: Would it be possible to 'artificially' increase the amplitude of the signal at the lower period (~ 12.5) such that the ratio between the amplitude of the larger signal to the small signal is decreased? My rough objective is shown on the picture on the right. What could I do to the raw measurement data to achieve this result?

I need to do this because I am trying to test a hypothesis on the measurement data.

enter image description here

Would appreciate any advice given. Thank you.

1

There are 1 best solutions below

2
On

Here is a simple idea: just multiply the signal in frequency space to upweight the lower frequency, then transform back to real space. Let's say you want to upweight the values at frequency $F_{\text{target}}$.

Let's suppose you have a signal $S(t)$ and $f(x)=\mathscr{F}[S(t)](x)$ is its Fourier Transform.

It's not clear to me if you need to preserve some properties of the signal, but I will assume you want to preserve the total frequency magnitude. Let: $$ \zeta = \int_0^\infty f(x)\,dx $$ Now let's do the reweighting. We want to increase the strength of the frequency at $F_{\text{target}}$ while decreasing the strength elsewhere. Let's use the probability density function of the gamma distribution, denoted $p_\gamma(x|\alpha,\beta)$. Notice it has essentially a spike at around $x=\alpha/\beta$. (Also note that any weighting function would do, really.)

So now compute your new frequency signal for each point as: $$ \widetilde{f}(x) = \frac{\zeta}{\kappa} f(x)\, p_\gamma(x|\alpha,\beta) $$ where you choose $\alpha$ and $\beta$ to satisfy $\alpha/\beta = F_{\text{target}}$ and $$ \kappa = \int_0^\infty f(x)\, p_\gamma(x|\alpha,\beta)\,dx = \mathbb{E}_{x\sim\Gamma(\alpha,\beta)}[f(x)] $$ Then, to get the "raw" transformed signal back, just invert the Fourier transform: $$ \tilde{S}(t) = \mathscr{F}^{-1}[\tilde{f}(x)](t) $$

So, at points near the spike (i.e. near $\alpha/\beta = F_{\text{target}}$), $p_\gamma(x|\alpha,\beta)$ will be larger, so we will strengthen the frequency components around there. But notice that: $$ \int_0^\infty \widetilde{f}(x)\,dx = \frac{\zeta}{\kappa} \int_0^\infty f(x)\, p_\gamma(x|\alpha,\beta) = \int_0^\infty {f}(x)\,dx $$ so total frequency strength is preserved (i.e. we are weakening everything far away from the target).

Notice you have flexibility to choose $\alpha$ and $\beta$. And you can easily generalize this by choosing a different weighting function. (e.g. log-normal distribution)

Let me know if this is anything like what you were looking for.