On Tue, Dec 2, 2014 at 11:03 AM, Yi Chu <yi....@york.ac.uk> wrote: > Hello everyone, > > I am working on the GNURadio simulation of a 3-hop system using > non-differential QPSK: source generates QPSK-modulated signal and sends > it to relay, relay performs certain operation on the received complex > samples and sends them to the receiver, and the receiver decodes the data. > The flow graph is as below and I attached the .grc file. >
<snip> > So the source/receiver are the PSK Mod/Demod blocks and the blocks on > their left, and all other blocks represent the relay. > > Our project requires the relay to operate on the complex samples, however > the PSK Mod block brings ISI so I can't see a clear 4-point constellation > and the operation we need to do is not valid for the samples with ISI > (but the PSK Demod can remove ISI). Since I can't directly access the > complex samples somewhere inside the PSK Demod block, I have read through > generic_mod_demod.py and psk.py to try to find out the blocks inside PSK > Mod/Demod blocks. > > I can see that PSK Demod contains agc, fll band-edge filter, pfb clock > sync and constellation receiver (with a costas loop filter inside) for > non-differential decoding, PSK Mod has pfb resampler after the data is > mapped to complex samples. > > So that the blocks before pfb resampler are to remove ISI and pfb > resampler can put ISI back in for PSK Demod to decode the data. I can see > that the signal after costas loop filter gives a clear 4-point QPSK > constellation as expected, but there is no output at the sink. However if I > change the PSK Mod/Demod to differential (everything else stays the > same), then the signal can be correctly decoded... > > Does anyone have any ideas on this problem? Any advice are appreciated! > > Many thanks and best regards > Yi > The ISI is from the transmit pulse shaping filter, a root raised cosine. The RRC filter introduces ISI, which is what you see there. You need to pass it through a second RRC filter to remove the ISI. The problem with non-differential coding is that QPSK has a 4-way phase ambiguity and nothing in your receiver path is able to line up the received symbols in phase to how they were transmitted. It simply locks the points to the constellation without regard for which symbol is where. You might transmit a QPSK with '11' in the first quadrant, but when you receive it, where it locks might have that '11' in any one of the four quadrants of the complex plane. Differential encoding doesn't care about that absolute placement in the plane, just the change in phase, which is invariant with the rotation. Tom
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio