I see, I am unable to see the sequence I expect coming out of the unpack block in either modulation scheme. I will investigate and report findings later today/tomorrow morning.
Thanks again for all the help so far! Zach On Thu, May 8, 2025 at 1:32 PM Richard Bell <richard.be...@gmail.com> wrote: > This is a bit level problem. This kind of problem is typically caused by > assuming something about the input or output of one of these blocks that is > not true. Carefully go through the blocks starting at the output of the > constellation decoder and prove to yourself your input and output > assumptions are correct. For example, I assumed the output of the > constellation decoder would be bits, this was wrong. > > On May 8, 2025, at 10:29 AM, Richard Bell <richard.be...@gmail.com> wrote: > > > Can you visually see the sequence you expect coming out of the unpack > block in either bpsk or qpsk? > > On May 8, 2025, at 10:25 AM, Zachary Naymik <znay...@mti-systems.com> > wrote: > > > This also does not work for BPSK without the "Unpack K Bits" block either. > Attached is the flowgraph and Time Sinks below. > <image.png> > > > > On Thu, May 8, 2025 at 1:05 PM Zachary Naymik <znay...@mti-systems.com> > wrote: > >> That makes sense! However, I have added the "Unpack K Bits" block in 2 >> different configurations and neither work. >> Configuration 1: >> <image.png> >> Configuration 2: >> <image.png> >> >> >> >> On Thu, May 8, 2025 at 12:52 PM Richard Bell <richard.be...@gmail.com> >> wrote: >> >>> According to your plots, the constellation decoder doesn't output bits, >>> it outputs packed bytes. In the case of QPSK that would mean 2 bits per >>> output byte. We need to unpack those bytes into bits before entering the >>> correlate block, which expects 1 bit per byte. This can be done using the >>> "Unpack K Bits" block with "K = 2" for QPSK. For BPSK you wouldn't need to >>> unpack anything, it should work by default because BPSK only has 1 bit per >>> byte coming out. Confirm this. >>> >>> Add the "Unpack K Bits" block after the differential decoder and feed >>> this into the correlate block. >>> >>> >>> >>> On Thu, May 8, 2025 at 9:16 AM Zachary Naymik <znay...@mti-systems.com> >>> wrote: >>> >>>> I do see the valid bits out of the Differential Decoder. However, after >>>> removing the Map block, I still do not see anything on the other side of >>>> the Correlate Access Code block. >>>> >>>> I do see the perfect dots in the 4 corners of the square like I have >>>> seen before in QPSK constellations. I understand that with noise the dots >>>> become more spread out into clouds instead of being perfect as they are in >>>> the simulation. Thank you for this information! >>>> >>>> I have a USRP flowgraph in progress that I have halted progress on so >>>> far, but I do have those blocks added in there where you have specified in >>>> previous messages. >>>> >>>> Here are the time sinks and the flowgraph in the state I have right >>>> now. I'm not sure what else I need to modify to make things work, however >>>> if I increase the threshold to 15 I can see things on the other side of the >>>> Correlate Access Code block if that helps you out at all. >>>> <image.png> >>>> >>>> >>>> Zach >>>> >>>> On Thu, May 8, 2025 at 12:02 PM Richard Bell <richard.be...@gmail.com> >>>> wrote: >>>> >>>>> The constellation decoder should be producing valid bits of 1's and >>>>> 0's. Therefore, the map block after the differential decoder needs to be >>>>> removed. This should be the last change you need to get correlations. Plot >>>>> the time domain output after the differential decoder, you should see nice >>>>> bits to prove it to yourself. >>>>> >>>>> Regarding the good looking constellations, you should see nearly >>>>> perfect dots at the four corners of a square (assuming QPSK). This is why >>>>> I >>>>> said it maximizes BER, these near perfect dots are directly correlated to >>>>> BER. The tighter these dots, the better your BER. When you add a noise >>>>> source to this simulation, like the AWGN channel I recommended, you will >>>>> see these dots become clouds and grow as the noise power grows. I >>>>> recommend >>>>> you set this up for yourself next. >>>>> >>>>> When you get to using radios, in the receiver you will want to add >>>>> back the AGC before the RRC filter and the linear equalizer after the >>>>> costas loop block. This should give you a good working over-the-air >>>>> transceiver. >>>>> >>>>> Rich >>>>> >>>>> On Thu, May 8, 2025 at 7:59 AM Zachary Naymik <znay...@mti-systems.com> >>>>> wrote: >>>>> >>>>>> Richard, >>>>>> I have changed the output SPS in the Symbol Sync to 1 and the >>>>>> constellations look great now. However, I still do not see anything after >>>>>> the Correlate Access Code block. You can see the flowgraph below with the >>>>>> changes. >>>>>> <image.png> >>>>>> >>>>>> >>>>>> >>>>>> On Thu, May 8, 2025 at 10:53 AM Richard Bell <richard.be...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> You have the output samples per symbol in the symbol sync block set >>>>>>> to 2. Make that 1 and try again. >>>>>>> >>>>>>> On May 8, 2025, at 5:08 AM, Zachary Naymik <znay...@mti-systems.com> >>>>>>> wrote: >>>>>>> >>>>>>> >>>>>>> Richard, >>>>>>> I have constructed this flowgraph based on your changes, and I still >>>>>>> do not see anything come through the other side of the Correlate Access >>>>>>> Code block. I also tried with just the equivalent Constellation Encoder >>>>>>> -> >>>>>>> RRC Filter on the TX side, but still no luck. The flowgraph and >>>>>>> constellations are attached below. If you need any more information >>>>>>> from me >>>>>>> after running this flowgraph, please let me know! >>>>>>> <image.png> >>>>>>> >>>>>>> >>>>>>> >>>>>>> <image.png> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, May 7, 2025 at 2:01 PM Richard Bell <richard.be...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Getting closer, but not quite. You still have a rational resampler >>>>>>>> doing 16 to 1 decimation that shouldn't be there. The image I've >>>>>>>> attached >>>>>>>> is the structure I am trying to describe. Top row is transmitter, >>>>>>>> bottom >>>>>>>> row is receiver. The combination of the constellation encoder and RRC >>>>>>>> in >>>>>>>> the top row should be equivalent to your single constellation modulator >>>>>>>> object. The constellation modulator has the RRC built into it. >>>>>>>> >>>>>>>> I also noticed that there is a poor choice for the default "number >>>>>>>> of taps" field in the RRC block (not your fault). It uses >>>>>>>> "11*sample_rate", >>>>>>>> which is not good. The FFT RRC filter length only depends on the sps >>>>>>>> and >>>>>>>> the total length you want it to be, in samples, to get the performance >>>>>>>> you >>>>>>>> want. This length is typically chosen to be around 11 symbols (that's >>>>>>>> where >>>>>>>> the 11 comes from) times the number of samples per symbol. This gives >>>>>>>> about >>>>>>>> 44 samples in length, independent of the sample rate. Notice my FFT RRC >>>>>>>> filter length is 44 and yours is 300k. I'm surprised the flowgraph even >>>>>>>> runs with a filter this long. Just change the "Num taps" field in the >>>>>>>> FFT >>>>>>>> RRC block to "11*sps", assuming you defined the sps variable like I >>>>>>>> have. >>>>>>>> >>>>>>>> The costas loop order should be 2 for BPSK, and 4 for QPSK. >>>>>>>> >>>>>>>> I did not run my flowgraph, I only put it together to show you what >>>>>>>> I've been describing in words. Hopefully I didn't overlook something. >>>>>>>> You >>>>>>>> will let me know. >>>>>>>> >>>>>>>> >>>>>>>> <image.png> >>>>>>>> >>>>>>>> >>>>>>>> On Wed, May 7, 2025 at 10:10 AM Zachary Naymik < >>>>>>>> znay...@mti-systems.com> wrote: >>>>>>>> >>>>>>>>> Richard, >>>>>>>>> I reverted the Fractional Resampler's rate back to the default >>>>>>>>> value (~60m) and added the filter, and the constellations look better >>>>>>>>> than >>>>>>>>> in my last email. They are pictured below, the Filter is the same as >>>>>>>>> listed >>>>>>>>> in my previous email. I still see no output on the other side of the >>>>>>>>> "Coorelate Access Code" block though. >>>>>>>>> <image.png> >>>>>>>>> >>>>>>>>> >>>>>>>>> Thanks again, >>>>>>>>> Zach >>>>>>>>> >>>>>>>>> On Wed, May 7, 2025 at 12:56 PM Zachary Naymik < >>>>>>>>> znay...@mti-systems.com> wrote: >>>>>>>>> >>>>>>>>>> Richard, >>>>>>>>>> Thanks again for the feedback, I was trying to move onto USRPs - >>>>>>>>>> but will revert until the filter is implemented as you have advised. >>>>>>>>>> There >>>>>>>>>> was no data lost and the file transmission was working fine, here is >>>>>>>>>> what I >>>>>>>>>> have found while trying to implement the filter. Just taking a look >>>>>>>>>> at the >>>>>>>>>> constellations, and data flow. >>>>>>>>>> >>>>>>>>>> Without the RRC Filter, I see these constellations from the >>>>>>>>>> Symbol Sync and Costas Loop: >>>>>>>>>> <image.png> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> With the addition of the RRC Filter, I see these constellations >>>>>>>>>> from the Symbol Sync and Costas Loop: >>>>>>>>>> <image.png> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Before the filter as I stated above, the file is fully >>>>>>>>>> transmitted and repeated, however after adding the filter, I can see >>>>>>>>>> data >>>>>>>>>> going into the "Correlate Access Code" block, but nothing makes it >>>>>>>>>> out the >>>>>>>>>> other side. >>>>>>>>>> Here is the filter that I added and where I added it in the >>>>>>>>>> flowgraph, I'm not sure what adjustments need to be made although I >>>>>>>>>> have >>>>>>>>>> tried some things - I have found no luck. >>>>>>>>>> >>>>>>>>>> <image.png> >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> Zach >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Wed, May 7, 2025 at 12:39 PM Richard Bell < >>>>>>>>>> richard.be...@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Zachary, >>>>>>>>>>> >>>>>>>>>>> I have to admit, I don't see how the flowgraph you say "works", >>>>>>>>>>> could work. Maybe I'm not seeing a hidden parameter, but it looks >>>>>>>>>>> to me >>>>>>>>>>> like you are overall downsampling from the original symbol rate >>>>>>>>>>> now, which >>>>>>>>>>> means you should be seeing lost data. >>>>>>>>>>> >>>>>>>>>>> Even if you are not losing data, and somehow the flowgraph does >>>>>>>>>>> "work" in some way as it is shown, it will not work as well as it >>>>>>>>>>> will if >>>>>>>>>>> you follow my advice in the previous email. The RRC filters will >>>>>>>>>>> improve >>>>>>>>>>> the bit-error-rate (BER) compared to this one. I do recommend you >>>>>>>>>>> try to >>>>>>>>>>> implement the one I described, you will be happier. This relates to >>>>>>>>>>> "opening the eye" of the constellation diagram, if you want to look >>>>>>>>>>> that up. >>>>>>>>>>> >>>>>>>>>>> Richard >>>>>>>>>>> >>>>>>>>>>> On Wed, May 7, 2025 at 5:33 AM Zachary Naymik < >>>>>>>>>>> znay...@mti-systems.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Richard, >>>>>>>>>>>> I have been able to achieve a purely simulated working text >>>>>>>>>>>> file transmission using QPSK modulation. I will attach the >>>>>>>>>>>> flowgraph and >>>>>>>>>>>> the image below. The change that allowed it to work was increasing >>>>>>>>>>>> the >>>>>>>>>>>> resampling ratio in the Fractional Resampler block - although I >>>>>>>>>>>> still do >>>>>>>>>>>> not have the RRC Filter. I got this working shortly before leaving >>>>>>>>>>>> the >>>>>>>>>>>> office yesterday and just looked at your new feedback this morning >>>>>>>>>>>> hence >>>>>>>>>>>> the RRC Filter being left out. Should I rework this flowgraph to >>>>>>>>>>>> use an RRC >>>>>>>>>>>> Filter as I'm assuming that is the "right" way to do this? I am now >>>>>>>>>>>> planning on using the other feedback that you have provided to >>>>>>>>>>>> adapt this >>>>>>>>>>>> simulated flowgraph to use USRPs and will update here with >>>>>>>>>>>> progress. >>>>>>>>>>>> >>>>>>>>>>>> Simulated working QPSK Flowgraph: >>>>>>>>>>>> <image.png> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> Zach >>>>>>>>>>>> >>>>>>>>>>>> On Tue, May 6, 2025 at 5:34 PM Richard Bell < >>>>>>>>>>>> richard.be...@gmail.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi Zachary, >>>>>>>>>>>>> >>>>>>>>>>>>> No problem, hopefully others will also get some useful >>>>>>>>>>>>> information out of this thread as well. Thanks for letting me >>>>>>>>>>>>> know. I'll >>>>>>>>>>>>> try to explain with a little more detail. >>>>>>>>>>>>> >>>>>>>>>>>>> 1) In a QAM transceiver that is built to minimize >>>>>>>>>>>>> bit-error-rate and optimize the synchronization performance, you >>>>>>>>>>>>> will find >>>>>>>>>>>>> two root-raised-cosine (RRC) filters, one in the transmitter, and >>>>>>>>>>>>> one in >>>>>>>>>>>>> the receiver. >>>>>>>>>>>>> >>>>>>>>>>>>> 2) The RRC in the transmitter is used to set the >>>>>>>>>>>>> sample-per-symbol (sps) rate in the transmitter. The RRC in the >>>>>>>>>>>>> receiver is >>>>>>>>>>>>> used to set the sps in the receiver. Technically, these two sps >>>>>>>>>>>>> do not need >>>>>>>>>>>>> to be equal, but practically they often are setup that way. Let's >>>>>>>>>>>>> get your >>>>>>>>>>>>> transceiver working with the assumption that sps will be the same >>>>>>>>>>>>> on both >>>>>>>>>>>>> ends. >>>>>>>>>>>>> >>>>>>>>>>>>> 3) The way you set the samples per using the RRC filter, is by >>>>>>>>>>>>> choosing the ratio of the sampling rate and the symbol rate to be >>>>>>>>>>>>> equal to >>>>>>>>>>>>> your sps rate. In the flowgraph that you included that contains >>>>>>>>>>>>> the RRC, >>>>>>>>>>>>> you have a sample rate of 48k and a symbol rate of 1. This means >>>>>>>>>>>>> your sps >>>>>>>>>>>>> is 48000 samples per symbol. This is the source of your current >>>>>>>>>>>>> problem. In >>>>>>>>>>>>> addition, you placed it right after the constellation modulator, >>>>>>>>>>>>> as though >>>>>>>>>>>>> it would exist in the transmitter at this location. In reality, >>>>>>>>>>>>> this RRC >>>>>>>>>>>>> would exist right before the symbol sync block in the receiver, >>>>>>>>>>>>> and that's >>>>>>>>>>>>> where I recommend you place it. The RRC for the transmitter is >>>>>>>>>>>>> already >>>>>>>>>>>>> included within the constellation modulator block for you by >>>>>>>>>>>>> default, and >>>>>>>>>>>>> is set to produce 4 samples per symbol. >>>>>>>>>>>>> >>>>>>>>>>>>> 4) If the only change you made to the flowgraph with the RRC >>>>>>>>>>>>> in it is to set the sample rate of the RRC block from 48k to 4, I >>>>>>>>>>>>> suspect >>>>>>>>>>>>> it would start working. This is because it just so happens that >>>>>>>>>>>>> the RRC is >>>>>>>>>>>>> technically placed right before the symbol sync as it is, even >>>>>>>>>>>>> though it >>>>>>>>>>>>> doesn't look that way. The downstream blocks from the RRC just so >>>>>>>>>>>>> happen to >>>>>>>>>>>>> be identity operations in their current state. >>>>>>>>>>>>> >>>>>>>>>>>>> 5) I recommend creating a variable called "sps" and using this >>>>>>>>>>>>> variable in all the blocks that require an explicit "samples per >>>>>>>>>>>>> symbol", >>>>>>>>>>>>> or use the ratio approach of wanting a "sample rate" and a >>>>>>>>>>>>> "symbol rate". >>>>>>>>>>>>> When a block wants both "sample rate" and "symbol rate", the >>>>>>>>>>>>> first thing >>>>>>>>>>>>> they usually do internally is create "sps = sample_rate / >>>>>>>>>>>>> symbol_rate". >>>>>>>>>>>>> When you set sample_rate = sps and symbol_rate = 1, you are doing >>>>>>>>>>>>> so >>>>>>>>>>>>> knowing this ratio is all it actually cares about. This is the >>>>>>>>>>>>> case with >>>>>>>>>>>>> the RRC block. >>>>>>>>>>>>> >>>>>>>>>>>>> Hopefully that's all clear and your flowgraph starts to work. >>>>>>>>>>>>> Let us know. >>>>>>>>>>>>> >>>>>>>>>>>>> Richard >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Tue, May 6, 2025 at 5:21 AM Zachary Naymik < >>>>>>>>>>>>> znay...@mti-systems.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Richard, >>>>>>>>>>>>>> Again - thank you for your guidance. I will admit I have no >>>>>>>>>>>>>> experience with signal processing so I appreciate you being >>>>>>>>>>>>>> patient with >>>>>>>>>>>>>> me. I have stripped the working BPSK flowgraph to work with the >>>>>>>>>>>>>> minimal >>>>>>>>>>>>>> amount of blocks I believe. However, when I add the RRC filter, >>>>>>>>>>>>>> the >>>>>>>>>>>>>> flowgraph will no longer work. I understand there might be some >>>>>>>>>>>>>> tuning I >>>>>>>>>>>>>> need to add to the RRC filter but I do not understand how to >>>>>>>>>>>>>> calculate what >>>>>>>>>>>>>> values I need to use or anything of that sort. I was also unsure >>>>>>>>>>>>>> of whether >>>>>>>>>>>>>> to use the FFT RRC Filter, or just the RRC filter. The >>>>>>>>>>>>>> flowgraphs are >>>>>>>>>>>>>> attached below. Any more feedback would be greatly appreciated. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks again, >>>>>>>>>>>>>> Zach >>>>>>>>>>>>>> >>>>>>>>>>>>>> Working Stripped BPSK: >>>>>>>>>>>>>> <image.png> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Non-functional Stripped BPSK w/ RRC Filter: >>>>>>>>>>>>>> <image.png> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Thu, May 1, 2025 at 3:41 PM Richard Bell < >>>>>>>>>>>>>> richard.be...@gmail.com> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> 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.be...@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 < >>>>>>>>>>>>>>>> znay...@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. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> <image.png> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>> Zach >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Tue, Apr 29, 2025 at 1:27 PM Richard Bell < >>>>>>>>>>>>>>>>> richard.be...@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 < >>>>>>>>>>>>>>>>>> znay...@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): >>>>>>>>>>>>>>>>>>> <image.png> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> QPSK Flowgraph (not working): >>>>>>>>>>>>>>>>>>> <image.png> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> 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.be...@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 < >>>>>>>>>>>>>>>>>>>> znay...@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: znay...@mti-systems.com p: 330-931-9945 >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> https://mti-systems.com >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> [image: A black background with a black square >>>>>>>>>>>>>>>>>>>>> Description automatically generated] >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Zach Naymik | Software Engineer >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> e: znay...@mti-systems.com p: 330-931-9945 >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> https://mti-systems.com >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> [image: A black background with a black square >>>>>>>>>>>>>>>>>>> Description automatically generated] >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Zach Naymik | Software Engineer >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> e: znay...@mti-systems.com p: 330-931-9945 >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> https://mti-systems.com >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> [image: A black background with a black square Description >>>>>>>>>>>>>>>>> automatically generated] >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> >>>>>>>>>>>>>> Zach Naymik | Software Engineer >>>>>>>>>>>>>> >>>>>>>>>>>>>> e: znay...@mti-systems.com p: 330-931-9945 >>>>>>>>>>>>>> >>>>>>>>>>>>>> https://mti-systems.com >>>>>>>>>>>>>> >>>>>>>>>>>>>> [image: A black background with a black square Description >>>>>>>>>>>>>> automatically generated] >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> >>>>>>>>>>>> Zach Naymik | Software Engineer >>>>>>>>>>>> >>>>>>>>>>>> e: znay...@mti-systems.com p: 330-931-9945 >>>>>>>>>>>> >>>>>>>>>>>> https://mti-systems.com >>>>>>>>>>>> >>>>>>>>>>>> [image: A black background with a black square Description >>>>>>>>>>>> automatically generated] >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> >>>>>>>>>> Zach Naymik | Software Engineer >>>>>>>>>> >>>>>>>>>> e: znay...@mti-systems.com p: 330-931-9945 >>>>>>>>>> >>>>>>>>>> https://mti-systems.com >>>>>>>>>> >>>>>>>>>> [image: A black background with a black square Description >>>>>>>>>> automatically generated] >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> Zach Naymik | Software Engineer >>>>>>>>> >>>>>>>>> e: znay...@mti-systems.com p: 330-931-9945 >>>>>>>>> >>>>>>>>> https://mti-systems.com >>>>>>>>> >>>>>>>>> [image: A black background with a black square Description >>>>>>>>> automatically generated] >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> Zach Naymik | Software Engineer >>>>>>> >>>>>>> e: znay...@mti-systems.com p: 330-931-9945 >>>>>>> >>>>>>> https://mti-systems.com >>>>>>> >>>>>>> [image: A black background with a black square Description >>>>>>> automatically generated] >>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>>> >>>>>> Zach Naymik | Software Engineer >>>>>> >>>>>> e: znay...@mti-systems.com p: 330-931-9945 >>>>>> >>>>>> https://mti-systems.com >>>>>> >>>>>> [image: A black background with a black square Description >>>>>> automatically generated] >>>>>> >>>>> >>>> >>>> -- >>>> >>>> Zach Naymik | Software Engineer >>>> >>>> e: znay...@mti-systems.com p: 330-931-9945 >>>> >>>> https://mti-systems.com >>>> >>>> [image: A black background with a black square Description >>>> automatically generated] >>>> >>> >> >> -- >> >> Zach Naymik | Software Engineer >> >> e: znay...@mti-systems.com p: 330-931-9945 >> >> https://mti-systems.com >> >> [image: A black background with a black square Description automatically >> generated] >> > > > -- > > Zach Naymik | Software Engineer > > e: znay...@mti-systems.com p: 330-931-9945 > > https://mti-systems.com > > [image: A black background with a black square Description automatically > generated] > > -- Zach Naymik | Software Engineer e: znay...@mti-systems.com p: 330-931-9945 https://mti-systems.com [image: A black background with a black square Description automatically generated]