典型的類比訊號稱為弦波 Sinusoids,弦波的數學模型,可表示成複數指數系統。最後介紹相量 Phasor 的定義,同時討論與證明相量加法規則 Phasor Addition Rule
類比訊號 analog signals 可定義為:隨著時間改變的連續訊號,用函數表示為 \(x=f(t)\),其中 t 為時間,x 是隨著時間改變的連續訊號
弦波 sinusoids
可用餘弦函數定義為 \(x(t)= A cos (ωt+ϕ)\) 或 \(x(t)=A cos(2 \pi ft+ϕ)\)
其中 A 為振幅 Amplitude,ω 為角頻率 Angular Frequency,f 為頻率,ϕ 為相位移 Phase Shift,且 \(ω = 2 \pi f\)
具有週期性 \(T=\frac{1}{f}\)
ω 為角頻率,單位是 弧度/秒 (Radians/Second) ,\(ω = 2 \pi f = \frac{2 \pi}{T}\)
頻率的單位是 次數/秒 (Cycles/Second) 或 Hz
相位移的單位是 弧度 (Radians)
import numpy as np
import matplotlib.pyplot as plt
def sinusoids(amplitude, frequency, phase_shift, plotpos):
t = np.linspace( 0, 2, 1000, endpoint = False ) # 定義時間陣列
x = amplitude * np.cos( 2 * np.pi * frequency * t + phase_shift ) # 產生弦波
plt.subplot(plotpos)
# plt.ylim(-4,4)
plt.plot( t, x ) # 繪圖
plt.xlabel( 't (second)' )
plt.ylabel( 'Amplitude' )
# 振幅 = 1, 2, 4
plt.figure( 1 )
# 1*cos(2*pi*2*t)
sinusoids(1, 2, 0, '131')
# 2*cos(2*pi*2*t)
sinusoids(2, 2, 0, '132')
# 4*cos(2*pi*2*t)
sinusoids(4, 2, 0, '133')
# 頻率 = 1,2,4
plt.figure( 2 )
# 1*cos(2*pi*1*t)
sinusoids(1, 1, 0, '131')
# 1*cos(2*pi*2*t)
sinusoids(1, 2, 0, '132')
# 1*cos(2*pi*4*t)
sinusoids(1, 4, 0, '133')
# 相位移 = 0, pi/4, pi/2
plt.figure( 3 )
# 1*cos(2*pi*1*t)
sinusoids(1, 1, 0, '131')
# 1*cos(2*pi*2*t)
sinusoids(1, 1, np.pi/4, '132')
# 1*cos(2*pi*4*t)
sinusoids(1, 1, np.pi/2, '133')
plt.show( )
ex: \(x(t)=Acos(2 \pi ft+ϕ)\)
振幅 A = 1,2,4
頻率 f = 2
相位移 ϕ = 0
結果:當 A 越大,音量越大
ex: \(x(t)=Acos(2 \pi ft+ϕ)\)
振幅 A = 1
頻率 f = 1,2,4
相位移 ϕ = 0
結果:當 f 越大,音頻越高,每秒震盪次數越大
ex: \(x(t)=Acos(2 \pi ft+ϕ)\)
振幅 A = 1
頻率 f = 1
相位移 ϕ = 0, π/4, π/2
結果:弦波會向左移動 0, π/4, π/2,若 ϕ 為負值,則是向右移,稱為時間延遲 (Time Delay)。相位移不會改變波形
複數 complex number
定義為 \(z=a+bj\) ,其中 a 為實部 real part, b 為虛部 imaginary part,\(j=\sqrt{-1}\) 為虛數的單位
- 複數可用複數平面 complex plane 表示
- 極座標 Polar Coordinate System 的方式表示
\(z = |z|(cosθ + j sinθ)\) ,其中
\(|z|=\sqrt{a^2+b^2}\),稱為複數的強度 (magnitude)
\(θ = tan^{-1}(b/a)\) ,稱為複數的幅角 (argument) 或相位角 (Phase Angle)
note: arctan 的值域為 \((-\frac{\pi}{2}, \frac{\pi}{2})\),第二、三象限的角度,無法直接用 arctan 計算
根據尤拉公式(Euler's Equation) \(e^{jθ} = cos θ + j sinθ\),複數也可表示為極座標表示法
\(z=|z|e^{jθ}\)
ex: 複數 \(z=3+4j\) ,求強度 magnitude,相位角 Phase Angle
import numpy as np
# z = - 3 + 4j # 定義複數
z = complex(3,4)
magnitude = abs( z ) # 計算強度(Magnitude)
theta = np.angle( z ) * 180 / np.pi # 計算相位角(Phase Angle)
print( "z =", z )
print( "Magnitude =", magnitude )
print( "Phase Angle =", theta )
$ python complex_number.py
z = (3+4j)
Magnitude = 5.0
Phase Angle = 53.13010235415598
強度 magnitude
\(|z|=\sqrt{3^2+4^2} = 5\)
相位角
\(θ = tan^{-1}(4/3) = 52.13^{\circ}\)
複數的運算
\(j=\sqrt{-1}, j^2 = -1\)
加法
\((a+bj)+(c+dj) = (a+c)+(b+d)j\)
減法
\((a+bj)-(c+dj) = (a-c)+(b-d)j\)
乘法
\((a+bj)(c+dj) = (ac-bd)+(bc+ad)j\)
除法
\(\frac{a+bj}{c+dj} = \frac{(a+bj)(c-dj)}{(c+dj)(c-dj)} = \frac{(ac+bd)+(bc-ad)j}{c^2+d^2}\)
反尤拉公式
\(cosθ = \frac{e^{jθ}+e^{-jθ}}{2}, sinθ= \frac{e^{jθ}-e^{-jθ}}{2j}\)
ex: 用複數證明三角函數的和角公式
\(cos(α+β) = Re\{cos(α+β) + jsin(α+β)\} \\ = Re\{e^{j(α+β)}\} \\ = Re\{e^{jα}+e^{jβ}\} \\ = Re\{(cosα+jsinα) \cdot (cosβ+jsinβ)\} \\ = Re\{(cosα \cdot cosβ - sinα \cdot sinβ) + j (sinα \cdot cosβ+cosα \cdot sinβ)\}\)
因此
\(cos(α+β) = cosα \cdot cosβ - sinα \cdot sinβ\)
\(sin(α+β) = sinα \cdot cosβ+cosα \cdot sinβ\)
複數指數訊號
complex exponential signals 定義為
\(z(t) = A e^{j(ωt+ϕ)}\) ,其中 A 是振幅 amplitude,(ωt+ϕ) 是相位角 Phase Angle
根據弦波定義 \(x(t)=A cos(ωt+ϕ)\) 與尤拉公式 \(e^{jθ} = cosθ+jsinθ\)
\(z(t) = A e^{j(ωt+ϕ)} = A cos(ωt+ϕ)+A \cdot jsin(ωt+ϕ)\)
因此 \(x(t) = Re\{z(t)\}\) 弦波,是複數指數訊號 z(t) 的實部
相量
相量 Phasor 定義為 \(X= A e^{jϕ}\),其中 A 是振幅 amplitude,ϕ 是相位移 phase shift
根據複數指數訊號的定義
\(z(t) = A e^{j(ωt+ϕ)} = Ae^{jωt} \cdot e^{jϕ} = Ae^{jϕ} \cdot e^{jωt}\)
因此定義 \(X=Ae^{jϕ}\),就是 Phasor
ex: 求弦波 \(x(t)=10 cos(2 \pi t+\pi /4)\) 的 phasor
因為 A =10, f=1, ϕ=π/4
phasor = \(Ae^{jϕ} = 10e^{j\pi/4} = 10 \cdot (cos\frac{\pi}{4}+jsin\frac{\pi}{4}) = 5\sqrt{2}+5\sqrt{2}j\)
Phasor 就是複數平面上的向量 vector
ex: 兩個頻率相同的弦波相加的結果,頻率不變
\(x_1(t) = 3 cos(2 \pi 10 t + \pi/4)\)
\(x_2(t) = 4 cos(2 \pi 10 t + 3\pi/4)\)
import numpy as np
import matplotlib.pyplot as plt
t = np.linspace( 0, 1, 1000, endpoint = False ) # 定義時間陣列
x1 = 3 * np.cos( 2 * np.pi * 10 * t + np.pi / 4 ) # 第一個弦波
x2 = 4 * np.cos( 2 * np.pi * 10 * t + 3 * np.pi / 4 ) # 第二個弦波
x3 = x1 + x2 # 弦波相加
plt.plot( t, x1, '--', label = 'x1(t)' ) # 繪圖
plt.plot( t, x2, '--', label = 'x2(t)' )
plt.plot( t, x3, '-', label = 'x3(t)' )
plt.legend( loc = 'upper right' )
plt.xlabel( 't (second)' )
plt.ylabel( 'Amplitude' )
plt.axis( [ 0, 1, -6, 6 ] )
plt.show( )
相量加法規則
相量加法規則:有 N 個弦波,角頻率都是 \(ω_0\),振幅與相位移分別為 \(A_k, ϕ_k, k=1,2,...N\),則
\(\sum_{k=1}^{N}A_kcos(ω_0t+ϕ_k) = Acos(ω_0t+ϕ)\)
換句話說,若有 N 個弦波,角頻率 \(ω_0\) (或頻率 \(f_0\)) 都相同,則相加後的弦波,角頻率 (或頻率) 會維持不變
證明:用複數的運算規則
\(\sum_{k=1}^{N}A_kcos(ω_0t+ϕ_k) = \sum_{k=1}^{N}Re\{A_ke^{j(ω_0t+ϕ_k)}\} \\ = Re\{ \sum_{k=1}^{N} A_ke^{j(ω_0t+ϕ_k)}\} \\ = Re\{ \sum_{k=1}^{N} A_ke^{jϕ_k} \cdot e^{jω_0t}\} \\ = Re\{ (\sum_{k=1}^{N} A_ke^{jϕ_k}) \cdot e^{jω_0t}\} \\ = Re\{ Ae^{jϕ} \cdot e^{jω_0t}\} \\ = Re\{ Ae^{j(ω_0t+ϕ)}\} \\ = Acos(ω_0t+ϕ)\)
以上推導過程要滿足 \(\sum_{k=1}^{N} A_ke^{jϕ_k} = Ae^{jϕ} \)
也就是 N 個弦波相加後結果,振幅 A 與 相位移 ϕ ,可根據個弦波的 Phasors,取其總和來決定
ex: 有兩個弦波,計算加總後 \(x_3(t)=x_1(t)+x_2(t)\) 的振幅及相位移
\(x_1(t) = 3 cos(2 \pi 10 t + \pi/4)\)
\(x_2(t) = 4 cos(2 \pi 10 t + 3\pi/4)\)
先計算兩個弦波的 phasors
\(A_1e^{jϕ_1} = 3 e^{j \pi/4} = 3 cos(\frac{\pi}{4}) + j sin(\frac{\pi}{4})\)
\(A_2e^{jϕ_1} = 4 e^{j 3 \pi/4} = 4 cos(\frac{3\pi}{4}) + j sin(\frac{3\pi}{4})\)
相加後的 phasor (複數加法)
\(Ae^{jϕ} = (3 cos(\frac{\pi}{4})+4 cos(\frac{3\pi}{4}) ) + j(sin(\frac{\pi}{4})+sin(\frac{3\pi}{4})) \\ = -\frac{1}{\sqrt{2}} + j \frac{7}{\sqrt{2}}\)
轉換為極座標 \(z = |z| (cosθ+jsinθ)\) \( z=a+bj, |z| = \sqrt{a^2+b^2}, θ = tan^{-1}(b/a)\)
\(A=|z| = 5\)
\(ϕ = \pi - tan^{-1}(7) = 1.7127\) note: 第二象限的 arctan
因此 \(x_3(t) = 5 cos(2 \pi 10 t+1.7127)\)
import numpy as np
phasor1 = complex( 3 * np.cos( np.pi / 4 ), 3 * np.sin( np.pi / 4 ) )
phasor2 = complex( 4 * np.cos( 3 * np.pi / 4 ), 4 * np.sin( 3 * np.pi / 4 ) )
phasor = phasor1 + phasor2
A = abs( phasor )
phi = np.angle( phasor )
print( "Phasor1 =", phasor1 )
print( "Phasor2 =", phasor2 )
print( "Phasor =", phasor )
print( "Amplitude =", A )
print( "Phase Angle =", phi )
執行結果
Phasor1 = (2.121320343559643+2.1213203435596424j)
Phasor2 = (-2.82842712474619+2.8284271247461903j)
Phasor = (-0.707106781186547+4.949747468305833j)
Amplitude = 5.0
Phase Angle = 1.7126933813990604
沒有留言:
張貼留言