aboutsummaryrefslogtreecommitdiffstats
path: root/AlignSample.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'AlignSample.hpp')
-rw-r--r--AlignSample.hpp28
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;
};