Príbeh: Čo je to FFT fast Fourrier transformation alebo Rýchla Furiérova transformácia, nakreslím pre kružnicu:

Príbeh: Čo je to FFT fast Fourrier transformation alebo Rýchla Furiérova transformácia, nakreslím pre kružnicu:

Predstavme si signál, je ním časť kružnice: Ak ho začneme opisovať FFT transformáciou, tak zo začiatku som chcel ukázať, že body môžu byť ďaleko od seba, ak vyhodíme Eulerovo cos(2pift)+isin(2pift)=e^ipift, môžeme ukázať že FFT platí pre obdobnú úpravu na kružnici x^2+y^2=r^2, pre jednoduchosť zvážme r==1. No a chceli sme prejsť z kvadratického opisu funkcie na lineárny, teda opisujme kruh pomocou funkcií y=kx, kde platí y=x^k. To je všetko. Získame dokonca 2 súradnice a to funkcia/uhol verzus zvislá strana trojuholníka.

Poznámka: Videli sme niekde slovo TESELÁCIA? ;)

A už je jasné, prečo je výhodnejšie pre GPU teselovať trojuholníky oproti zložitým iným tvarom :)

Teda ako sa body k sebe približujú, modelujú skutočný kruh ^^^ a to je výhoda FFT, môžem meniť bodovú vzdialenosť počítačom.

https://hrubos.tech/blogy/content/images/20260623200611-Snímka obrazovky 2026-06-23 o 20.05.02.png

Story založená na: https://www.youtube.com/watch?v=nmgFG7PUHfo

using Pkg
Pkg.add("Plots")

using Plots

# jednotková kružnica
R = 1.0

# počet priamok
k = 10

# polia pre tabuľku
vysky = Float64[]
uhly_rad = Float64[]
uhly_deg = Float64[]

# kružnica
t = range(0, 2π, length=1000)

p1 = plot(
    R*cos.(t),
    R*sin.(t),
    aspect_ratio=:equal,
    label="kružnica",
    linewidth=2,
    legend=:topright,
    title="Jednotková kružnica pre FFT fast Fourrier transformation"
)

println("m\tvýška\tuhol(rad)\tuhol(deg)")

for n in 1:k

    m = 2*n/10

    # priesečník s jednotkovou kružnicou
    x0 = 1 / sqrt(1 + m^2)
    y0 = m / sqrt(1 + m^2)

    # priamka
    xs = range(0, x0, length=100)
    plot!(p1, xs, m .* xs, label=false)

    # zvislica
    plot!(
        p1,
        [x0, x0],
        [0, y0],
        linestyle=:dash,
        label=false
    )

    # bod priesečníka
    scatter!(p1, [x0], [y0], label=false)

    θ = atan(m)
    θdeg = rad2deg(θ)

    push!(vysky, y0)
    push!(uhly_rad, θ)
    push!(uhly_deg, θdeg)

    println(
        round(m, digits=3), "\t",
        round(y0, digits=6), "\t",
        round(θ, digits=6), "\t",
        round(θdeg, digits=3)
    )
end

xlabel!(p1, "x")
ylabel!(p1, "y")

# rozdiely medzi susednými uhlami v stupňoch
rozdiely = Float64[]

push!(rozdiely, NaN)

for i in 2:length(uhly_deg)
    push!(rozdiely, uhly_deg[i] - uhly_deg[i - 1])
end
rozdiely=reverse(rozdiely)
# text tabuľky
riadky = [
    "výška           radiany           stupne           Δstupne=>k v kx => x^k"
]

for i in eachindex(vysky)

    delta =
        isnan(rozdiely[i]) ?
        "---" :
        string(round(rozdiely[i], digits=3))

    push!(
        riadky,
        string(
            lpad(round(vysky[i], digits=6), 10),
            "   ",
            lpad(round(uhly_rad[i], digits=6), 10),
            "   ",
            lpad(round(uhly_deg[i], digits=3), 8),
            "   ",
            lpad(delta, 8)
        )
    )
end

tabulka = "\n\n" * join(riadky, "\n")

p2 = plot(
    xlims=(0, 1),
    ylims=(0, 1),
    axis=false,
    grid=false,
    ticks=false,
    legend=false,
    border=:none,
    annotations=[
        (
            0.05,
            0.85,
            text(tabulka, :left, 10)
        )
    ],
    title=""
)

p = plot(
    p1,
    p2,
    layout=(1, 2),
    size=(1300, 600)
)

display(p)

println("\nStlač Enter...")
readline()

kód ako vždy od GPT je GPL3

super cow

Otázka na záver: Ak je bod v Minkovského priestore posunutý o štandardnú delta=1 súradnicu jednotku, Einsteinov priestor sa skrívi? A toto tu pekne tiež vidno :D


Author: AarNoma

The first Slovak cyborg 1 system

Comments “Príbeh: Čo je to FFT fast Fourrier transformation alebo Rýchla Furiérova transformácia, nakreslím pre kružnicu:”