diff options
Diffstat (limited to 'AlignSample.hpp')
-rw-r--r-- | AlignSample.hpp | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/AlignSample.hpp b/AlignSample.hpp index 31b5de2..6bfdd6b 100644 --- a/AlignSample.hpp +++ b/AlignSample.hpp @@ -27,6 +27,9 @@ #include <deque> #include <mutex> #include <complex> +#include "fftw3.h" +#define FFT_TYPE fftwf_complex + typedef std::complex<float> complexf; @@ -39,8 +42,8 @@ struct CorrelationResult { tx_timestamp(0) {} std::vector<complexf> correlation; - double rx_power; - double tx_power; + float rx_power; + float tx_power; double rx_timestamp; double tx_timestamp; @@ -53,6 +56,11 @@ class AlignSample { m_first_tx_sample_time = 0; m_num_rx_samples_dropped = 0; m_num_tx_samples_dropped = 0; + fftw_init = false; + + fd_rx = fopen("rx.debug", "wb"); + fd_tx = fopen("tx.debug", "wb"); + } void push_tx_samples(complexf* samps, size_t len, double first_sample_time); @@ -68,7 +76,7 @@ class AlignSample { MDEBUG(" TX: %f %zu\n", m_tx_sample_time(), m_txsamples.size()); } - CorrelationResult crosscorrelate(size_t max_offset, size_t len); + CorrelationResult crosscorrelate(size_t len); void consume(size_t samples); @@ -93,6 +101,20 @@ class AlignSample { double m_first_tx_sample_time; size_t m_num_tx_samples_dropped; std::deque<complexf> m_txsamples; + + FILE* fd_rx; + FILE* fd_tx; + + bool fftw_init; + fftwf_complex *rx_fft_in; + fftwf_complex *rx_fft_out; + fftwf_complex *tx_fft_in; + fftwf_complex *tx_fft_out; + fftwf_complex *ifft_in; + fftwf_complex *ifft_out; + fftwf_plan rx_fft_plan; + fftwf_plan tx_fft_plan; + fftwf_plan ifft_plan; }; |