Open szechyjs opened 10 years ago
I'll take a look at this. The C4FM output makes many mistakes, even with strong an clean signals. Shouldn't be like this.
Has anybody tried already the C4FM from GNU Radio?
Regards,
Ed
Hellow. I'm experimenting with a demodulator based on a Gaussian fit. The idea is to model the analog sample values of each of the 4 possible symbols with a Gaussian and then see which one fits better the given input. Seems to be working better than the original approach.
Wonder if anybody would be interested?
Hello, I've spent some more time on this, specifically focused on P25 signals. The Gaussian fit makes an improvement but even for ideal reception conditions the BER doesn't go lower than 0.5%. Why it's not zero has been nagging me for quite some time. This is what I've learned so far:
Now, I don't think that the brute-force approach is the right one for a practical system and I'm not sure I should continue on that line. I have no clue what a "stochastic gradient clock recovery" algorithm looks like and I'm no expert in those matters, but if there's anyone able to came up with some hints I might be able to dedicate some more time to this.
Kind regards,
Hello. I had the chance to dedicate the last few weeks to this issue. I can confirm that the errors I'm observing on P25 demodulation got their root cause in the poor symbol synchronization. I have developed an efficient method to estimate precisely the sampling timing error on C4FM signals, both phase and frequency, and with that I can correct the sampling timing on the fly and demodulate a P25 signal over extended periods of time with 0% BER. The method is based on the analysis of the times the signal crosses by zero. I think it's innovative and not trivial for me to explain how it works so my plan now is to write a document and share it for review. The method will replace the original DSD "getSymbol" without additional side effects, hopefully.
@EdFuentetaja thanks for the hard work. Look forward to seeing what you've come up with.
From Boatanchor on RR: