aboutsummaryrefslogtreecommitdiffstats
path: root/simulation/QPKS/qpks.py (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-10-18Add decoder to QPKS simulationNao Pross1-0/+70
2021-10-14Remove unnecessary subfolder tests/Simulation and move QPSK into new ↵Nao Pross1-0/+0
'simulation' dir
2021-10-14Add Equalizer and Phase + Freq. correction to QPKS simulationNao Pross1-95/+208
Continuing the work of commit 20e54b3cf198f17e05a3c7e8716138717447aa32 Important: - The diagram has been updated to include a CMA equalizer and a costas loop (for phase correction and small frequency correction). TODO: - Decode the signal - Create USRP hardware sinks (RX side, for later) It would be very nice if we manage to find a 'switch' block that allows to have in a single flow diagram both the simulated and "real" signals. NOTE: recall that the USRP gives directly a baseband signal, which means that everything between the channel the costas loop (both included) will not be used when the hardware is connected. Only the (not yet) implemented decoder (and eventually some more filters if needed) will be used. Other notes: - The layout has been updated to use QT Tab widgets (defined on the top left corner). GUI elements can be put into tabs by giving a string '<tab name>@<tab nr>: <grid options>' as GUI hint. - To make the diagram nicer, all GUI sinks (eg. constellations plots of time / freq. plots) are vertically aligned. Constellation above, and time and freq. sinks below. Variables ought to be placed near their respective block, unless they are global, in which case they should go on the top left.
2021-10-13Create QPKS simulationNao Pross1-0/+460
The current flow diagram does the following: - Generate a QPKS constellation from a random bit source. The constellation is parametrized by the 'Constellation Rect. Object' and the variables 'sps' (Samples Per Symbol) and 'excess_bw' (Excess Bandwidth). - Send the modulated signal through a AWGN channel. Noise channel taps are controlled with the 'taps' variable, the other paramters are given through the 'QT GUI Range' objects. - Display the constellation diagram as well as the time and frequency domain plots of the signal after the channel (receiver side). - Synchronize the clock using a polyphase clock sync with root raised cosine filters. The number of filters is stored in 'nfilts' and the filter themselves are in 'rcc_taps'. - Finally, display the constellation after the RCC filters. What is still missing: - Multipath fading taps in the channel model (for later) - Equalization on the receiver side. PROBLEM: The wiki tutorial targets GNU Radio 3.9, and uses 'Linear Equlizer' and 'Adaptive Algorithm' blocks which are not available in GNU Radio 3.8. We need to use 'CMA Equalizer' and 'LMS DD Equalizer' and figure out their parameters instead. Though this should not be hard. - Phase and Fine Frequency Correction. - Decode the message.