From c908636cde8651d2006e30c3d22f43051184688c Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 26 May 2024 19:27:16 +1000 Subject: [PATCH] Filter: added test of phase lag vs attenuation --- libraries/Filter/tests/plot_harmonictest5.gnu | 12 +++++++ libraries/Filter/tests/test_notchfilter.cpp | 32 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 libraries/Filter/tests/plot_harmonictest5.gnu diff --git a/libraries/Filter/tests/plot_harmonictest5.gnu b/libraries/Filter/tests/plot_harmonictest5.gnu new file mode 100644 index 0000000000000..92283141aafb2 --- /dev/null +++ b/libraries/Filter/tests/plot_harmonictest5.gnu @@ -0,0 +1,12 @@ +#!/usr/bin/gnuplot -persist +set y2tics 0,10 +set ytics nomirror +set style data linespoints +set key autotitle +set datafile separator "," +set key autotitle columnhead +set xlabel "Attenuation(dB)" +set ylabel "PhaseLag(deg)" +set key left bottom +plot "harmonicnotch_test5.csv" using 1:2, "harmonicnotch_test5.csv" using 1:3, "harmonicnotch_test5.csv" using 1:4, "harmonicnotch_test5.csv" using 1:5, "harmonicnotch_test5.csv" using 1:6 + diff --git a/libraries/Filter/tests/test_notchfilter.cpp b/libraries/Filter/tests/test_notchfilter.cpp index a13c9aeae161a..6b60611c28af1 100644 --- a/libraries/Filter/tests/test_notchfilter.cpp +++ b/libraries/Filter/tests/test_notchfilter.cpp @@ -325,4 +325,36 @@ TEST(NotchFilterTest, HarmonicNotchTest4) fclose(f); } +/* + show phase lag versus attenuation + */ +TEST(NotchFilterTest, HarmonicNotchTest5) +{ + const float min_attenuation = 0; + const float max_attenuation = 50; + const uint16_t steps = 200; + + const char *csv_file = "harmonicnotch_test5.csv"; + FILE *f = fopen(csv_file, "w"); + fprintf(f, "Attenuation(dB),Lag(10Hz),Lag(20Hz),Lag(30Hz),Lag(40Hz),Lag(50Hz),Lag(60Hz),Lag(70Hz)\n"); + + for (uint16_t i=0; i