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].首先畫圓 [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] 快速傅立葉轉換 | 線代啟示錄
[2] Wave - 演算法筆記
https://web.ntnu.edu.tw/~algo/Wave.html
[3] 離散傅里葉變換矩陣 - 維基百科,自由的百科全書
[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
# 清楚的兩箭頭範例
[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
-----
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。