\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, 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, 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. 

