From 7fda6b2c2269a575fd6722085c9c9ace41c1c512 Mon Sep 17 00:00:00 2001 From: Ben Reynwar Date: Sun, 18 Mar 2012 20:04:07 -0400 Subject: core: fixed point sin/cos generator properly folds frequencies outside nyquist range to alias signal. --- gnuradio-core/src/lib/general/gr_fxpt.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gnuradio-core/src') diff --git a/gnuradio-core/src/lib/general/gr_fxpt.h b/gnuradio-core/src/lib/general/gr_fxpt.h index 5cf736dfb..9f5937d1a 100644 --- a/gnuradio-core/src/lib/general/gr_fxpt.h +++ b/gnuradio-core/src/lib/general/gr_fxpt.h @@ -26,7 +26,7 @@ #include /*! - * \brief fixed point sine and cosine and friend GR_CORE_APIs. + * \brief fixed point sine and cosine and friends. * \ingroup misc * * fixed pt radians @@ -48,6 +48,10 @@ public: static gr_int32 float_to_fixed (float x) { + // Fold x into -PI to PI. + int d = (int)floor(x/2/PI+0.5); + x -= d*2*PI; + // And convert to an integer. return (gr_int32) ((float) x * TWO_TO_THE_31 / PI); } -- cgit