I am interested in measuring a signal with significant energy content up to 1-2 kHz. However, I am only able to sample the signal after it has passed through a first-order lowpass filter of known bandwidth (which significantly distorts the signal; in this case the bandwidth is 500 Hz). I sample the lowpass-filtered version at 5 kHz, and my measurements are noisy.

What are some options I can use to try to recover the original signal after taking noisy measurements of a lowpass-filtered version of it?

If it helps, I know the shape of the signal I am looking for; I am just trying to measure how it is scaled in amplitude and in duration.


This very, very much sounds like the classical problem for which you can derive that the matched filter is the optimal receive filter to maximize SNR.

You say you know the shape of the signal; I interpret this like your system looks like this

TX impulse $p$ -> Pulse shaping filter $g$ -> 500 Hz low pass $h$ -> +Noise $z$ -> Sampling

That implies that the RX signal (given we sample sufficiently fast) is the discrete

$$r[n] = p*g*h + z$$ with $*$ being the convolution operator.

Since you know the order and bandwidth of $h$, I'd argue you actually know what $h$ is precisely. Thus, you can "pre-compute" the combination


The receive filter that maximizes the SNR is the matched filter – sadly, the matched filter to an IIR is not realizable (when does the time-inverse of something without end start?), you can't directly work with your actual system model.

However, if you can find a FIR filter that approximate your $h$ well enough, you should be able to bound the error, and still get a reasonably good amplitude/power estimate by calculating the time-inverse conjugate (${}^\dagger$ operator) $${\hat m}^\dagger =\left(g*\hat h\right)^\dagger$$ based on the approximative filter $\hat h$. You'd then have $$ \begin{align} \hat r &= p*g*h*\hat m^\dagger &+ z*\hat m^\dagger\\ &= p*m*\hat m^\dagger &+ z*\hat m^\dagger \end{align}$$

Since the noise process $z$ should not be correlated to the channel/filter, the second term should become small for sufficient observation.

  • $\begingroup$ Thank you Marcus, this is a good start for my search. This isn't an area of DSP that I am very familiar with -- is there a good reference you would recommend? $\endgroup$ – Max Oct 8 '17 at 15:18

Since the filter is first-order, there is probably more than enough energy still there to recover it. So all you have to do is divide the signal (in the frequency domain) by the filter impulse response, and you'll have the original signal. If its an IIR filter, just use the first fraction of a second of the impulse response (and then, of course, convert it to frequency domain).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.