Thursday, May 1, 2025

Re: Modifying BPSK to QPSK

Zachary,

I mentioned in my previous reply, you can remove the AGC, FLL, and Equalizer blocks from the original flowgraphs, those would be examples of optional blocks. The equalizer is only needed if a realistic channel exists, the AGC if realistic power fluctuation exists, and the FLL if large sources of frequency offset exist, like doppler from satellites moving around. For now all those effects should be left out. Don't use real radios until this works in pure simulation with an AWGN channel only. Then you can add these optional components and begin testing with radios.

This is all advice from my past experiences. 

Rich

On Thu, May 1, 2025 at 12:34 PM Richard Bell <richard.bell4@gmail.com> wrote:
Zachary,

I would not call this the "smallest step" possible because this flowgraph just won't work. You are trying to do synchronization on a signal that was never modulated by the transmitter (why do you want that FFT filter in there, the RRC filter that is missing is all the filtering you need in the transmit chain). The costas loop requires at least 2 samples per symbol, but you are feeding in raw symbols (1 sample per symbol). Once you have more than 1 sample per symbol, you will require timing recovery, so that block will need to go back in also. 

It's good that you proved the raw bits flowgraph works, that is a good starting point. Now go back to the BPSK that was working and the QPSK that wasn't working, and implement the changes I mention in steps 3 and 4.

Let us know how it turns out.

Rich

On Thu, May 1, 2025 at 5:45 AM Zachary Naymik <znaymik@mti-systems.com> wrote:
Richard,
I have heeded your advice and I have the stripped flowgraph working as described in step 1. However, I am trying to adapt the flowgraph to work as in step 2 but the only synchronization block I am able to add is the Costas Loop, if I add any other synchronization block the data does not make it through the correlation of the access code. Here is what I have for step 2, again I thank you for your advice and help - if you can give any more guidance that would be great.



Thanks,
Zach


On Tue, Apr 29, 2025 at 1:27 PM Richard Bell <richard.bell4@gmail.com> wrote:
Hi Zachary,

I do see some problems with your flowgraph. I can recommend a debug strategy that I would use to figure out the root cause.

1) In the flowgraph that doesn't work, strip it down as much as possible such that you still have a working flowgraph. For example, remove all the synchronization blocks so that you only have the "bits -> packetize -> encoder -> decoder -> depacketize -> bits" flow working. 

2) From the working flowgraph that is just bits in the previous step, start adding back synchronization blocks, using the smallest steps possible, and only those blocks that are absolutely required. For example, I would leave out the AGC and FLL in this step.

3) The constellation modulator block applies a root raised cosine (RRC) pulse shape to the transmitted signal. In your receiver, you are missing the symmetric RRC filter in the demodulation process. There should be one before the timing recovery block in both BPSK and QPSK. The BPSK may be able to work without it, albeit with a much worse bit error rate, while the QPSK fails completely. 

4) The linear equalizer in your QPSK block should come after the costas loop block. Equalizers generally want phase and timing synchronized input. 

5) Make sure all the upsampling/downsampling rates are correct in the QPSK graph. You switch to using 8 samples per symbol, instead of 4, so it's possible other rate changes need to be adjusted to reflect this. I didn't go through and do the math myself. I personally wouldn't recommend you increase the samples per symbol from 4 to 8. I would use 2 or 4 in both graphs. 

Give these suggestions a try and let us know if anything improves. 

Rich

On Tue, Apr 29, 2025 at 5:12 AM Zachary Naymik <znaymik@mti-systems.com> wrote:
Richard,
Thank you for the guidance. I believe I have made all the necessary changes to the modulation and synchronization technique.
BSPK Flowgraph (working):

QPSK Flowgraph (not working):


If you have anything for me to try or experiment with please let me know.
Thanks,
Zach


On Thu, Apr 24, 2025 at 1:27 PM Richard Bell <richard.bell4@gmail.com> wrote:
Hi Zachary,

You will have a better chance of getting responses if you post screenshots of your flowgraph instead of attaching grc files themselves. People can't open grc files on their phones or on the go. 

I have not opened your grc files, have you made the proper change to the synchronization technique you are using to account for the change in modulation type from 2 symbols to 4 symbols? That's the first place my mind went that would cause problems.

Rich

On Wed, Apr 16, 2025 at 5:53 AM Zachary Naymik <znaymik@mti-systems.com> wrote:
Hello all,
I am reaching out again as I am trying to modify a working file transmission using BPSK to work using QPSK. I have made all the modifications I believe to be necessary to get the transmission to work with QPSK, however I am unable to see any results. I have debugged this for many hours and am reaching out to see if anyone has any insight. Please let me know if you have any questions, the flowgraphs are attached.

Thanks,
Zach

--

Zach Naymik | Software Engineer 

 e: znaymik@MTi-Systems.com  p: 330-931-9945

 https://mti-systems.com

A black background with a black square    Description automatically generated



--

Zach Naymik | Software Engineer 

 e: znaymik@MTi-Systems.com  p: 330-931-9945

 https://mti-systems.com

A black background with a black square    Description automatically generated



--

Zach Naymik | Software Engineer 

 e: znaymik@MTi-Systems.com  p: 330-931-9945

 https://mti-systems.com

A black background with a black square    Description automatically generated

No comments:

Post a Comment