\doxysection{src/sdr/pi4cxpsk.c File Reference} \label{pi4cxpsk_8c}\index{src/sdr/pi4cxpsk.c@{src/sdr/pi4cxpsk.c}} Osmocom GMR-\/1 pi2-\/\+CBPSK, pi4-\/\+CBPSK and pi4-\/\+CQPSK modulation support implementation. {\ttfamily \#include $<$complex.\+h$>$}\newline {\ttfamily \#include $<$math.\+h$>$}\newline {\ttfamily \#include $<$errno.\+h$>$}\newline {\ttfamily \#include $<$stdint.\+h$>$}\newline {\ttfamily \#include $<$stdlib.\+h$>$}\newline {\ttfamily \#include $<$stdio.\+h$>$}\newline {\ttfamily \#include $<$string.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/bits.\+h$>$}\newline {\ttfamily \#include $<$osmocom/dsp/cxvec.\+h$>$}\newline {\ttfamily \#include $<$osmocom/dsp/cxvec\+\_\+math.\+h$>$}\newline {\ttfamily \#include $<$osmocom/gmr1/sdr/defs.\+h$>$}\newline {\ttfamily \#include $<$osmocom/gmr1/sdr/pi4cxpsk.\+h$>$}\newline \doxysubsection*{Functions} \begin{DoxyCompactItemize} \item int \textbf{ gmr1\+\_\+pi4cxpsk\+\_\+demod} (struct \textbf{ gmr1\+\_\+pi4cxpsk\+\_\+burst} $\ast$burst\+\_\+type, struct \textbf{ osmo\+\_\+cxvec} $\ast$burst\+\_\+in, int sps, float freq\+\_\+shift, \textbf{ sbit\+\_\+t} $\ast$ebits, int $\ast$sync\+\_\+id\+\_\+p, float $\ast$toa\+\_\+p, float $\ast$freq\+\_\+err\+\_\+p) \begin{DoxyCompactList}\small\item\em All-\/in-\/one pi4-\/\+Cx\+PSK demodulation method. \end{DoxyCompactList}\item int \textbf{ gmr1\+\_\+pi4cxpsk\+\_\+detect} (struct \textbf{ gmr1\+\_\+pi4cxpsk\+\_\+burst} $\ast$$\ast$burst\+\_\+types, float e\+\_\+toa, struct \textbf{ osmo\+\_\+cxvec} $\ast$burst\+\_\+in, int sps, float freq\+\_\+shift, int $\ast$bt\+\_\+id\+\_\+p, int $\ast$sync\+\_\+id\+\_\+p, float $\ast$toa\+\_\+p) \begin{DoxyCompactList}\small\item\em Try to identify burst type by matching training sequences. \end{DoxyCompactList}\item int \textbf{ gmr1\+\_\+pi4cxpsk\+\_\+mod\+\_\+order} (struct \textbf{ osmo\+\_\+cxvec} $\ast$burst\+\_\+in, int sps, float freq\+\_\+shift) \begin{DoxyCompactList}\small\item\em Estimates modulation order by comparing power of x$^\wedge$2 vs x$^\wedge$4. \end{DoxyCompactList}\item int \textbf{ gmr1\+\_\+pi4cxpsk\+\_\+mod} (struct \textbf{ gmr1\+\_\+pi4cxpsk\+\_\+burst} $\ast$burst\+\_\+type, \textbf{ ubit\+\_\+t} $\ast$ebits, int sync\+\_\+id, struct \textbf{ osmo\+\_\+cxvec} $\ast$burst\+\_\+out) \begin{DoxyCompactList}\small\item\em Modulates (currently at 1 sps) \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection*{Variables} \begin{DoxyCompactItemize} \item struct \textbf{ gmr1\+\_\+pi4cxpsk\+\_\+modulation} \textbf{ gmr1\+\_\+pi2cbpsk} \begin{DoxyCompactList}\small\item\em pi2-\/\+CBPSK modulation description \end{DoxyCompactList}\item struct \textbf{ gmr1\+\_\+pi4cxpsk\+\_\+modulation} \textbf{ gmr1\+\_\+pi4cbpsk} \begin{DoxyCompactList}\small\item\em pi4-\/\+CBPSK modulation description \end{DoxyCompactList}\item struct \textbf{ gmr1\+\_\+pi4cxpsk\+\_\+modulation} \textbf{ gmr1\+\_\+pi4cqpsk} \begin{DoxyCompactList}\small\item\em pi4-\/\+CQPSK modulation description \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Detailed Description} Osmocom GMR-\/1 pi2-\/\+CBPSK, pi4-\/\+CBPSK and pi4-\/\+CQPSK modulation support implementation.