1. IMPORTANT:
    We launched a new online community and this space is now closed. This community will be available as a read-only resources until further notice.
    JOIN US HERE

R. Davies FFT Macros

Discussion in 'Building With Reaktor' started by Eklectro, Mar 9, 2009.

Thread Status:
Not open for further replies.
  1. Eklectro

    Eklectro Forum Member

    Messages:
    36
    Hello,
    I'm totally new on this forum. I'm 24, french student in mechanical engineering. But I'm interrested in DSP using Reaktor as you can see.

    I would like to ask if you know the method to implement larger FFT. Indeed, the macros offered by Robin Davies are limited to 2048 samples.

    I've tried to understand a way to enlarge them but I cannot understand these 2 main parameters :
    the table list (which is a very large mathematic suit)
    and the buffer size.
    I think that once I'll get these settings, I'll just need to set the appropriate number of Butterfly, in regard to the formula that Robin Davies shared in his .doc.

    As you can guess I've tried to send a mail to this great developper (robin.davies [*] rogers.com), but I didn't had any anwer.
    Your help would be gratefully received.

    Best regards,
    From France,
    Alain Pastutmaz.
     
  2. Aleksandr Smirnov

    Aleksandr Smirnov NI Product Owner

    Messages:
    1,539
    I'm new into DSP as well, but at least I would like to have a look on it. I'm not sure what exactly macros are you talking about? I searched in UL and found Spectroscope. This one?
     
  3. Eklectro

    Eklectro Forum Member

    Messages:
    36
    Not at all. These are macros developpes by Robin Davies thats convert audio into the r & i fft values in real time.
    There is the inverse FFT macro include also.
    The package includes hanning and Hamming windows.

    This frequency domain offers really interresting feathure btw !
    (but I really need some 32000 sized macro...)
     
  4. Aleksandr Smirnov

    Aleksandr Smirnov NI Product Owner

    Messages:
    1,539
    Where can I get them?
     
  5. Eklectro

    Eklectro Forum Member

    Messages:
    36
  6. Aleksandr Smirnov

    Aleksandr Smirnov NI Product Owner

    Messages:
    1,539
    Yeah, Google, I forgot about that..:D

    Well at first glance you have to set FFT Size constant and FFT Delay constant, and second you need to add as many Butterfly Op modules, as you need for current amount of FFT Size (plus Buffer size need to be changed as well). How much samples do you want?
    ---
    EDIT: I would form questions like this:

    1) How to count FFT Delay?
    2) How to count Buffer size?
    3) What is connection between amount Butterfly Op modules and number of samples?
     
    Last edited: Mar 10, 2009
  7. Eklectro

    Eklectro Forum Member

    Messages:
    36
    the number of buffer size follows some log formula. Its explain in the .doc
    But you forgot also to talk about the create the array !
    I'll take a look on other dsp web site, I'jev just found the link in the upper section.
     
  8. Aleksandr Smirnov

    Aleksandr Smirnov NI Product Owner

    Messages:
    1,539
    1) Amount of Butterfly modules:

    = log 2 (number of samples) / 2 (for example for 2048 it is 5.5 or rounded 6) - that goes from document.

    2) Buffer size:

    = number of samples * 6 (for example for 2048 it is about 12290) - I don't know where this "6" is getting from (I didn't find information about it in document), but as I see this is the same value of all modules I've checked.

    3) FFT Delay:

    in document it is said that depeding on number of samples it is varying, but in general there is value of 1.47 (1.46) * number of samples.

    I'm not sure about sequence buffer tho, because I didn't find information about it in documents and I don't see any proportion in each module.
     
    Last edited: Mar 11, 2009
  9. carloskleiber

    carloskleiber Forum Member

    Messages:
    537
    Go, Smirnov:D

    I am sitting and admiring (seriously I am).
    You could learn to drive a submarine from the manuals.
    Tell us if you come up with something!
     
  10. Eklectro

    Eklectro Forum Member

    Messages:
    36
    Thx you very much A. Smirnov !
    I knew for the delay, and the number of butterfly,
    I didn't knew for the buffer size.

    Now the most difficult is to know the list of numbers used in the table named sequence.

    I hope you will get something again !
    cheers.

    I can do by now my convolution and deconvolution in 2048 size. The result is already very good for equ canceling but still middle for delay reduction...
    Also, after averagind 37 impulse, I Still have a s/noise ratio of 39dB. That's must be encreased too.
    Thx to you again
     
  11. Aleksandr Smirnov

    Aleksandr Smirnov NI Product Owner

    Messages:
    1,539
    Well, I still didn't figure it out, but dividing sequence on samples in any module I get integer value (that means it gets its size from number of samples I suppose). For example:

    1) 480 / 16 = 30
    2) 1344 / 32 = 42
    3) 2688 / 64 = 42
    4) 6912 / 128 = 54
    5) 13824 / 256 = 54
    6) 33792 / 512 = 66
    7) 67584 / 1024 = 66
    8) 159744 / 2048 = 78

    Do you get any sequence in these numbers? Anyway now it's totally not about understanding values, but just guessing them, while we got all the other ones from theory.
    ---
    wait!.. there is difference of 12 between two of each number of samples.. try to add 78 for 4096, 90 for 8192 etc.
     
  12. Eklectro

    Eklectro Forum Member

    Messages:
    36
    Yeah, this is relevant.
    Its quite the same than the number of butterfly which increase each 2 steps. ( but we knwo the formula for that number).

    Thx for this.
    So now we just need to know the exact formula of the the sequence.
    i'll export then as audio clip to see if there is a link. I beleieve that the waave form is the same for all.
     
  13. Aleksandr Smirnov

    Aleksandr Smirnov NI Product Owner

    Messages:
    1,539
    Okay, keep us updated about you work on it. So how much samples do you want it to be? Probably I can try to make it as well.
     
  14. Eklectro

    Eklectro Forum Member

    Messages:
    36
    Well,
    my project concerns short reflexions that are delayed less than 20 ms.
    With a 2048 fft, I can extract an impulse of 1024 samples length, that equals to 2.3 ms approx.
    Thus I need some fft like 8 times bigger.
    Also, the amount of cpu isn't a matter since the IR extraction will be done in a non realtime way.
    Best regards,
    Alain
     
  15. dongle doc

    dongle doc NI Product Owner

    Messages:
    105
    interesting thread :)
    i'd been curious to know what this sequence table means ..
    have you checked ezfft macros ? it's more complicated but it can help
    eKlectro you're sure that your windows are not 23ms long instead ?
    BTW do you have some documentation in french for DFT and butterflies management especially ?
     
  16. Eklectro

    Eklectro Forum Member

    Messages:
    36
    sure you're right, it is 23ms of course :)
    btw, Robin Davies replied my 2 weeks ago, with a long epxlaination... but he forget to send me the attached c++ code that can generate the sequence !
    I'm waiting again cause no I don't have any good literature on the subject. DSPGUIDE (online book) is in english, very instructive, but I need maybe more brain to transcript it to the sequence needed....
     
  17. Aleksandr Smirnov

    Aleksandr Smirnov NI Product Owner

    Messages:
    1,539
    Would you be so kind to post his reply and C++ here? I'm curious to have a look really! Especially when I'm studying C++.
     
  18. Eklectro

    Eklectro Forum Member

    Messages:
    36
    sure, I've asked to the authorisation in the second mail sent (to get this).
    waiting ...
    You'll be informed, be sure !
     
Thread Status:
Not open for further replies.