23 #ifndef INCLUDED_OWC_VPPM_DEMODULATOR_IMPL_H 24 #define INCLUDED_OWC_VPPM_DEMODULATOR_IMPL_H 34 int d_samples_per_symbol;
35 int d_samples_per_pulse;
49 float gain() {
return d_gain; }
53 std::vector<float> matching_signal_for_low;
54 std::vector<float> matching_signal_for_high;
56 for (
int i = 0; i < num_incoming_samples; i++)
60 matching_signal_for_low.push_back(
gain);
64 matching_signal_for_low.push_back(0);
68 for (
int j = 0; j < num_incoming_samples; j++)
72 matching_signal_for_high.push_back((-1) *
gain);
76 matching_signal_for_high.push_back(0);
80 float positive_sum = 0;
81 float negative_sum = 0;
83 for (
int x = 0; x < num_incoming_samples; x++)
85 positive_sum += samples_array[x] * matching_signal_for_low[x];
86 negative_sum += samples_array[x] * matching_signal_for_high[x];
89 return positive_sum + negative_sum;
95 gr_vector_const_void_star &input_items,
96 gr_vector_void_star &output_items
<+description of block+>
Definition: VPPM_Demodulator.h:37
float matched_filter(std::vector< float > samples_array, int num_incoming_samples, int samples_per_pulse, float gain)
Definition: VPPM_Demodulator_impl.h:51
void set_samples_per_pulse(int samples_per_pulse)
Definition: VPPM_Demodulator_impl.h:45
void set_samples_per_symbol(int samples_per_symbol)
Definition: VPPM_Demodulator_impl.h:42
VPPM_Demodulator_impl(int samples_per_symbol, int samples_per_pulse, float gain)
Definition: binary_to_decimal_mapper.h:29
int samples_per_symbol()
Definition: VPPM_Demodulator_impl.h:43
Definition: VPPM_Demodulator_impl.h:31
void set_gain(float gain)
Definition: VPPM_Demodulator_impl.h:48
int samples_per_pulse()
Definition: VPPM_Demodulator_impl.h:46
float gain()
Definition: VPPM_Demodulator_impl.h:49
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)