2022年5月10日 星期二

Roots of Unity

 Roots of Unity

2022/04/21

說明:

傅立葉矩陣內的元素 [1] 若是都用單位圓的圖形表示 [2],會比用波形表示 [3] 或單純用矩陣表示 [4] 清楚的多。藉著分解圖形的元素 [5] - [9] ,先畫出傅立葉矩陣的一個元素 [1],以備繼續畫出完整的傅立葉矩陣圖形表示 [2]。

-----


https://pixabay.com/zh/photos/snake-python-serpent-scales-543243/

-----

◎ 問題:

-----

Q1:如何畫出離散傅立葉變換矩陣元素的圖形?

Fig. 1. roots_1 [1].

A1:參考代碼一。圖一以 ω 跟 ω^7 為示範圖例 [1]。

首先畫圓 [5],其次畫 x 軸與 y 軸 [6],最後畫箭頭 [7]。

-----

代碼一:

import matplotlib.pyplot as plt
import numpy as np

plt.figure(figsize = (16, 16))

# 畫圓
theta = np.linspace(0, 2*np.pi, 100) # 100
radius = 1 # radius
a = radius*np.cos(theta)
b = radius*np.sin(theta)
plt.plot(a, b)

# 畫 x, y 軸
plt.axhline(y = 0, xmin = 0, xmax = 1) # xmax
plt.axvline(x = 0, ymin = 0, ymax = 1) # ymax

# 畫箭頭
x_pos = [0, 0]
y_pos = [0, 0]
x_direct = [1, 1]
y_direct = [1, -1]
plt.quiver(x_pos, y_pos, x_direct, y_direct,
         scale = 3) # scale

# plt.savefig('/content/drive/My Drive/roots_1.png')
plt.show()

-----

最後修改日期:2022/04/22。

-----

References


[1] 快速傅立葉轉換 | 線代啟示錄

https://ccjou.wordpress.com/2012/05/25/%E5%BF%AB%E9%80%9F%E5%82%85%E7%AB%8B%E8%91%89%E8%BD%89%E6%8F%9B/


[2] Wave - 演算法筆記

https://web.ntnu.edu.tw/~algo/Wave.html


[3] 離散傅里葉變換矩陣 - 維基百科,自由的百科全書

https://zh.wikipedia.org/wiki/%E9%9B%A2%E6%95%A3%E5%82%85%E9%87%8C%E8%91%89%E8%AE%8A%E6%8F%9B%E7%9F%A9%E9%99%A3


[4] 從傅立葉級數到快速傅立葉轉換

https://blog.yeshuanova.com/2019/04/fft_intro/


# 畫圓

[5] 如何在 Matplotlib 中繪製圓 | D棧 - Delft Stack

https://www.delftstack.com/zh-tw/howto/matplotlib/how-to-plot-a-circle-in-matplotlib/


# 畫 x 軸與 y 軸

[6] 如何在 Matplotlib 中繪製水平和垂直線 | D棧 - Delft Stack

https://www.delftstack.com/zh-tw/howto/matplotlib/how-to-plot-horizontal-and-vertical-line-in-matplotlib/


# 清楚的兩箭頭範例

[7] Matplotlib 中的箭袋圖 - GeeksforGeeks

https://www.geeksforgeeks.org/quiver-plot-in-matplotlib/


# 完整的箭頭函式說明

[8] Matplotlib.pyplot.quiver() in Python - GeeksforGeeks

https://www.geeksforgeeks.org/matplotlib-pyplot-quiver-in-python/


# 向量加法

[9] 爾摩儲藏室: Python筆記 - Matplotlib - 繪製向量圖 (以梯度下降法與其衍生方法為例)

http://elmer-storage.blogspot.com/2018/07/python-matplotlib_21.html

-----

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。