21#ifndef INCLUDED_SATNOGS_CW_DECODER_H
22#define INCLUDED_SATNOGS_CW_DECODER_H
24#include <gnuradio/fft/fft.h>
29#include <volk/volk_alloc.hh>
45 using sptr = std::shared_ptr<cw_decoder>;
51 float confidence = 0.9,
53 size_t min_frame_size = 5,
54 size_t max_frame_size = 256);
63 size_t min_frame_size,
64 size_t max_frame_size);
75 const double d_samp_rate;
77 const int d_overlapping;
80 const float d_confidence;
81 const size_t d_min_frame_size;
82 const int d_new_samples;
83 const int d_shift_len;
84 const float d_fft_duration;
85 const size_t d_dot_duration;
87 int d_channel_carriers;
88 int d_nf_est_remaining;
90 std::vector<cw_decoder_priv*> d_decoders;
91 gr::fft::fft_complex_fwd* d_fft;
92 volk::vector<gr_complex> d_tmp_buf;
93 volk::vector<float> d_nf_buf;
94 volk::vector<float> d_psd;
95 std::deque<decoder_status_t> d_frames;
99 void process_windows();
#define SATNOGS_API
Definition: api.h:19
CW decoder based on overlapping FFT.
Definition: cw_decoder.h:43
static sptr make(double samp_rate, int fft_len, int overlapping, float wpm=22.0, float snr=10.0, float confidence=0.9, size_t channels=16, size_t min_frame_size=5, size_t max_frame_size=256)
decoder_status_t decode(const void *in, int len)
std::shared_ptr< cw_decoder > sptr
Definition: cw_decoder.h:45
size_t input_multiple() const
cw_decoder(double samp_rate, int fft_len, int overlapping, float wpm, float snr, float confidence, size_t channels, size_t min_frame_size, size_t max_frame_size)
Abstract class that provided the API for the c decoders.
Definition: decoder.h:71
class decoder_status decoder_status_t
Definition: decoder.h:56
Definition: amsat_duv_decoder.h:29