discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Clock recovery for BPSK with intentional ISI


From: Phil Frost
Subject: Re: [Discuss-gnuradio] Clock recovery for BPSK with intentional ISI
Date: Thu, 15 Jun 2017 14:08:43 +0000

Do you mean the equalization would be performed with another linear filter?

matched filter -> equalizing filter -> clock recovery -> [...]

Wouldn't that be equivalent of convolving the input responses of the two cascaded FIRs, with the net result being an unmatched filter?

Existing implementations of this mode take that approach, using a filter which minimizes the ISI while attempting to be close to matched. I wrote about some of them at https://ham.stackexchange.com/a/7744/218. I was hoping to try something new, at least for educational purposes.

I'm beyond what I comfortably know at this point, but if someone can confirm I'm on the right track I can continue researching the right things. I think part of the problem of the approach above is after filtering, the noise is no longer uncorrelated. Maybe the canonical solution is something like this?

matched filter -> equalizing filter -> clock recovery -> decimate to 1 sample per symbol -> "whitening filter" -> Costas loop -> Viterbi detector

I haven't yet studied whitening filters in depth, but my guess is it reverses the effects of the equalization filter so that the noise is again uncorrelated. At that point we're back to having ISI, but now with uncorrelated noise the Viterbi detector can deal with that optimally. Am I on the right track?

On Thu, Jun 15, 2017 at 9:29 AM Federico 'Larroca' La Rocca <address@hidden> wrote:
Hi,
Nice problem you got there. In any case, have you considered performing matched filtering (thus maximizing SNR), outputting more than one sample per symbol (in fact, without decimation at all), then equalize (so that the signal looks as if it was sent and received with a squared-root Nyquist pulse) and after all that use a standard clock recovery block? Since you know the shaping pulse, and as long as it does not go to zero over the range of frequencies of interest, you should be able to transform it into a Nyquist pulse. I may be wrong, but in any case Viterbi decoding for symbols will be difficult, so this may be worth trying.
best
Federico

2017-06-15 9:57 GMT-03:00 Phil Frost <address@hidden>:
I am working on a receiver for the amateur radio mode PSK31[1]. It's BPSK where the pulses are a raised cosine (impulse, not frequency domain) twice the symbol duration[2], no error correction, at 31.25 baud. The transmitted signal has no ISI, but after matched filtering it does:

0SDEq.png

I had hoped to do matched filtering and compensate ISI with a Viterbi equalizer, but I'm unsure how to do clock recovery.

I hoped to use the polyphase clock recovery block, but it seems this won't work since the derivative of the signal may not be zero at the ideal sampling points. Is that an accurate assessment?

2017-06-15-083544_393x230_scrot.png

Perhaps the clock recovery MM block? The zero crossings aren't exactly in the middle of the ideal sampling points, but the error is probably negligible. I can't get it to work: I think it outputs the correct bits, but exactly 1 or -1, even though I should be getting +/- 0.5, 0.75, or 1 depending on the adjacent bits. I'm using the default settings. Is that the intended behavior?

2017-06-15-084108_1038x201_scrot.png
2017-06-15-084340_475x253_scrot.png

Finally, any other algorithms I should be considering?


_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio



reply via email to

[Prev in Thread] Current Thread [Next in Thread]