Hi Lannan: I am in exactly the same place as you are in regard to learning about digital modulation and packet transmission in gnuradio. I am working towards development (and understanding) of a digital transmission and reception system. My goal is simply to learn how this is done in gnuradio.
I agree with you in that there is a lack of clear explanatory information online for this. I have found some examples but they use the deprecated “packet encoder” and “packet decoder” blocks and are not well-explained. I did some research and found some references in forums et cetera that point to an excellent set of examples in newer gnuradio distributions, see (in general) /(you local install path)/gnuradio/share/examples/packet. There are a number of example flow graphs and some hierarchical blocks. I went through these but no documentation was evident until I did further searching and found great in-depth explanatory notes of these flow graphs at https://www.gnuradio.org/doc/doxygen/page_packet_comms.html <https://www.gnuradio.org/doc/doxygen/page_packet_comms.html>. I am currently reading through these notes and am going to experiment with the hierarchical blocks to begin with. The digital communications notes at https://www.gnuradio.org/doc/doxygen/page_digital.html <https://www.gnuradio.org/doc/doxygen/page_digital.html> are also quite helpful, they parallel the discussion in the guided tutorial we have both worked through. I hope this info helps and good luck with your learning! Kevin > On Jul 15, 2020, at 5:50 AM, lannan jiang <[email protected]> wrote: > > > Thank you very much. I’ll see what I can do based on your suggestions. > > Best regards, > Lannan Jiang >> On Jul 15, 2020, at 6:38 AM, Jeff Long <[email protected] >> <mailto:[email protected]>> wrote: >> >> The signal source is outputting unsigned bytes. The sample rate is 48k and >> the tone is 1k. Something I missed before that helps explain your plot ... >> the signal is rounded down to zero for all but the peak values, since abs(x) >> < 1 can not be represented without scaling. Packed/unpacked refer to bits of >> a digital signal. The tone is "analog", but you could think of it a "packed" >> if your audio codec is PCM (raw samples). PCM is a valid codec. It's what >> you find in a wav file. The problem you will run into is that any lost or >> corrupted symbols will ruin the audio. So, you would need to add >> framing/packetizing and error correction. Maybe someone else has a link to >> an example that shows how this works in GR. The concepts are not specific to >> GR. >> >> On Tue, Jul 14, 2020 at 10:50 PM lannan jiang <[email protected] >> <mailto:[email protected]>> wrote: >> Hi Jeff Long, >> Thank you so much for your reply. >> >> I understand the plot of the signal source now. I have the >> mpsk_stage6.grc running properly from the tutorial, and was able to compare >> the transmitting and receiving bit streams. I attached the grc file to this >> email. Additionally, could you please elaborate more on the byte output of >> the signal source? Are they packed? Unpacked? >> Moreover, as you stated that i should encode an analog signal to data >> before transmission, so does that mean I also have to use codecs in order to >> transmit a tone? >> My last question would be: if I were to transmit an mp3 file, which is >> already encoded, will i be able to recover the audio using audio decoders? >> >> Thanks again for your help! >> >> Lannan Jiang >> >> ps: I apologize for my many questions as they may seem very basic. I am >> an engineering student and I am greatly thankful for your advice. >> >> >> >> From: Discuss-gnuradio <[email protected] >> <mailto:[email protected]>> on behalf of Jeff Long <[email protected] >> <mailto:[email protected]>> >> Sent: Tuesday, July 14, 2020 9:57 PM >> To: GNURadio Discussion List <[email protected] >> <mailto:[email protected]>> >> Subject: Re: Question regarding transmission of a tone using QPSK >> >> A better explanation of why that plot is correct: if you sample a tone twice >> per cycle, you see [-1,1,-1,1,...]. Four times per cycle, looks like >> [-1,0,1,0,...]. Even though it looks discontinuous, it will sound like a >> tone when played through your sound card due to filtering in the audio >> software and/or hardware. >> >> That tutorial goes through the low level portions of the digital chain, >> including timing recovery. Framing, error correction and (optionally) an >> audio codec would all be in addition to the blocks shown in the tutorial. >> >> On Tue, Jul 14, 2020 at 9:03 PM Jeff Long <[email protected] >> <mailto:[email protected]>> wrote: >> Depending on your sample rate and tone frequency, that plot would be correct. >> >> The analog signal needs to be encoded somehow as data before transmission. >> While you could feed an audio file 2 bits at a time into a QPSK modulator, >> it's pretty unlikely that you will be able to recover the audio. If you're >> thinking of "transmitting audio", look into audio codecs. If you're thinking >> of sending a wav file, you're really just sending packets. Either way, you >> will need a complete chain that includes error correction, clock recovery, >> etc. >> >> On Tue, Jul 14, 2020 at 3:58 PM lannan jiang <[email protected] >> <mailto:[email protected]>> wrote: >> Hi all, >> I have been following the PSK guided tutorial >> https://wiki.gnuradio.org/index.php/Guided_Tutorial_PSK_Demodulation >> <https://wiki.gnuradio.org/index.php/Guided_Tutorial_PSK_Demodulation> . I >> am on the mpsk_stage6.grc, but I want to transmit a simple tone instead of a >> random source, so I added a signal source which generates a sine wave. >> However, here are my questions: >> >> 1. I select the output of the signal source as bytes, and the time plot >> of it is attached. As you can see, the plot looks like bursts. But if I add >> an audio sink after signal source directly, I hear a constant tone. This >> does not make sense to me, as I thought I should hear discontinuous sound as >> the plot shows, could someone explain this? >> >> 2. With the first question being said, I am using a constellation >> modulator (QPSK) that takes 2 bits/symbol. >> How can I feed the output of signal source ( a 16-bit audio file later >> on) to the constellation modulator properly? >> >> Thanks in advance! >> >> Regards, >> Lannan Jiang >> >
