From 0c05e6dee28cbe5c4c7cfd3cee9e36dc80485a9c Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Fri, 3 Mar 2023 16:29:22 +0000 Subject: [PATCH] Add methods to print filter taps as Matlab vectors --- sdrbase/dsp/firfilter.h | 14 ++++++++++++++ sdrbase/dsp/raisedcosine.h | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/sdrbase/dsp/firfilter.h b/sdrbase/dsp/firfilter.h index 662a838fa..9db921579 100644 --- a/sdrbase/dsp/firfilter.h +++ b/sdrbase/dsp/firfilter.h @@ -19,6 +19,7 @@ #pragma once #include +#include #include "dsp/dsptypes.h" #include "dsp/misc.h" #include "export.h" @@ -57,6 +58,19 @@ public: return acc; } + // Print taps as a Matlab vector + void printTaps(const char *name) + { + printf("%s = [", name); + for (int i = 0; i <= m_taps.size() - 1; ++i) { + printf("%g ", m_taps[i]); + } + for (int i = m_taps.size() - 2; i >= 0; --i) { + printf("%g ", m_taps[i]); + } + printf("];\n"); + } + protected: void init(int nTaps) { diff --git a/sdrbase/dsp/raisedcosine.h b/sdrbase/dsp/raisedcosine.h index 8d2d63088..630ef2ebb 100644 --- a/sdrbase/dsp/raisedcosine.h +++ b/sdrbase/dsp/raisedcosine.h @@ -20,6 +20,7 @@ #define INCLUDE_RAISEDCOSINE_H #include +#include #include "dsp/dsptypes.h" // Raised-cosine low-pass filter for pulse shaping, without intersymbol interference (ISI) @@ -131,6 +132,19 @@ public: return acc; } + // Print taps as a Matlab vector + void printTaps(const char *name) + { + printf("%s = [", name); + for (int i = 0; i <= m_taps.size() - 1; ++i) { + printf("%g ", m_taps[i]); + } + for (int i = m_taps.size() - 2; i >= 0; --i) { + printf("%g ", m_taps[i]); + } + printf("];\n"); + } + private: std::vector m_taps; std::vector m_samples;