在開始推導 DTFT/DTFS 前,我們得先用圖形觀察在離散時域下兩個連續弦波之間必須滿足什麼關係才會等價,兩波等價的定義是在任意的取樣點上都會有相同的函數值,有了充分的理由再說明為什麼相對於 CT 世界,DT 世界只需要有限區間頻率之弦波們的加權總和就能組成我們想要的訊號。因為這一節主要著重在「用物理意義去解釋」等價弦波們之間的頻率關係,如果僅「從數學式子去理解」就能接受的讀者可能會覺得本節的內容較為瑣碎、不重要,便可以直接往下一節前進。
# 先考慮僅具離散點的波
首先定義一個週期為N點的離散波 xN[n] 的數學意義為:
xN[n]=xN[n+kN], for all integers n and k
我們想先考慮僅具離散點的波,它可以壓縮幾倍還能使得在原先的時間點上與原本的波有一樣的值?這邊先拿週期為 3 個點的離散正弦波 x3[n]=sin(2πn/3)作為例子。
考慮上面這張圖之中的A(1)、B(2)、C(3)三個點,我們會發現這三點的索引值擴增為 4 倍之後得到的A′(4)、B′(8)、C′(12)都能保有原本的函數值。
再來考慮上面的新圖,它是前一張圖的波收縮為 1/4 倍並且與原波交疊之後僅擷取區間[0,3]的示意圖,也就是凸顯了(A′→A)、(B′→B)、(C′→C) 的過程。
從上面這兩張圖我們至少可以知道,週期 3 點的離散波不論「索引擴增為 4 倍」或「波長收縮為 1/4 倍」都不影響其 (在取樣點上的) 函數值。由於「索引擴增」、「波長收縮」兩概念等價,且前者在數學或物理意義上比較容易理解,這邊都會以前者的操作 (也就是第一張圖的概念) 來推導。
現在我們好奇,這種波除了索引擴增為 4 倍之外,還能擴增幾倍也能達到一樣的效果呢?這得從數論領域同餘 (congruence modulo) 的角度下手了。因為每 3 點一個週期,只要兩個不同的索引值除以 3 的餘數都一樣,它們的函數值就會一樣。剛剛已經知道給定一個正整數 n,它的 4 倍可以表達為 4n=3n+n,而 3n 是 3 的倍數,於是乎 4n 和 n 有相同餘數。
n≡4n (mod 3)
同理,7n=6n+n 而 6n 是 3 的倍數,10n=9n+n 而 9n 是 3 的倍數,依此類推所有除以 3 餘 1 的倍數 (包含 1、4、7、10 等等) 都是合法的。
n≡(3k+1)n (mod 3) for all positive integers k
所以說週期 3 個點的離散波之索引值擴增為任何能除以 3 餘 1 的倍數都不影響其 (在取樣點上的) 函數值。很明顯地,這邊的 3 點其實可以推廣到任意的N點。
自動擴增一個N點週期離散波的索引值為 kN+1 倍 (k正整數) 並不影響其對應的函數值。
n≡(kN+1)n (mod N) for all positive integers k and N
xN[n]=xN[(kN+1)n], for all positive integers n and k
# 再看背後搭載的連續波
另外,上面這段敘述其實還能把N推廣到非整數的情況,怎麼說呢?因為畢竟離散時點本質上還是在連續週期波上面取樣,故週期除了指每幾個點會重複一次之外,還能指連續弦波的週期長度是由多少個取樣點構成。舉例來說,5 個點平均散佈在 2 個週期的連續弦波,以離散的角度來說週期為 5,但是以連續的角度來看週期便是 2.5。
以這張圖來說,它的索引值看似可以擴增為 6 倍,而無法擴增為 3.5 倍,因為所有奇數的 3.5 倍都不是整數 (例如 1 的 3.5 倍為 3.5,而 3 的 3.5 倍為 10.5),沒辦法呈現在取樣點上;然而從波長壓縮的角度來看我們卻能說「它的波長可以壓縮為 1/(3.5) 倍」,因為原本不在取樣點上的值還是可以跳回取樣點上 (例如從 3.5 跳回 1,從 10.5 跳回 3),所以就不受正整數條件限制了。也就是說如果放寬時點到整個實數,那任意倍數的索引擴增都是合法的。
現在定義一個連續時域週期波 xT(t) 的週期為T,那麼從上面取樣的離散時域週期波 xN[n] 是為 xN[n]=xT(n),也就是說取樣點之索引值會 (一比一的) 直接對應到時間軸上的刻度。以上面的例子來說,N=5 但 T=2.5。這邊N必須是 T的整數倍。
其實就是把除數從原先的正整數N推廣到後來的正實數 T。
自動擴增一個週期為取樣間隔之正實數 T倍的連續波的索引為 kT+1 倍 (k 正整數) 之後並不影響其對應的函數值。
n≡(kT+1)n (mod T) for all positive integers k and positive real numbers T
xN[n]=xT(n)=xT((kT+1)n), for all positive integers n and k
# 推廣取樣間隔、波週期
到目前為止所舉的範例裡面,取樣點索引值與實際上對到的時間刻度是一致的,n=1對應到 t=1,而 n=2 對應到 t=2,依此類推;然而在我們下一節會正式使用到的弦波推導中,這兩者並不一致。讓我們考慮下面這張範例圖。
為什麼這邊用符號 f代表取樣間隔呢?因為頻率有速度的意味,速度愈快則送到的時間點愈遠,這邊讀者可以把時間軸視為在操場上跑步的距離,而波週期已經固定 (例如一圈 400 公尺),跑得愈快愈遠則時間值愈大。回過頭來看這張圖,可以發現 n=1 其實會對應到時間刻度 f,而 n=2 其實會對應到時間的刻度 2f,依此類推,而週期也是絕對時間 T而非取樣間隔的 T倍。該如何寫出這類的式子呢?讓我們再複習一次原本的同餘式:
n≡(kT+1)n (mod T) for all positive integers k and positive real numbers T
其實你會發現這個式子已經隱含 f=1 的條件,如果把它顯現出來的話應該會像:
1⋅n≡(k⋅T/1+1)⋅1n (mod T) for all positive integers k and positive real numbers T
畫底線的地方就是我們傳說中的 f,直接把 f 寫出來的版本應該如下 (搭配中文式子理解):
fn≡(k⋅T/f+1)⋅fn (mod T) for all positive integers k and positive real numbers f
索引對應的時間 ≡(k ×一週期時間需要幾個取樣間隔+ 1) ×索引對應的時間 (mod一週期的時間)
右手邊乘開之後的版本如下 (搭配下面示意圖理解):
fn≡(kT+f)⋅n (mod T) for all positive integers k and positive real numbers f
索引值對應的時間 ≡ (k ×一週期的時間 + 取樣間隔) × 索引值 (mod 一週期的時間)
索引值對應的時間 ≡ (k ×一週期的時間 + 取樣間隔) × 索引值 (mod 一週期的時間)
到這裡我們終於完成對「取樣間隔」、「波的週期」之絕對時間推廣之後的推導,可以往下一節邁進了!