From e8b4e619479dd23d87c3aef042f2452f867a1e18 Mon Sep 17 00:00:00 2001
From: Ben Reynwar <ben@reynwar.net>
Date: Thu, 7 Mar 2013 23:22:22 -0700
Subject: fft: Enabling uninstalled python imports.

---
 gr-fft/python/fft/qa_goertzel.py | 65 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)
 create mode 100755 gr-fft/python/fft/qa_goertzel.py

(limited to 'gr-fft/python/fft/qa_goertzel.py')

diff --git a/gr-fft/python/fft/qa_goertzel.py b/gr-fft/python/fft/qa_goertzel.py
new file mode 100755
index 0000000000..27f9d370e1
--- /dev/null
+++ b/gr-fft/python/fft/qa_goertzel.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+#
+# Copyright 2006,2007,2010,2012 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
+from gnuradio import gr, gr_unittest
+from math import pi, cos
+import fft_swig as fft
+
+class test_goertzel(gr_unittest.TestCase):
+
+    def setUp(self):
+        self.tb = gr.top_block()
+
+    def tearDown(self):
+        self.tb = None
+
+    def make_tone_data(self, rate, freq):
+        return [cos(2*pi*x*freq/rate) for x in range(rate)]
+
+    def transform(self, src_data, rate, freq):
+	src = gr.vector_source_f(src_data, False)
+        dft = fft.goertzel_fc(rate, rate, freq)
+	dst = gr.vector_sink_c()
+	self.tb.connect(src, dft, dst)
+	self.tb.run()
+	return dst.data()
+
+    def test_001(self): # Measure single tone magnitude
+	rate = 8000
+	freq = 100
+	bin = freq
+	src_data = self.make_tone_data(rate, freq)
+	expected_result = 0.5
+	actual_result = abs(self.transform(src_data, rate, bin)[0])
+	self.assertAlmostEqual(expected_result, actual_result, places=4)
+
+    def test_002(self): # Measure off frequency magnitude
+	rate = 8000
+	freq = 100
+	bin = freq/2
+	src_data = self.make_tone_data(rate, freq)
+	expected_result = 0.0
+	actual_result = abs(self.transform(src_data, rate, bin)[0])
+	self.assertAlmostEqual(expected_result, actual_result, places=4)
+
+if __name__ == '__main__':
+    gr_unittest.run(test_goertzel, "test_goertzel.xml")
-- 
cgit v1.2.3