I have a binary information source signal $s(t)$ that is corrupted by additive White Gaussian noise $w(t)$ at a particular SNR. The received signal is:

$$x(t) = s(t) + w(t)$$

Then I have created a matched filter $h(t)$ as the time reversal of the source binary signal $s(t)$.

Question: After signal detection, how to estimate the clean signal $s(t)$? I have used the sign() operation. Is that the correct way or should I use sophisticated methods like MLE, LMS etc? In many implementations, a hard threshold zero is used to decode the signal in order to get back the transmitted source symbols $\hat{s}(t)$. Is that the correct way? Is my implementation correct where I have used sign function to estimate the symbols.

This is my implementation. Please correct me where wrong.

clear all
N = 50;

input = rand(1,N)>0.5; 
s=(2*input-1); %input
x = awgn(s,15,'measured'); %received noisy signal

matched_filter_h = flipud(s);
s_hat = sign(filter(matched_filter_h,1,x));

The code output shows that $s(t)$ and $\hat{s}(t)$ are identical. So, it seems that the estimation is possible.

  • 1
    $\begingroup$ You are trying to estimate $s(t)$ but you use $s(t)$ to make the matched filter...something is wrong with your assumptions or system model $\endgroup$ – Engineer Dec 28 '20 at 17:56
  • $\begingroup$ In matched filter design, the source signal $s(t)$ is known in order to make the filter. This I confirmed from the answer to my previous question dsp.stackexchange.com/questions/72229/… $\endgroup$ – Sm1 Jan 1 at 18:11
  • $\begingroup$ This is unclear. You know $s(t)$, why do you have to estimate it? The matched filter is used to detect a known signal. Since it’s known, there is nothing to estimate $\endgroup$ – ThP Jan 1 at 19:53

After signal detection, how to estimate the clean signal $s(t)$?

Matched filtering is used to detect the presence of a known signal in noise. There is no estimation part when you are talking about a matched filter. The estimate part comes after you have done the matched filter and need to estimate the symbols.

It looks like you are talking about a communication system context, but the matched filtering in those systems is not done by matched filtering the symbols as in your example code. For each symbol, the true symbol is unknown and the pulse shape is known, and that is why the matched filter uses the pulse shape to matched filter. Perhaps all that you want to know about matched filtering can be found here, https://dsp.stackexchange.com/a/9389/31316, and you should give it a read.


The OP questions about the zero threshold and whether there are other methods. That threshold is set through using the maximum likelihood solution, or minimum distance decoding. For the case of BPSK, you want to decide if $x$ contains $s_1=+1$ or $s_2=-1$, and the ML rule is to choose $\hat{s}=s_1$ if:

$$ |x-s_1|<|x-s_2| $$

This can also be interpreted as partitioning the IQ diagram into different regions (Voronoi regions), a region for $s_1$ and a different region for $s_2$. These regions end up looking like this (note how for BPSK the threshold line is at zero):

enter image description here

For full derivation, see Tse's Wireless Comms book section A.2.1, https://web.stanford.edu/~dntse/Chapters_PDF/Fundamentals_Wireless_Communication_AppendixA.pdf.

  • $\begingroup$ Thanks for answering. Can you please clarify/elaborate on these two points?(1) You mentioned that the signal is known yet the exact values of it are unknown. The source code in Github github.com/MOBle/MatchedFiltering is similar to what I have done -- i.e, applied a hard threshold to get back the transmitted symbols. Is this not the correct estimation approach?(2) How else can I estimate the signal after it is detected? This is my primary question asked. $\endgroup$ – Sm1 Jan 3 at 2:34
  • $\begingroup$ @Sm1 The maximum likelihood solution is to look at your received symbol and compute the distances from it to each the symbols in the constellation and the symbol estimate is the one with the min distance. If you work through the math, this is where that threshold of zero comes from (for BPSK, zero is the midpoint between the two points) $\endgroup$ – Engineer Jan 3 at 23:36
  • $\begingroup$ I see. Would it be possible for you to update your answer with the derivation or the link as to how the threshold of zero is used to estimate for BPSK. This is would complete the answer and hence the bounty. Thanks for your time and effort which ismuch appreciated. $\endgroup$ – Sm1 Jan 4 at 1:57
  • $\begingroup$ @Sm1 I have added a bit more explanation, a link to derivation for more details, and a couple plots to illustrate the connection between the math and how the thresholds look. I hope that helps! $\endgroup$ – Engineer Jan 4 at 12:21

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.