I’m learning to implement a grc flow-graph with BPSK modulation to send and receive text/image file or send chat message via UDP socket. It’s working in simulation mode perfectly as I intended but with real hardware obviously lot of issues are happening.
Initially, I was receiving only garbled data with limesdr-mini but after further reading I found that’s due to phase ambiguity problem in the receiver. Then I used differential encoding to resolve the issue. If I sent a text file in repeat mode, I can receive it on file sink.
Receive file:
However, If I sent the file only once without repeat, I don’t get any data at all. I understand that the receiver perform clock, frequency, phase recovery on received data and when it sync, it decodes the data correctly.
Can somebody shed some light what I’m missing here. In simulation, this flow graph works correctly with text/image transfer and chat messaging (UDP Source/Sink).
What measures I have to consider further to make it work the same way with LimeSDR.
Your solutions looks very interesting and glad that it’s working now. I have learnt few techniques from you now
I found an interesting problem in my setup - ‘CPU utilization’. I noticed when I’m running the bpsk tx/rx flow graph in my vm, CPU shoots up to 200% utilization and nothing is coming out of the receiver file sink.
So, I split up the TX and RX chains and ran that in different computer. I can see it started to receive instantly. First 2-3 seconds I got garbled data but as soon as the sync done, I received the actual messages and the qt_constellation looks very clean and almost perfect for bpsk mod.
Dear Phoenix,
Thank you for your information here. I am new to using SDR. I want to sent and receive via SDR trying to follow your chart to be able to send and receive message. Could you please send me your grc file? I don’t know what should I write in the protocol formatter ( format object) ?
Thank you so much
Mehdi