Friday, May 5, 2017

[Discuss-gnuradio] Fwd: Fwd: Frequency vs time domain Filtering Anomaly

I actually worked it out.  It was a bug in the code.  I was fine-tuning the OpenCL filter blocks in the gr-clenabled project and was seeing some discrepancies between my FFT and FIR implementations I was trying to work out.  Actually I just added another command-line tool to it that'll give you theoretical max throughput on the filtering routines given a number of taps for each of these scenarios:

- OpenCL FIR
- GNURadio FIR
- OpenCL FFT
- GNURadio FFT

I'm using it to update the study report included in the docs section.  May be worth checking out the OpenCL versions and the timing tool if you're calculating throughput since I noticed the same thing running my tests.  The FFT's are much faster.  Which when doing my research all of the articles said the same thing.  FFT is faster than convolution in time except for really small tap counts.

Thanks everyone!

---------- Forwarded message ----------
From: Ron Economos <w6rz@comcast.net>
Date: Fri, May 5, 2017 at 7:09 PM
Subject: Re: [Discuss-gnuradio] Fwd: Frequency vs time domain Filtering Anomaly
To: discuss-gnuradio@gnu.org


I use the FFT filter for root raised cosine filtering in the gr-dtv component. Here's the benchmark results for a FIR filter and FFT filter at 8 Msps and 100 taps. The CPU cycle savings is pretty dramatic. The output from both filters is sample for sample identical (well, floating point identical, which I consider to be no more than about +/- 0.000001)

FIR filter at 93.0% CPU.



FFT filter at 18.6% CPU.



Ron

On 05/05/2017 02:13 PM, Marcus Müller wrote:

so, what does your flow graph look like? for me, "naive" FIRs and FFT FIRs just do the same. Did you use the same taps for all the filters?



On 05/05/2017 09:52 PM, GhostOp14 wrote:
I actually think I figured it out.  Results match now.  I am still curious on anyone's thoughts on how "exact" the match is between FIR and FFT filtering in practice.

---------- Forwarded message ----------
From: Ghost Op <ghostop14@gmail.com>
Date: Fri, May 5, 2017 at 1:31 PM
Subject: Frequency vs time domain Filtering Anomaly
To: discuss-gnuradio@gnu.org


Hi everyone,

I'm trying to sort out a discrepancy I'm seeing between a frequency domain and time domain version of the same filter.  What I'm running into is that my frequency domain implementation is a match for the GNURadio response, however in the time-domain version, while the filter band looks the same, the frequency domain version seems to remove more of the out-of-band signal by about 35 dB.

 You can see it in the screenshot below:

 

In my experience with code my first assumption is I'm doing something wrong.  But before I go on a bug hunt, I wanted to check with those of you who have worked with both time and frequency filters to see if my assumption that the two should be exact matches is accurate or if the result is as expected.  My understanding is that applying the same filter in either the time or frequency domain should produce the same output, and this doesn't quite look "the same" enough to me.  Does the forward/reverse FFT process in the frequency domain version cause some resolution/loss?

Any thoughts?




_______________________________________________  Discuss-gnuradio mailing list  Discuss-gnuradio@gnu.org  https://lists.gnu.org/mailman/listinfo/discuss-gnuradio  



_______________________________________________  Discuss-gnuradio mailing list  Discuss-gnuradio@gnu.org  https://lists.gnu.org/mailman/listinfo/discuss-gnuradio  


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


No comments:

Post a Comment