abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:55 | IT novinky

    Do 20. října do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | říjen 2025 (YouTube) doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | IT novinky

    O zavedení nástroje na monitorování online konverzací v rámci boje proti dětské pornografii (tzv. Chat Control) měli ministři vnitra rozhodovat na úterním společném zasedání v Lucemburku. Plán dánského předsednictví Rady EU ale před pár dny ztroskotal, když se ukázalo, že Chat Control nemá dostatečnou podporu.

    Ladislav Hagara | Komentářů: 1
    včera 13:11 | Pozvánky

    Již toto úterý proběhne každoměsíční akce Virtuální Bastlírna, kterou pořádá projekt MacGyver. Jde o virtuální posezení u piva a volné klábosení o různých zajímavostech ze světa elektroniky, softwaru i techniky. V posledním měsíci se stalo nemálo zajímavostí týkajících se spousty bastlířů - kupříkladu Arduino nyní patří pod Qualcomm, Raspberry Pi vydalo nový počítač, ale potichu i miniaturní compute module. Pro AMS od Bambu Lab se

    … více »
    bkralik | Komentářů: 0
    včera 11:22 | IT novinky

    Google zpřístupňuje své AI nástroje českým univerzitním studentům prostřednictvím předplatného Google AI Pro na 12 měsíců bez poplatku. Platnost nabídky vyprší 9. prosince 2025.

    Ladislav Hagara | Komentářů: 0
    včera 10:55 | Zajímavý projekt

    MicroPythonOS je operační systém napsaný v MicroPythonu určený především pro mikrokontroléry jako ESP32. Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 03:11 | Nová verze

    Byl vydán LineageOS 23 (Mastodon). LineageOS (Wikipedie) je svobodný operační systém pro chytré telefony, tablety a set-top boxy založený na Androidu. Jedná se o nástupce CyanogenModu. LineageOS 23 je založený na Androidu 16.

    Ladislav Hagara | Komentářů: 0
    11.10. 15:33 | Komunita

    Na YouTube byly zveřejněny videozáznamy přednášek z hackerské konference DEF CON 33, jež proběhla 7. až 10. srpna v Las Vegas.

    Ladislav Hagara | Komentářů: 0
    11.10. 05:33 | Nová verze

    Bun (Wikipedie), tj. běhové prostředí (runtime) a toolkit pro JavaScript a TypeScript, alternativa k Node.js a Deno, byl vydán ve verzi 1.3. Představení novinek také na YouTube. Bun je naprogramován v programovacím jazyce Zig.

    Ladislav Hagara | Komentářů: 3
    10.10. 14:22 | IT novinky

    V Lucemburku byly oznámeny výsledky posledního kola výzev na evropské továrny pro umělou inteligenci neboli AI Factories. Mezi úspěšné žadatele patří i Česká republika, potažmo konsorcium šesti partnerů vedené VŠB – Technickou univerzitou Ostrava. V rámci Czech AI Factory (CZAI), jak se česká AI továrna jmenuje, bude pořízen velmi výkonný superpočítač pro AI výpočty a vznikne balíček služeb poskytovaný odborníky konsorcia. Obojí bude sloužit malým a středním podnikům, průmyslu i institucím veřejného a výzkumného sektoru.

    Ladislav Hagara | Komentářů: 19
    10.10. 01:22 | Nová verze

    Byla vydána (𝕏) zářijová aktualizace aneb nová verze 1.105 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.105 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (38%)
     (46%)
     (17%)
     (18%)
     (22%)
     (16%)
     (18%)
     (16%)
     (16%)
    Celkem 212 hlasů
     Komentářů: 13, poslední 8.10. 07:41
    Rozcestník

    Dotaz: fast fourier v Lua

    25.4.2022 10:33 martin
    fast fourier v Lua
    Přečteno: 638×
    Ahoj, Potřebuji využít v jedné aplikaci FFT.
    Něco jsem našel na Rosetta code.
    FFT funguje ale inverzní FFT vrací něco jiného.
    help needed :(
    díky
    complex = {__mt={} }
    
    function complex.new(r, i)
      local new={real=r, imaginary=i or 0}
      setmetatable(new,complex.__mt)
      return new
    end
    
    function complex.__mt.__add(c1, c2)
      return complex.new(c1.real + c2.real, c1.imaginary + c2.imaginary)
    end
    
    function complex.__mt.__sub(c1, c2)
      return complex.new(c1.real - c2.real, c1.imaginary - c2.imaginary)
    end
    
    function complex.__mt.__mul(c1, c2)
      return complex.new(c1.real * c2.real - c1.imaginary * c2.imaginary,
    					 c1.real * c2.imaginary + c1.imaginary * c2.real)
    end
    
    function complex.expi(i)
      return complex.new(math.cos(i),math.sin(i))
    end
    
    function complex.__mt.__tostring(c)
      return "("..c.real..","..c.imaginary..")"
    end
    
    
    --[[---------------------------------------------------------------------
    Cooley–Tukey Fast Fourier Transformation                                -
    Zdroj: https://en.wikipedia.org/wiki/Cooley-Tukey_FFT_algorithm         -
    ]]-----------------------------------------------------------------------
    
    function FFT(vect)
      local n=#vect
      if n<=1 then return vect end
    
      local odd,even={},{}
      for i=1,n,2 do
        odd[#odd+1]=vect[i]
        even[#even+1]=vect[i+1]
      end
    
      FFT(even)
      FFT(odd)
    
      for k=1,n/2 do
        local t=even[k] * complex.expi(-2*math.pi*(k-1)/n)
        vect[k] = odd[k] + t
        vect[k+n/2] = odd[k] - t
      end
      return vect
    end
    
    --[[-----------------------------------------------------------------------
    Inverse Fast Fourier Transformation                                       -
    ]]-------------------------------------------------------------------------
    
    function IFFT(amplitudes)
    
    	local N = #amplitudes
    	local input = 1 / N
    
    	local i=nil
    	for i=1, N do
    		amplitudes[i].imaginary = -amplitudes[i].imaginary
    	end
    
    	FFT(amplitudes)
    
    	for i=1, N do
    		amplitudes[i].imaginary = -amplitudes[i].imaginary
    		amplitudes[i].real = amplitudes[i].real * input
    		amplitudes[i].imaginary = amplitudes[i].imaginary * input
    	end
    
    	return amplitudes
    end
    
    function toComplex(vector)
      vect={}
      for r,i in ipairs(vector) do
        vect[r]=complex.new(i)
      end
      return vect
    end
    
    -- test
    data = toComplex{1, 1, 1, 1, 0, 0, 0, 0}
    
    print("orig:", unpack(data))
    print("fft :", unpack(FFT(data)))
    print("ifft:", unpack(IFFT(data)))
    

    Řešení dotazu:


    Odpovědi

    Gréta avatar 25.4.2022 19:48 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: fast fourier v Lua

    neumim dělat lulu :D :D :D :D ale ten tvuj lulu zdrojáček mi vrací

    orig:   (1,0)   (1,0)   (1,0)   (1,0)   (0,0)   (0,0)   (0,0)   (0,0)
    fft :   (4,0)   (1,-2.4142135623731)    (0,0)   (1,-0.41421356237309)   (0,0)   (1,0.41421356237309)    (0,0)   (1,2.4142135623731)
    ifft:   (1,-0)  (1,-5.5511151231258e-17)        (1,2.4894981252574e-17) (1,-5.5511151231258e-17)        (5.5511151231258e-17,0) (5.5511151231258e-17,5.5511151231258e-17) (0,-2.4894981252574e-17) (5.5511151231258e-17,5.5511151231258e-17)
    

    noa to é na mínus sedmnáctou (jako nakalkulačce hele :O ;D) sou tak děsně mrňavý čísla že je asi jako mužem považovat za nuly takže to máš asi jako dobře :D ;D

    Gréta avatar 25.4.2022 19:49 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: fast fourier v Lua

    joa ty mrňavý čisilka se při výpočtech berou z nepřesnosti s děláním s floatama/číslama s plovoucí desetinou tečkou hele :O ;D

    25.4.2022 22:33 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: fast fourier v Lua
    Čísla ináč zapísané. Viď: Vědecký zápis čísel.
    debian.plus@protonmail.com
    26.4.2022 02:56 .
    Rozbalit Rozbalit vše Re: fast fourier v Lua
    On nemluví o zápisu, ale o hodnotě, hňupe.
    Řešení 1× (Gréta)
    26.4.2022 05:44 martin
    Rozbalit Rozbalit vše Re: fast fourier v Lua
    Ahoj, nějak se mi tu potratil muj další příspěvek
    Nebo jsem dal jen náhled a pak ho neodeslal :/
    co jsem psal hned po tom.
    Bylo to ve spěchu takže jsem si nevšiml že číslo končí
    s e-017. Ve své slepotě jsem viděl jen -5,587543235696549
    To je celé.
    Díky za reakce.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.