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 17:55 | Nová verze

    Ubuntu pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).

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

    Zástupci členských států EU se včera shodli na návrhu, který má bojovat proti šíření materiálů na internetu zobrazujících sexuální zneužívání dětí. Nařízení známé pod zkratkou CSAM a přezdívané chat control mělo množství kritiků a dlouho nebyla pro jeho schválení dostatečná podpora. Pro schválení byla potřeba kvalifikovaná většina a dánské předsednictví v Radě EU se snažilo dosáhnout kompromisu. Návrh nakonec po dlouhých týdnech

    … více »
    Ladislav Hagara | Komentářů: 6
    včera 12:22 | Zajímavý software

    Britské herní studio Facepunch stojící za počítačovými hrami Garry's Mod a Rust uvolnilo svůj herní engine s&box (Wikipedie) jako open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT. Herní engine s&box je postavený nad proprietárním herním enginem Source 2 od společnosti Valve.

    Ladislav Hagara | Komentářů: 1
    včera 04:55 | Komunita

    Vývoj programovacího jazyka Zig byl přesunut z GitHubu na Codeberg. Sponzoring na Every.

    Ladislav Hagara | Komentářů: 1
    včera 04:44 | Komunita

    Stejně jako GNOME i KDE Plasma končí s X11. KDE Plasma 6.8 poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.

    Ladislav Hagara | Komentářů: 1
    26.11. 14:55 | IT novinky

    Poslanci Evropského parlamentu dnes vyzvali k výraznému zvýšení ochrany nezletilých na internetu, včetně zákazu vstupu na sociální sítě pro osoby mladší 16 let. Legislativně nezávazná zpráva, kterou dnes odsouhlasil Evropský parlament poměrem 493 hlasů pro ku 92 proti, kromě zavedení věkové hranice 16 let pro využívání sociálních sítí, platforem pro sdílení videí či společníků s umělou inteligencí (AI) vyzývá také k zákazu … více »

    Ladislav Hagara | Komentářů: 44
    26.11. 14:11 | Humor

    Doom v KiCadu nebo na osciloskopu? Žádný problém: KiDoom: Running DOOM on PCB Traces a ScopeDoom: DOOM on an Oscilloscope via Sound Card.

    Ladislav Hagara | Komentářů: 3
    26.11. 12:44 | Nová verze

    Po AlmaLinuxu byl v nové stabilní verzi 10.1 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.11. 04:00 | Zajímavý software

    Open source reimplementace počítačových her Tomb Raider I a Tomb Raider II spolu s dalšími vylepšeními a opravami chyb TRX byla vydána ve verzi 1.0. Jedná se o sloučení projektů / enginů TR1X a TR2X do jednoho TRX. Videoukázka na YouTube.

    Ladislav Hagara | Komentářů: 1
    25.11. 17:00 | IT novinky

    Společnost Seznam.cz spouští konverzační nástroj založený na umělé inteligenci Seznam Asistent. Asistent využívá vlastní jazykový model SeLLMa a dočasně i komerční modely od OpenAI provozované v evropských datacentrech prostřednictvím Microsoft Azure. Dlouhodobým cílem Seznamu je provozovat Asistenta výhradně na interních jazykových modelech a ve vlastních datových centrech.

    Ladislav Hagara | Komentářů: 8
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (47%)
     (19%)
     (18%)
     (22%)
     (15%)
     (23%)
     (16%)
     (18%)
    Celkem 410 hlasů
     Komentářů: 17, poslední 19.11. 21:57
    Rozcestník

    Dotaz: fast fourier v Lua

    25.4.2022 10:33 martin
    fast fourier v Lua
    Přečteno: 667×
    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

    🇹🇬 avatar 25.4.2022 19:48 🇹🇬 | 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

    stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
    🇹🇬 avatar 25.4.2022 19:49 🇹🇬 | 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

    stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
    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× (🇹🇬)
    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.