Fourier Transform: Circle - Cat

Fourier Transform: Circle - Cat
Loading the math board and drawing, please wait…
2020-01-18 15:20
This example demonstrates how the Fourier transform is applied to a cat curve to generate its spectrum; core math concepts include Fourier transform, complex numbers, coordinate geometry, and calculus; construction highlights from the summary involve commands like Sequence, Reverse, Join, Last, Append, PolyLine, and Polygon in GeoGebra; suitable for high school and above learners to understand the application of Fourier transform in image processing and geometric analysis.

GeoGebra Commands & Parameters

  1. Sequence((1 / N * Sum[Sequence[(x(Element[L_1, j]) * cos(((((2 * π)) / N * (k - 1)) * (j - 1)))) + (y(Element[L_1, j]) * sin(((((2 * π)) / N * (k - 1)) * (j - 1)))), j, 1, N]]), k, 1, N) → FReal
  2. Sequence((1 / N * Sum[Sequence[(y(Element[L_1, j]) * cos(((((2 * π)) / N * (k - 1)) * (j - 1)))) - (x(Element[L_1, j]) * sin(((((2 * π)) / N * (k - 1)) * (j - 1)))), j, 1, N]]), k, 1, N) → FImg
  3. Sequence(sqrt(Element[FReal, j]^(2) + Element[FImg, j]^(2)), j, 1, N) → Mod
  4. Sequence(atan2(Element[FImg, j],Element[FReal, j]), j, 1, N) → Pha
  5. Sequence((Element[FReal, i], Element[FImg, i]), i, 1, N) → X
  6. Sequence((Element[Mod, i]; Element[Pha, i]), i, 1, N) → Polar
  7. Reverse(Sort[Sequence[(Length[Element[Polar, i]], i - 1), i, 1, Length[Polar]]]) → PolarSorted
  8. Sequence(y(Element[PolarSorted, i]), i, 1, Length[PolarSorted]) → Index
  9. Join({{C1}, Sequence[C1 + Sum[Sequence[((Element[Mod, Element[Index, j] + 1] * cos(Element[Pha, Element[Index, j] + 1] + (Element[Index, j] * t0))), (Element[Mod, Element[Index, j] + 1] * sin(Element[Pha, Element[Index, j] + 1] + (Element[Index, j] * t0)))), j, 1, i]], i, 1, N]}) → L_2
  10. Sequence(Join[{{C1}, Sequence[C1 + Sum[Sequence[((Element[Mod, Element[Index, j] + 1] * cos(Element[Pha, Element[Index, j] + 1] + (Element[Index, j] * l))), (Element[Mod, Element[Index, j] + 1] * sin(Element[Pha, Element[Index, j] + 1] + (Element[Index, j] * l)))), j, 1, i]], i, 1, N]}], l, 0, (2 * π), dt) → L_2'
  11. Sequence(Element[L_2, i], i, 1, m) → L_2''
  12. Sequence(Circle[Element[L_2, i], Element[Mod, Element[Index, i] + 1]], i, 1, N) → L_3
  13. Sequence(Element[L_3, i], i, 1, m) → L_3'
  14. Last(L_2) → CatPoint
  15. Append(Sequence[Element[L_2', k, m], k, 1, 63], Element[L_2', 1, m]) → L_4
  16. PolyLine(L_4) → curveCat
  17. PolyLine(L_2'') → s
  18. Polygon(L_4) → poly1