Domovská stránka Jiřího Kalvody

ADS2 Jiří Kalvoda: Cvičení 7

Also available as: PDF Markdown

Informace k cv. jsou na https://kam.mff.cuni.cz/~jirikalvoda/vyuka/25z/ads2.

Fourierova transformace

Fourierův obraz vektoru xx je vektor yy: yj=k=0n1xkωjky_j = \sum_{k=0}^{n-1} x_k \omega^{jk}

Kde ω\omega je primitivní nn-tá odmocnina z 11 (v komplexních číslech nebo případně v konečném tělese).

Alternativně lze zobrazení vyjádřit jako násobení maticí, tedy y=Ωxy=\Omega x, kde matice Ωj,k=ωj,k\Omega_{j,k} = \omega^{j,k} (indexujeme-li od 0).

Na přednášce zazněl algoritmus FFT počítající DFT (Diskrétní Fourierovu transformaci) v čase O(nlogn)\O(n \log n) pomocí rekurzivního podrozdělování. A také aplikace v podobě násobení polynomů, protože po Fourierově transformaci místo konvoluce stačí sečíst vektory po složkách.

Úloha 1 (Počítací): Spočítejte Fourierovu transformaci na následujících vektorech:

  1. (x,,x)(x,\dots,x)
  2. (1,1,1,1,,1,1)(1,-1,1,-1,\dots,1,-1)
  3. (1,0,1,0,1,0,1,0)(1,0,1,0,1,0,1,0)
  4. (ω0,ω1,ω2,,ωn1)(\omega^0,\omega^1,\omega^2,\dots,\omega^{n-1})
  5. (ω0,ω2,ω4,,ω2n2)(\omega^0,\omega^2,\omega^4,\dots,\omega^{2n-2})

Úloha 2 (Vlastnosti): O jakých vlastnostech vektoru vypovídá nultý a (n/2)(n/2)-tý koeficient jeho Fourierova obrazu?

Úloha 3 (Obraz kanonické báze): Jak vypadá Fourierův obraz jednotkového vektoru eie_i, tedy vektoru, který má jedničku na pozici ii a jinde 0?

Úloha 4 (Inverze kanonické báze): Pro každé ii najděte vektor, jehož Fourierovým obrazem je eie_i. Jak z toho sestrojit inverzní Fourierův obraz?

Úloha 5 (Rotace): Mějme vektor yy, který vznikl rotací vektoru xx o kk pozic, tedy yj=x(j+k)modny_j = x_{(j + k) \bmod n} Jak spolu souvisí Fourierovy obrazy xx a yy?

Úloha 6 (Odmocniny z jedničky): Kolik existuje nn-tých odmocnin jedničky a jak vypadají? Proč jiná čísla nejsou nn-tou odmocninou z jedničky? Které z nn-tých odmocnin jedničky jsou primitivní?

Úloha 7 (Permutace): Ve Fourierově transformaci máme volnost v tom, jakou primitivní odmocninu ω\omega si vybereme. Ukažte, že Fourierovy obrazy pro různé volby ω\omega se liší pouze pořadím složek.

Úloha 8 (Bonus pro milovníky komplexních čísel): Spočítejte druhou mocninu polynomu x3x22x+2x^3 - x^2 - 2x + 2 pomocí DFT, tedy (x3x22x+2)2(x^3 - x^2 - 2x + 2)^2.