SDRAngel
4.11.5
Developer docs for <a href="https://github.com/f4exb/sdrangel">SDRangel<\a>, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
plugins
channelrx
demodbfm
rdsdemod.h
Go to the documentation of this file.
1
// Copyright (C) 2015 F4EXB //
3
// written by Edouard Griffiths //
4
// //
5
// This program is free software; you can redistribute it and/or modify //
6
// it under the terms of the GNU General Public License as published by //
7
// the Free Software Foundation as version 3 of the License, or //
8
// (at your option) any later version. //
9
// //
10
// This program is distributed in the hope that it will be useful, //
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
13
// GNU General Public License V3 for more details. //
14
// //
15
// You should have received a copy of the GNU General Public License //
16
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
18
19
20
#ifndef PLUGINS_CHANNEL_BFM_RDSDEMOD_H_
21
#define PLUGINS_CHANNEL_BFM_RDSDEMOD_H_
22
23
#include <QObject>
24
//#include "util/udpsink.h" // UDP debug
25
26
#include "
dsp/dsptypes.h
"
27
28
class
RDSDemod
:
public
QObject
29
{
30
Q_OBJECT
31
public
:
32
RDSDemod
();
33
~RDSDemod
();
34
35
void
setSampleRate
(
int
srate);
36
bool
process
(
Real
rdsSample,
bool
&bit);
37
38
struct
{
39
Real
acc
;
40
Real
qua
;
41
Real
fclk
;
42
}
m_report
;
43
44
protected
:
45
bool
biphase
(
Real
acc
,
bool
&bit,
Real
d_cphi
);
46
Real
filter_lp_2400_iq
(
Real
in,
int
iqIndex);
47
Real
filter_lp_pll
(
Real
input);
48
int
sign
(
Real
a);
49
50
private
:
51
struct
52
{
53
double
subcarr_phi
;
54
Real
subcarr_bb
[2];
55
double
clock_offset
;
56
double
clock_phi
;
57
double
prev_clock_phi
;
58
Real
lo_clock
;
59
Real
prev_lo_clock
;
60
Real
prev_bb
;
61
double
d_cphi
;
62
Real
acc
;
63
int
numsamples
;
64
Real
prev_acc
;
65
int
counter
;
66
int
reading_frame
;
67
int
tot_errs
[2];
68
int
dbit
;
69
}
m_parms
;
70
71
Real
m_xv
[2][2+1];
72
Real
m_yv
[2][2+1];
73
Real
m_xw
[1+1];
74
Real
m_yw
[1+1];
75
Real
m_prev
;
76
77
int
m_srate
;
78
79
static
const
Real
m_pllBeta
;
80
static
const
Real
m_fsc
;
81
};
82
83
#endif
/* PLUGINS_CHANNEL_BFM_RDSDEMOD_H_ */
RDSDemod::subcarr_phi
double subcarr_phi
Definition:
rdsdemod.h:53
RDSDemod::biphase
bool biphase(Real acc, bool &bit, Real d_cphi)
Definition:
rdsdemod.cpp:138
RDSDemod::process
bool process(Real rdsSample, bool &bit)
Definition:
rdsdemod.cpp:75
RDSDemod::filter_lp_pll
Real filter_lp_pll(Real input)
Definition:
rdsdemod.cpp:201
RDSDemod::m_fsc
static const Real m_fsc
Definition:
rdsdemod.h:80
RDSDemod::reading_frame
int reading_frame
Definition:
rdsdemod.h:66
RDSDemod::clock_phi
double clock_phi
Definition:
rdsdemod.h:56
RDSDemod::fclk
Real fclk
Definition:
rdsdemod.h:41
RDSDemod::lo_clock
Real lo_clock
Definition:
rdsdemod.h:58
RDSDemod::m_report
struct RDSDemod::@1 m_report
RDSDemod::counter
int counter
Definition:
rdsdemod.h:65
RDSDemod::prev_bb
Real prev_bb
Definition:
rdsdemod.h:60
RDSDemod::tot_errs
int tot_errs[2]
Definition:
rdsdemod.h:67
RDSDemod::filter_lp_2400_iq
Real filter_lp_2400_iq(Real in, int iqIndex)
Definition:
rdsdemod.cpp:186
dsptypes.h
RDSDemod::numsamples
int numsamples
Definition:
rdsdemod.h:63
RDSDemod::m_yw
Real m_yw[1+1]
Definition:
rdsdemod.h:74
RDSDemod::dbit
int dbit
Definition:
rdsdemod.h:68
RDSDemod::sign
int sign(Real a)
Definition:
rdsdemod.cpp:211
RDSDemod::acc
Real acc
Definition:
rdsdemod.h:39
RDSDemod::m_prev
Real m_prev
Definition:
rdsdemod.h:75
RDSDemod::subcarr_bb
Real subcarr_bb[2]
Definition:
rdsdemod.h:54
RDSDemod::m_xv
Real m_xv[2][2+1]
Definition:
rdsdemod.h:71
RDSDemod::m_srate
int m_srate
Definition:
rdsdemod.h:77
RDSDemod::m_yv
Real m_yv[2][2+1]
Definition:
rdsdemod.h:72
RDSDemod::RDSDemod
RDSDemod()
Definition:
rdsdemod.cpp:34
RDSDemod::qua
Real qua
Definition:
rdsdemod.h:40
RDSDemod::prev_acc
Real prev_acc
Definition:
rdsdemod.h:64
RDSDemod::clock_offset
double clock_offset
Definition:
rdsdemod.h:55
RDSDemod::m_pllBeta
static const Real m_pllBeta
Definition:
rdsdemod.h:79
RDSDemod::prev_clock_phi
double prev_clock_phi
Definition:
rdsdemod.h:57
RDSDemod::~RDSDemod
~RDSDemod()
Definition:
rdsdemod.cpp:65
RDSDemod::m_parms
struct RDSDemod::@2 m_parms
RDSDemod::m_xw
Real m_xw[1+1]
Definition:
rdsdemod.h:73
RDSDemod::setSampleRate
void setSampleRate(int srate)
FIXME: fix rate for now.
Definition:
rdsdemod.cpp:70
Real
float Real
Definition:
dsptypes.h:42
RDSDemod::d_cphi
double d_cphi
Definition:
rdsdemod.h:61
RDSDemod
Definition:
rdsdemod.h:28
RDSDemod::prev_lo_clock
Real prev_lo_clock
Definition:
rdsdemod.h:59
Generated on Fri Aug 2 2019 17:56:29 for SDRAngel by
1.8.13