I am working on a hobby transmitter-receiver project. Presence of 4 pulses in T seconds is regarded as 1(not any number of pulses, should match below):

enter image description here

lack of pulses during that T seconds is regarded as bit 0. This is how transmitter block sends out information.

This signal is transmitted over a lossy channel so what I receive is r = alpha.s + noise , which is then digitized and passed to a DSP. Noise is not necessarily Gaussian (not sure of it's distribution).

1- Can I use matched filter(done in DSP) to detect if s was the Bit 1 shown above or Bit 0?

2- When should I sample the middle of match filter response? Does this need to be synched to start of every bit?

I am not sure what other method could be robust and reliable for decoding this.


IF a 1 is always represented by the waveform in the figure, you can use that waveform as the matched filter response.

However, it sounds like the waveform could be anything as long as there are some pulses in it. In that case, the matched filter should be a single pulse, and you'll have to count how many pulses were detected afterwards.

The non-Gaussian noise can be a problem; if you don't know anything about its distribution, you'll probably just have to build a prototype and test it. You may end up having to design a filter tailored to the specific noise distribution in your system.

  • $\begingroup$ Thank you, I edited the question to be more clear. Number of pulses is not arbitrary, it should be 4 pulse in the timing fashion shown in figure. $\endgroup$ – doubleE Feb 17 at 18:44
  • 1
    $\begingroup$ OK -- my answer still applies. Use the waveform in your figure as the matched filter response, and calculate a threshold to distinguish between 0 and 1. $\endgroup$ – MBaz Feb 17 at 18:51
  • $\begingroup$ Do I need to know the start of the pulse and then instruct match filter for window of T? I think it needs to know when to start the convolution, it can't be any point in time? Should start only on the beginning of the pulse, which we don't know when that's happening. $\endgroup$ – doubleE Feb 17 at 19:02
  • 1
    $\begingroup$ Yes; timing synchronization is necessary, since you need to sample the matched filter's ouptut at the correct time. But that is a different problem, requiring a different question... This may be a good place to start: dsp.stackexchange.com/q/31517/11256 $\endgroup$ – MBaz Feb 17 at 19:07

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.