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

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

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