Oh, I also added complex_to_arg and probably a complex to mag^2. I don't know if either of these have controlport functionality.
I might have added other blocks I suppose, I'm typing this all from memory. -Andy On Sat, Apr 2, 2016 at 8:11 PM, Andy Walls <a...@silverblocksystems.net> wrote: > Hi Arik: > > On Sat, Apr 2, 2016 at 7:41 PM, Landsman, Arik <arik.lands...@tufts.edu> > wrote: > >> Hi Andy, >> >> Still looking it over, but one thing jumps out right away - for some >> reason I couldn't execute either Rx_syncd_2.grc or the Rx_syncd.py. getting >> the same error in both cases: >> >> "" >> Generating: >> '/home/ubuntu/Desktop/MSProject/alternateVersions/Rx_syncd_2.py' >> >> Executing: '/usr/bin/python2 -u >> /home/ubuntu/Desktop/MSProject/alternateVersions/Rx_syncd_2.py' >> >> Using Volk machine: sse4_1_64 >> Thrift: Sat Apr 2 19:05:54 2016 TServerSocket::listen() BIND 9090 >> terminate called after throwing an instance of >> 'apache::thrift::transport::TTransportException' >> what(): Could not bind: Transport endpoint is not connected >> "" >> >> does this look familiar by any chance? >> > > It looks like a GNURadio ControlPort / Apache Thrift error. > > I took your flowgraph and modified it slightly, only adding a few blocks: > -modulate_vector > -skip_head > -keep_1_in_n > -qt_time_sink > -feedforward_agc > -multiply const > -qt gui range > > One of those might be doing it. Disable skip_head, keep_1_in_n, and the > constellation sink they connect to. Hopefully it's one of them. > Otherwise, you didn't drop a control port related block on the flowgraph > did you? > > FWIW, I also modified the Polyphase clock sync filter taps, the Corr_Est > symbols, and changed a few 3.14's to math.pi. > > >> >> Also could you elaborate a bit on what you did with >> >> "" >> $ source <path_to_target>/setup_env.sh >> $ ./Rx_syncd.py | grep -v volk | sed -e 's/(//g' -e 's/)//g' > >> foo.txt >> $ octave >> octave:1> x = csvread('foo.txt'); >> octave:2> t = [1:length(x)]; >> octave:3> plot(t,abs(x)) >> octave:4> plot(t,arg(x)/pi) >> "" >> >> at the very least where can I find setup_env.sh?. > > > If you build GNURadio with the PyBOMBS build system and install in a > target directory somewhere, PyBOMBS generates this environment file which > is essential to run GNURadio Companion and gnuradio scripts properly. If > you are using the GNURadio supplied by your distribution, then sourcing a > setup_env.sh file is not necessary. > > > > >> . wondering what <path_to_target> may be. >> I suppose you then pipe a portion of the stream in Rx_syncd.py into >> foo.txt to parse with octave? >> > > Yes, I just have it emit the complex samples vector that the > modulate_vector block creates, and then inspect the samples in octave. You > can do it in MatLab or Python or Excel, or whatever. > > >> going to try it if I find setup_env.sh on my end. and once I can run >> Rx_syncd.py... ) >> >> Thanks, >> Arik >> > > And another, "Oh by the way" for when things are working. In the > flowgraph I sent, I mark the phase correction on the last symbol of the > preamble - where the phase correction was measured. This means, that the > previous symbols in the preamble, if they suffered a phase rotation, may > not get corrected by the costas loop. You can "fix" that by setting the > corr_est tag marking delay to 0, to mark the first symbol in the preamble > with the phase correction. This is OK as long as you are very close to the > correct center frequency. The measured phase rotation will become less > correct the farther you move from the measurement point at the peak of the > correlation, if you don't have good frequency lock when performing the > correlation. > > > Regards, > Andy > > >> >> >> >> ________________________________________ >> From: Andy Walls [a...@silverblocksystems.net] >> Sent: Friday, April 01, 2016 9:18 AM >> To: Landsman, Arik >> Cc: discuss-gnuradio@gnu.org >> Subject: Re: [Discuss-gnuradio] costas ambiguity and correlate-and-sync >> block in qpsk >> >> Hi Arik, >> >> I have attached a slightly improved flowgraph and a hand edited .py >> file. >> >> The only modifications to the flowgraph from before, is that I set the >> reference samples for the corr_est block to start at the _middle_ of the >> first symbol of the preamble and stop at the _middle_ of the last symbol >> in the preamble; I also ensured the phase_est and time_est tags stayed >> marked at the center of the last symbol of the preamble. This has two >> benefits: >> >> 1. The phase_est value will not be thrown off by the end of symbol >> transition to a different unknown symbol after the preamble. >> 2. The correlation won't be sensitive to the unknown symbols before and >> after the preamble. >> >> In other words, it was a mistake to have the correlation reference >> sequence start and end at the symbol transition times. :P >> >> In the generated *.py script I added one line near the end: >> >> print tb.get_modulated_preamble_untrimmed() >> >> So you can so this: >> >> $ source <path_to_target>/setup_env.sh >> $ ./Rx_syncd.py | grep -v volk | sed -e 's/(//g' -e 's/)//g' > >> foo.txt >> $ octave >> octave:1> x = csvread('foo.txt'); >> octave:2> t = [1:length(x)]; >> octave:3> plot(t,abs(x)) >> octave:4> plot(t,arg(x)/pi) >> >> and see why I picked the values I did to trim the modulated preamble to >> the correct set of samples. >> >> The modulator that generates the reference sequence has a pretty long >> delay, and the first copy of the preamble it outputs is a little >> distorted at the first symbol. That's why I snipped out the second copy >> of the preamble. >> >> Regards, >> Andy >> >> >> On Thu, 2016-03-31 at 22:04 -0400, Andy Walls wrote: >> > Hi Arik, >> > >> > Try the attached flowgraph. I didn't get to put everything back in, but >> > it demonstrates the principal. >> > >> > 1. Observe the corr_est block correlates to your preamble bytes. >> > 2. Slide the phase offset around: >> > a. observe the phase changing/wrapping in the time plot of the output of >> > the correlator >> > b. observe the phase_est tag value approximately matches the value of >> > the phase offset slider. >> > c. Observe the constellation rotate as you change the phase offset. >> > d. Observe your decoded bits stay the same. >> > >> > Regards, >> > Andy >> > >> > >> > >> >>
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio