[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] How to make an FFT block in c++
From: |
Alexandru Csete |
Subject: |
Re: [Discuss-gnuradio] How to make an FFT block in c++ |
Date: |
Fri, 18 Oct 2013 23:20:28 +0200 |
On Fri, Oct 18, 2013 at 10:05 PM, Tommy Tracy II <address@hidden> wrote:
> Hello,
>
> I'm trying to make an FFT block in my hierarchical block, but I cannot seem
> to find the correct syntax.
> I'm trying to make it with a BLACKMAN_HARRIS windowing function, and it's
> easy in a python program:
>
> fft_forward = fft.fft_vfc(window_size, True,
> (fft.blackmanharris(window_size)), 1)
> fft_backward = fft.fft_vcc(window_size, False,
> (fft.blackmanharris(window_size)), False, 1)
>
>
> But in a c++ program it gets hairy. Does anyone have any experience with
> this?
>
> gr::fft::fft_vfc::sptr fft_forward = gr::fft::fft_vfc::make(SIZE, true,
> gr::filter::firdes::WIN_BLACKMAN_HARRIS, num_threads);
> gr::fft::fft:vcc::sptr fft_reverse = gr::fft::fft_vcc::make(SIZE, false,
> gr::filter::firdes::WIN_BLACKMAN_HARRIS, false, num_threads);
>
> I believe what I have wrong is the Windowing, which is of the form:
>
> const std::vector< float > & window
I have only used gr::fft::fft_complex in C++ but I think it uses the
same window type. If that's true you can create the window using:
window = gr::filter::firdes::window(gr::filter::firdes::WIN_BLACKMAN_HARRIS,
SIZE, 6.76);
Alex