DSP筆記2_使用 NumPy練習繪製連續時間訊號正弦波(Sine)_餘弦波(Cosine)_跟離散時間訊號繪製_stem用法

 



連續時間正弦波-數位取樣訊號
從 0 秒取樣到 0.999 秒,每隔:0.001秒取一個樣本。
plt.plot(t, xt)會把點連起來,像連續波形。



程式碼

import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0, 1, 0.001)
#print(t)
xt = np.sin(2*np.pi*3*t)
plt.plot(t, xt)
plt.title("Sine Wave")
plt.xlabel("Time")
plt.ylabel("Amplitude")
plt.show()

xt = np.cos(2*np.pi*3*t)
plt.plot(t, xt)
plt.title("Cosine Wave")
plt.xlabel("Time")
plt.ylabel("Amplitude")
plt.show()

正弦波最標準的數學式通常寫成:



符號
  • A : 振幅 Amplitude
  • f : 頻率 Frequency ,每秒完成幾個週期。
  • t : 時間 Time 
  • ϕ : 初始相位 Phase
  • 2πf : 角頻率,圓的一整圈是:360度,而在數學上通常不用度數,而使用「弧度 radian」。360∘=2π radians
對照式子可推得各參數分別如下


振幅=1
訊號頻率=3 Hz ,代表一秒鐘有 3 個週期。由於時間剛好介於一秒,因此會看到三個完整的正弦波
初始相位=0
角頻率=6π rad/s
t = 0~0.999 秒

而餘弦波也依樣畫葫蘆。

若固定在一個 3 Hz 正弦波,於不同取樣間隔下,離散取樣點會有什麼差異。

左側是用0.001間隔密度採樣。也就是在一秒鐘內對 3 Hz 正弦波取 1000 點。
右側則用0.01間隔密度採樣,取樣間隔變大了 10 倍。每秒只取 100 個樣本。

stem() 很常用來表示離散時間訊號,每一根垂直線代表「一個取樣值」。
程式碼

import numpy as np
import matplotlib.pyplot as plt
n = np.arange(0, 1, 0.001)
xn = np.sin(2*np.pi*3*n)
plt.stem(n, xn)
plt.title('Sampled sin wave')
plt.xlabel('------>n')
plt.ylabel('Amplitude')
plt.show()

n = np.arange(0, 1, 0.01)
xn = np.sin(2*np.pi*3*n)
plt.stem(n, xn)
plt.title('Sampled sin wave')
plt.xlabel('------>n')
plt.ylabel('Amplitude')
plt.show()




運行程式結果如下















留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

外貿Payment Term 付款條件(方式)常見的英文縮寫與定義

鼎新ERP_會計系統_總帳管理_財務參數設定_傳票處理