Outline大綱アウトライン
3.1 LCCDEs3.1 線性常係數差分方程3.1 線形定係数差分方程式
3.2 Solving LCCDEs3.2 差分方程的解法3.2 差分方程式を解く
3.3 Zero-Input / Zero-State3.3 零輸入/零狀態響應3.3 零入力応答/零状態応答
3.4 Impulse Response3.4 脈衝響應3.4 インパルス応答
3.5 Stability3.5 穩定性3.5 安定性
3.6 Block Diagrams3.6 方塊圖3.6 ブロック図
3.7 Correlation3.7 相關3.7 相関
3.8 Summary3.8 本章總結3.8 まとめ
Exercises習題演習問題
DSP Study Guide · Chapter 3
DSP 學習指南 · 第 3 章
DSP 学習ガイド · 第 3 章

Discrete-Time Systems II — Difference Equations & Correlation離散時間系統(二)—— 差分方程與相關離散時間システム(II)—— 差分方程式と相関

Linear constant-coefficient difference equations: solving them, impulse responses, FIR/IIR, stability, block-diagram realizations — plus cross- and autocorrelation of sequences.
線性常係數差分方程:怎麼解、脈衝響應、FIR/IIR、穩定性、方塊圖實現——外加序列的互相關與自相關。
線形定係数差分方程式:その解法、インパルス応答、FIR/IIR、安定性、ブロック図による実現——さらに系列の相互相関と自己相関。

3.1 Linear Constant-Coefficient Difference Equations3.1 線性常係數差分方程3.1 線形定係数差分方程式

Chapter 2 described an LTI system by its impulse response $h[n]$ and the convolution sum. A second — and computationally far cheaper — description is the linear constant-coefficient difference equation(線性常係數差分方程, LCCDE): the present output is computed from a finite number of past outputs, the present input, and past inputs.

第 2 章用脈衝響應 $h[n]$ 與卷積和來描述一個 LTI 系統。第二種描述方式——而且計算上便宜得多——是線性常係數差分方程(linear constant-coefficient difference equation,LCCDE):把當前的輸出用有限個過去輸出、當前輸入與過去輸入算出來。

第 2 章では、LTI システムをそのインパルス応答 $h[n]$ と畳み込み和によって記述した。もう一つの——そして計算量がはるかに小さい——記述が線形定係数差分方程式(linear constant-coefficient difference equation, LCCDE)である。現在の出力を、有限個の過去の出力と、現在および過去の入力から計算する。

3.1.1 General form3.1.1 一般形式3.1.1 一般形

LCCDE — general N-th order form LCCDE —— 一般 N 階形式LCCDE —— 一般の N 次形 $$\sum_{k=0}^{N} a_k\, y[n-k] \;=\; \sum_{k=0}^{M} b_k\, x[n-k], \qquad a_0 = 1$$

Solving for the present output gives the recursive computational form:

把當前輸出解出來,就得到遞迴計算形式:

現在の出力について解くと、再帰的な計算形が得られる:

Recursive form (a₀ normalized to 1) 遞迴形式(a₀ 已正規化為 1)再帰形(a₀ を 1 に正規化) $$y[n] \;=\; -\sum_{k=1}^{N} a_k\, y[n-k] \;+\; \sum_{k=0}^{M} b_k\, x[n-k]$$
Why LCCDEs matter
為什麼差分方程重要
差分方程式が重要な理由
Convolution with an infinitely long $h[n]$ needs infinitely many multiplications per output sample. An LCCDE produces the same output with only $N + M + 1$ multiplications per sample. Every practical IIR digital filter is implemented as an LCCDE, never as a literal convolution.與無限長的 $h[n]$ 做卷積,每算一個輸出樣本就要無限多次乘法。而一條差分方程只要每個樣本 $N + M + 1$ 次乘法就能產生相同的輸出。每一個實際使用的 IIR 數位濾波器都是以差分方程實作的,絕不會真的去做卷積。無限に長い $h[n]$ との畳み込みでは、出力 1 標本あたり無限回の乗算が必要になる。差分方程式なら、1 標本あたりわずか $N + M + 1$ 回の乗算で同じ出力が得られる。実用的な IIR ディジタルフィルタはすべて差分方程式として実装されており、畳み込みをそのまま計算することはない。
Initial conditions decide everything
初始條件決定一切
初期条件がすべてを決める
An LCCDE alone does not define a unique system — you must also specify the initial conditions(初始條件)$y[-1], \dots, y[-N]$. The system is LTI and causal only if it is initially at rest(初始鬆弛, initially relaxed): $y[-1] = \dots = y[-N] = 0$. With nonzero initial conditions the system is neither linear nor time-invariant (it violates homogeneity: zero input does not give zero output).光有一條差分方程並不能定義出唯一的系統——你還必須指定初始條件(initial conditions)$y[-1], \dots, y[-N]$。只有在初始鬆弛(initially relaxed,$y[-1] = \dots = y[-N] = 0$)的情況下,這個系統才既是 LTI 又是因果的。初始條件非零時,系統既非線性也非時不變(它違反齊次性:零輸入不會給出零輸出)。差分方程式だけでは、系は一意に定まらない——初期条件 $y[-1], \dots, y[-N]$ も指定しなければならない。この系が LTI かつ因果的になるのは、初期静止(initially relaxed)のとき、すなわち $y[-1] = \dots = y[-N] = 0$ のときに限る。初期条件が非零であれば、系は線形でも時不変でもない(斉次性を破る:零入力が零出力を与えない)。
But that applies only to the mapping "input → complete output". The total response always splits into the zero-input response (ZIR — produced by the initial conditions alone) plus the zero-state response (ZSR — produced by the input alone, from rest): $y[n] = y_{\text{zi}}[n] + y_{\text{zs}}[n]$. Even when the initial conditions are non-zero and the system as a whole is not LTI, its zero-state part ($x[n]\to y_{\text{zs}}[n]$) still is LTI and causal — which is exactly why $h[n]$ can be defined and why $y_{\text{zs}}[n]=x[n]*h[n]$ holds. The nonlinearity comes only from that fixed ZIR offset term.但這只針對「輸入 → 全部輸出」這個映射。總響應永遠可拆成 零輸入響應(zero-input response, ZIR,只由初始條件產生) + 零狀態響應(zero-state response, ZSR,初始鬆弛下只由輸入產生):$y[n] = y_{\text{zi}}[n] + y_{\text{zs}}[n]$。就算初始條件非零、整體系統不是 LTI,它的零狀態部分($x[n]\to y_{\text{zs}}[n]$)仍然是 LTI 且因果的 —— 這正是可以定義 $h[n]$、用卷積 $y_{\text{zs}}[n]=x[n]*h[n]$ 的原因。非線性只來自那個固定的 ZIR 偏置項。ただしそれは「入力 → 出力全体」という写像についての話である。全応答はつねに、零入力応答(zero-input response, ZIR——初期条件だけが生む成分)と零状態応答(zero-state response, ZSR——初期静止のもとで入力だけが生む成分)に分解できる:$y[n] = y_{\text{zi}}[n] + y_{\text{zs}}[n]$。初期条件が非零で系全体が LTI でない場合でも、その零状態部分($x[n]\to y_{\text{zs}}[n]$)は依然として LTI かつ因果的である——だからこそ $h[n]$ を定義でき、$y_{\text{zs}}[n]=x[n]*h[n]$ が成り立つ。非線形性は、あの固定された ZIR のオフセット項だけから来ている。

3.1.2 Recursive vs non-recursive systems3.1.2 遞迴系統與非遞迴系統3.1.2 再帰系と非再帰系

Non-recursive(非遞迴)Recursive(遞迴)
Condition$N = 0$: no feedback terms$N \ge 1$: output feeds back
Form$y[n] = \sum_{k=0}^{M} b_k\,x[n-k]$$y[n] = -\sum_{k=1}^{N} a_k y[n-k] + \sum_{k=0}^{M} b_k x[n-k]$
Impulse responseFinite length $M+1$ → FIRGenerally infinite → IIR
Memory neededPast inputs onlyPast inputs and past outputs
Examplemoving averageaccumulator $y[n]=y[n-1]+x[n]$
非遞迴(non-recursive)遞迴(recursive)
條件$N = 0$:沒有回授項$N \ge 1$:輸出回授
形式$y[n] = \sum_{k=0}^{M} b_k\,x[n-k]$$y[n] = -\sum_{k=1}^{N} a_k y[n-k] + \sum_{k=0}^{M} b_k x[n-k]$
脈衝響應有限長度 $M+1$ → FIR一般為無限長 → IIR
需要的記憶只有過去的輸入過去的輸入與過去的輸出
例子移動平均累加器 $y[n]=y[n-1]+x[n]$
非再帰(non-recursive)再帰(recursive)
条件$N = 0$:帰還項なし$N \ge 1$:出力が帰還する
形$y[n] = \sum_{k=0}^{M} b_k\,x[n-k]$$y[n] = -\sum_{k=1}^{N} a_k y[n-k] + \sum_{k=0}^{M} b_k x[n-k]$
インパルス応答長さ $M+1$ の有限長 → FIR一般に無限長 → IIR
必要な記憶過去の入力のみ過去の入力と過去の出力
例移動平均累算器 $y[n]=y[n-1]+x[n]$

A classic non-recursive example is the $L$-point moving average(移動平均), used everywhere for smoothing noisy data:

最經典的非遞迴例子是$L$ 點移動平均(moving average),到處都用它來平滑含雜訊的資料:

非再帰系の古典的な例が$L$ 点移動平均(moving average)であり、雑音を含むデータの平滑化にいたるところで使われる:

Moving-average filter 移動平均濾波器移動平均フィルタ $$y[n] = \frac{1}{L}\sum_{k=0}^{L-1} x[n-k]$$
2026-06-12T22:20:00.277402 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/ −1 0 1 x[n] Noisy input x[n] underlying cos(2πn/30) 0 10 20 30 40 50 60 n −1.5 −1.0 −0.5 0.0 0.5 1.0 y[n] 5-point moving-average output y[n] (non-recursive FIR)
Fig. 3-1 — A 5-point moving average applied to a noisy cosine. Each output sample averages the 5 most recent inputs, so rapid noise fluctuations cancel while the slow underlying waveform passes through (with a small delay of $(L-1)/2 = 2$ samples).
圖 3-1 — 對含雜訊的餘弦訊號施加 5 點移動平均。每個輸出樣本是最近 5 個輸入的平均,所以快速的雜訊起伏互相抵消,底下緩慢的波形則通過,代價是 $(L-1)/2 = 2$ 個樣本的小延遲。
図 3-1 — 雑音を含む余弦波に 5 点移動平均を適用した例。各出力標本は直近 5 個の入力の平均であるため、速い雑音の変動は打ち消し合い、下に隠れたゆっくりした波形は通過する($(L-1)/2 = 2$ 標本のわずかな遅延を伴う)。

3.2 Solving LCCDEs3.2 差分方程的解法3.2 差分方程式を解く

The direct method(直接法)solves an LCCDE in the time domain by splitting the total solution into two parts:

直接法(direct method)在時域裡解差分方程,做法是把全解拆成兩部分:

直接法(direct method)は、全解を次の二つに分けて時間領域で差分方程式を解く:

Total solution structure 全解的結構全解の構造 $$y[n] \;=\; \underbrace{y_c[n]}_{\text{complementary / homogeneous}} \;+\; \underbrace{y_p[n]}_{\text{particular}}$$
求輸出時,直接用遞迴式往前算最保險嗎?(點擊展開)

看你要什麼。直接法($y_c+y_p$)和遞迴前推是兩種目的不同的工具:

只要「有限幾個數值」$y[0], y[1], \dots, y[n_0]$($n_0$ 不大)→ 遞迴前推最保險。只要給了初始條件 $y[-1],\dots,y[-N]$,把 LCCDE 解成遞迴計算式

$$y[n] = \frac{1}{a_0}\!\left(\sum_{k=0}^{M} b_k\,x[n-k] \;-\; \sum_{k=1}^{N} a_k\,y[n-k]\right)$$

從 $n=0$ 一格一格代下去即可。它不用猜特解型式、不用解特徵根、不用聯立求 $C_k$ —— 少掉所有代數出錯點,對遞迴/IIR 系統一樣有效。唯一要小心:初始條件代對、index 不要錯位。

要「任意 $n$ 的封閉解 $y[n]$」或看漸近/穩定行為 → 只能用直接法。遞迴前推只給你一串數值,給不出 symbolic 通式,也看不出 $n\to\infty$ 的趨勢。這時老實走 $y_c[n]+y_p[n]$:特徵方程求根 → 定特解 → 用初始條件解 $C_k$。

實務建議:需要通式就解 $y_c+y_p$,解完再用遞迴前幾項驗算(把 $n=0,1,2$ 代回封閉解,對照遞迴結果是否一致)—— 這是最穩的雙保險。考試若只問某個具體且 $n$ 小的 $y[n_0]$,直接遞迴最快、最不易錯。

3.2.1 Complementary (homogeneous) solution3.2.1 齊次解(互補解)3.2.1 斉次解(相補解)

The complementary solution(齊次解 / 互補解) $y_c[n]$ solves the homogeneous equation — the LCCDE with the input forced to zero:

齊次解/互補解(complementary solution)$y_c[n]$ 解的是齊次方程——也就是把輸入強迫設為零的那條差分方程:

斉次解(相補解、complementary solution) $y_c[n]$ は斉次方程式——入力を強制的に零とした差分方程式——の解である:

Homogeneous equation 齊次方程斉次方程式 $$\sum_{k=0}^{N} a_k\, y[n-k] = 0$$

Procedure. Assume an exponential trial solution $y[n] = \lambda^{\,n}$. Substituting and dividing out $\lambda^{\,n-N}$ yields the characteristic polynomial(特徵多項式):

步驟。先假設指數型試解 $y[n] = \lambda^{\,n}$。代入後約掉 $\lambda^{\,n-N}$,就得到特徵多項式(characteristic polynomial):

手順。指数型の試行解 $y[n] = \lambda^{\,n}$ を仮定する。代入して $\lambda^{\,n-N}$ で割ると、特性多項式(characteristic polynomial)が得られる:

Characteristic equation 特徵方程特性方程式 $$\lambda^{N} + a_1 \lambda^{N-1} + a_2 \lambda^{N-2} + \cdots + a_N = 0$$
「代入後約掉 $\lambda^{\,n-N}$」到底在做什麼?(點擊展開)

1. 代入試解。齊次式為 $\sum_{k=0}^{N} a_k\,y[n-k]=0$。把 $y[n]=\lambda^{\,n}$ 代進去,於是 $y[n-k]=\lambda^{\,n-k}$:

$$\sum_{k=0}^{N} a_k\,\lambda^{\,n-k} \;=\; a_0\lambda^{\,n} + a_1\lambda^{\,n-1} + \cdots + a_N\lambda^{\,n-N} \;=\; 0$$

2. 提出最低次幂。每一項都含 $\lambda^{\,n-N}$(最小的指數),把它提出來:

$$\lambda^{\,n-N}\underbrace{\left(a_0\lambda^{N} + a_1\lambda^{N-1} + \cdots + a_N\right)}_{\text{特徵多項式}} \;=\; 0$$

3. 約掉 $\lambda^{\,n-N}$。$\lambda=0$ 是平凡解(對應 $y[n]\equiv0$,沒意義),所以找非零解時 $\lambda^{\,n-N}\neq 0$,可以整條除掉 —— 指數項 $n$ 就此消失,只剩一個純代數方程:

$$a_0\lambda^{N} + a_1\lambda^{N-1} + \cdots + a_N = 0$$

為什麼可以約掉 $\lambda^{\,n-N}$?因為它是「跟 $n$ 有關、但恆不為零」的因子,兩邊同除非零數是合法的。三層理由:

(i) 前提就排除 $\lambda=0$。$\lambda=0$ 給出 $y[n]=0^{\,n}\equiv0$,是沒資訊的平凡解;任何有意義的自然模態都對應 $\lambda\neq0$。

(ii) $\lambda\neq0 \Rightarrow \lambda^{\,n-N}\neq0$(對每個 $n$)。於是第 2 步的式子是「非零 × 某常數 $=0$」:

$$\lambda^{\,n-N}\cdot\underbrace{\big(a_0\lambda^{N}+\cdots+a_N\big)}_{=\,C\ \text{(不含 }n\text{ 的常數)}}=0 \;\Longrightarrow\; C=0$$

(iii) 那個多項式因子完全不含 $n$。$n$ 只出現在被提出來的 $\lambda^{\,n-N}$ 裡;括號那項對所有 $n$ 是同一個常數。既然前面的因子恆不為零,要式子對所有 $n$ 成立,就只能令這個常數 $=0$ —— 這正是「約掉 $\lambda^{\,n-N}$」的真正意思:非零因子不背鍋,責任全丟給那個決定 $\lambda$ 的多項式。

關鍵:這一除,把「對每個 $n$ 都要成立」的差分方程,縮成「只需解出 $\lambda$」的 $N$ 次多項式。再把首項係數正規化($a_0=1$)就得到上面的特徵方程。它的 $N$ 個根 $\lambda_k$ 就是系統的自然模態/極點;每個根貢獻一個 $\lambda_k^{\,n}$ 分量。

With $N$ distinct roots $\lambda_1, \dots, \lambda_N$ (the natural modes / poles of the system):

若有 $N$ 個相異根 $\lambda_1, \dots, \lambda_N$(系統的自然模態/極點):

相異なる $N$ 個の根 $\lambda_1, \dots, \lambda_N$(系の固有モード/極)をもつ場合:

Complementary solution — distinct roots 齊次解 —— 相異根的情形斉次解 —— 根が相異なる場合 $$y_c[n] = C_1 \lambda_1^{\,n} + C_2 \lambda_2^{\,n} + \cdots + C_N \lambda_N^{\,n}$$
與 Jordan form 的關係:那些 $n^{m-1}$ 因子從哪來(點擊展開)

把 LCCDE 寫成狀態遞迴 $\mathbf{s}[n+1] = A\,\mathbf{s}[n]$($A$ 為伴隨矩陣 companion matrix),則 $A$ 的特徵值恰好就是特徵根 $\lambda_k$,而 $y[n]$ 完全由 $A^n$ 決定。上面各種模態的形狀,其實就是 $A^n$ 的樣子。

相異根 → 可對角化。$N$ 個相異根時 $A$ 可對角化,$A = P\Lambda P^{-1}$,於是

$$A^n = P\,\Lambda^n P^{-1}, \qquad \Lambda^n = \operatorname{diag}(\lambda_k^{\,n}).$$

得到純粹的模態 $\lambda_k^{\,n}$,沒有任何 $n$ 的多項式前綴——對應上表「distinct roots」那列。

重根 → 缺陷矩陣 defective → Jordan block。某根重複 $m$ 次時,伴隨矩陣少了特徵向量(幾何重數 < 代數重數),無法對角化,只能化為 Jordan block $J = \lambda I + N$($N$ 為冪零矩陣)。此時

$$J^n = \sum_{k=0}^{m-1}\binom{n}{k}\lambda^{\,n-k} N^{k},$$

其中二項式係數 $\binom{n}{k}$ 是 $n$ 的多項式(次數最高 $m-1$)。這正是

$$\lambda^{\,n},\; n\lambda^{\,n},\; n^2\lambda^{\,n},\;\dots,\; n^{m-1}\lambda^{\,n}$$

這一整組模態的來源——你手動補上的 $n^{m-1}$ 因子,本質上就是 Jordan block 的 $\binom{n}{k}$。

共振陷阱其實是隱藏的 Jordan block。把輸入 $\alpha^n$ 看成由一個自己的外生狀態(特徵值 $\alpha$)產生,再與系統疊成一個更大的自治矩陣 $\tilde A$。當 $\alpha = \lambda_k$ 時,這個特徵值的代數重數比特徵向量多一個 → $\tilde A$ 變成缺陷矩陣,冒出一個 $2\times2$ Jordan block,其 $J^n$ 就產生 $n\,\alpha^{\,n}$ 項。所以「試解乘上 $n$」不是憑空規則,而是補上 Jordan 結構所要求的廣義特徵向量 generalized eigenvector 模態。

連續時間完全對應:Jordan block 的重根給出 $t^k e^{\lambda t}$,對應離散的 $n^k \lambda^n$。

2026-06-12T22:19:59.790366 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/ 0.0 2.5 5.0 7.5 10.0 12.5 15.0 n 0.0 0.2 0.4 0.6 0.8 1.0 λⁿ λ = 0.5 (fast decay, stable) 0.0 2.5 5.0 7.5 10.0 12.5 15.0 n 0.0 0.2 0.4 0.6 0.8 1.0 λⁿ λ = 0.9 (slow decay, stable) 0.0 2.5 5.0 7.5 10.0 12.5 15.0 n −0.5 0.0 0.5 1.0 λⁿ λ = −0.8 (alternating, stable) 0.0 2.5 5.0 7.5 10.0 12.5 15.0 n 0 1 2 3 4 λⁿ λ = 1.1 (growing, unstable)
Fig. 3-2 — Natural modes $\lambda^n$ for four characteristic-root values. $|\lambda| < 1$ decays (system memory fades), $\lambda < 0$ alternates sign every sample, and $|\lambda| > 1$ grows without bound — the signature of an unstable system (see §3.5).
圖 3-2 — 四種特徵根值所對應的自然模態 $\lambda^n$。$|\lambda| < 1$ 會衰減(系統記憶逐漸消退),$\lambda < 0$ 每個樣本交替變號,$|\lambda| > 1$ 則無界成長——這正是不穩定系統的特徵(見 §3.5)。
図 3-2 — 四通りの特性根に対する固有モード $\lambda^n$。$|\lambda| < 1$ は減衰し(系の記憶が薄れていく)、$\lambda < 0$ は 1 標本ごとに符号が反転し、$|\lambda| > 1$ は際限なく増大する——不安定な系の特徴である(§3.5 参照)。

3.2.2 Particular solution3.2.2 特解3.2.2 特解

The particular solution(特解) $y_p[n]$ is any one solution of the full equation with the input present, valid for $n \ge 0$. Assume a form that mimics the input:

特解(particular solution)$y_p[n]$ 是完整方程(輸入存在時)的任何一個解,在 $n \ge 0$ 成立。假設的形式要模仿輸入的樣子:

特解(particular solution) $y_p[n]$ は、入力がある状態での完全な方程式の解のうち任意の一つで、$n \ge 0$ で成り立つ。入力の形を真似た形を仮定する:

Input $x[n]$ (for $n \ge 0$)Assumed particular solution $y_p[n]$
$A$ (constant, e.g. step)$K$
$A\,\alpha^{\,n}$$K\,\alpha^{\,n}$
$A\,n^{p}$$K_0 + K_1 n + \cdots + K_p n^{p}$
$A\cos\omega_0 n$ or $A\sin\omega_0 n$$K_1\cos\omega_0 n + K_2 \sin\omega_0 n$
$A\,\alpha^{\,n}$ where $\alpha$ is a characteristic root$K\,n\,\alpha^{\,n}$ (multiply by $n$)
輸入 $x[n]$($n \ge 0$)假設的特解 $y_p[n]$
$A$(常數,例如步階)$K$
$A\,\alpha^{\,n}$$K\,\alpha^{\,n}$
$A\,n^{p}$$K_0 + K_1 n + \cdots + K_p n^{p}$
$A\cos\omega_0 n$ 或 $A\sin\omega_0 n$$K_1\cos\omega_0 n + K_2 \sin\omega_0 n$
$A\,\alpha^{\,n}$,而且 $\alpha$ 剛好是特徵根$K\,n\,\alpha^{\,n}$(要乘上 $n$)
入力 $x[n]$($n \ge 0$)仮定する特解 $y_p[n]$
$A$(定数、たとえばステップ)$K$
$A\,\alpha^{\,n}$$K\,\alpha^{\,n}$
$A\,n^{p}$$K_0 + K_1 n + \cdots + K_p n^{p}$
$A\cos\omega_0 n$ または $A\sin\omega_0 n$$K_1\cos\omega_0 n + K_2 \sin\omega_0 n$
$A\,\alpha^{\,n}$ で $\alpha$ が特性根と一致する場合$K\,n\,\alpha^{\,n}$($n$ を掛ける)

Substitute the assumed form into the LCCDE and solve for $K$ by matching coefficients.

把假設的形式代回差分方程,比對係數即可解出 $K$。

仮定した形を差分方程式に代入し、係数を比較して $K$ を求める。

Resonance trap
共振陷阱
共振の落とし穴
If the input happens to match one of the natural modes ($\alpha = \lambda_k$), the plain guess $K\alpha^n$ fails — it already satisfies the homogeneous equation, so substituting it yields $0 = \text{something}$. In that case multiply the trial solution by $n$ (and by $n^2$ for a double coincidence), exactly as in differential equations.若輸入恰好與其中一個自然模態相符($\alpha = \lambda_k$),則單純的猜測 $K\alpha^n$ 會失效——它本身已滿足齊次方程,代入後得到 $0 = \text{某值}$。此時將試解乘上 $n$(若為雙重重合則再乘 $n^2$),做法與微分方程中完全相同。入力がたまたま固有モードの一つと一致する場合($\alpha = \lambda_k$)、単純な試行解 $K\alpha^n$ は破綻する——それ自体がすでに斉次方程式を満たしているため、代入すると $0 = \text{something}$ になってしまう。その場合は、微分方程式のときとまったく同じように、試行解に $n$ を掛ける(二重に一致していれば $n^2$ を掛ける)。
共振陷阱範例:為什麼要乘 $n$(點擊展開)

考慮一階系統,輸入的底數 $\alpha = 3$ 剛好等於特徵根 $\lambda = 3$:

$$y[n] - 3\,y[n-1] = 3^{\,n}, \qquad n \ge 0.$$

先看錯誤的猜測 $y_p[n] = K\,3^{\,n}$。代入左式:

$$K\,3^{\,n} - 3\!\cdot\! K\,3^{\,n-1} = K\,3^{\,n} - K\,3^{\,n} = 0 .$$

但右式是 $3^{\,n}\neq 0$,於是得到矛盾 $0 = 3^{\,n}$——這就是「$0 = \text{某值}$」。原因是 $3^{\,n}$ 本身就是自然模態,已滿足齊次方程 $y[n]-3y[n-1]=0$,永遠打不出非零的右式。

正確做法:乘上 $n$,試 $y_p[n] = K\,n\,3^{\,n}$。代入:

$$K\,n\,3^{\,n} - 3\!\cdot\! K\,(n\!-\!1)\,3^{\,n-1} = K\,3^{\,n}\big[\,n-(n\!-\!1)\,\big] = K\,3^{\,n}.$$

令其等於右式 $3^{\,n}$,得 $K = 1$,故特解為

$$\boxed{\,y_p[n] = n\,3^{\,n}\,}.$$

多出來的因子 $n$ 讓試解「跳出」齊次解的空間,代入後才會殘留非零項來對應輸入。若特徵根為雙重根($\lambda$ 重複兩次)且輸入又是同一個模態,則要乘 $n^2$;一般而言重合 $m$ 重就乘 $n^m$。這與微分方程中遇到重根/共振時乘 $t$、$t^2$ 的規則完全對應。

3.2.3 Total solution recipe3.2.3 全解的解題流程3.2.3 全解の手順

LCCDE solving summary(解題流程)
解 LCCDE 的流程整理
差分方程式の解法まとめ
  1. Write the characteristic equation; find roots $\lambda_1,\dots,\lambda_N$ → form $y_c[n]$ with unknown $C_k$.
  2. Assume $y_p[n]$ from the input-form table; substitute into the LCCDE to fix its constants.
  3. Write $y[n] = y_c[n] + y_p[n]$, valid for $n \ge 0$.
  4. Generate $y[0], y[1], \dots, y[N-1]$ by iterating the recursion itself from the given $y[-1],\dots,y[-N]$.
  5. Match these values against step 3 to solve for $C_1,\dots,C_N$.
  1. 寫出特徵方程,求根 $\lambda_1,\dots,\lambda_N$ → 組出含未知數 $C_k$ 的 $y_c[n]$。
  2. 依輸入形式表假設 $y_p[n]$,代入差分方程定出它的常數。
  3. 寫出 $y[n] = y_c[n] + y_p[n]$,在 $n \ge 0$ 成立。
  4. 從給定的 $y[-1],\dots,y[-N]$ 出發,直接迭代遞迴式本身算出 $y[0], y[1], \dots, y[N-1]$。
  5. 把這些數值與第 3 步的式子比對,解出 $C_1,\dots,C_N$。
  1. 特性方程式を書き、根 $\lambda_1,\dots,\lambda_N$ を求める → 未知数 $C_k$ を含む $y_c[n]$ を組み立てる。
  2. 入力形の表から $y_p[n]$ を仮定し、差分方程式に代入してその定数を決める。
  3. $y[n] = y_c[n] + y_p[n]$ と書く。これは $n \ge 0$ で成り立つ。
  4. 与えられた $y[-1],\dots,y[-N]$ から漸化式そのものを反復して $y[0], y[1], \dots, y[N-1]$ を生成する。
  5. これらの値を手順 3 の式と突き合わせ、$C_1,\dots,C_N$ を解く。
直觀解釋(點擊展開)
把 LCCDE 想成一個有「個性」的系統:齊次解 $y_c[n]$ 是系統的本性(自然響應),完全由特徵根決定,跟輸入無關;特解 $y_p[n]$ 是系統被輸入強迫出來的反應(強迫響應),形狀跟著輸入走。常數 $C_k$ 最後才用初始條件決定,是因為初始條件作用在「總和」上,不是只作用在齊次解上——這是最常見的計算錯誤。求 $y[0], y[1]$ 時直接用遞迴式往前算最保險。

3.2.4 Worked example3.2.4 完整範例3.2.4 例題

Example 3.1 — Second-order LCCDE with a step input範例 3.1 —— 二階差分方程配上步階輸入例題 3.1 —— ステップ入力をもつ 2 次差分方程式

Solve, for $n \ge 0$:

對 $n \ge 0$ 求解:

$n \ge 0$ について解け:

$$y[n] + y[n-1] - 12\,y[n-2] = x[n], \qquad x[n] = 10\,u[n], \qquad y[-1] = -1,\;\; y[-2] = -\tfrac12 .$$
Step 1 — characteristic roots. $\lambda^2 + \lambda - 12 = 0 \Rightarrow (\lambda+4)(\lambda-3)=0 \Rightarrow \lambda_1 = -4,\ \lambda_2 = 3$. So $y_c[n] = C_1(-4)^n + C_2\, 3^n$.
第 1 步 —— 特徵根。$\lambda^2 + \lambda - 12 = 0 \Rightarrow (\lambda+4)(\lambda-3)=0 \Rightarrow \lambda_1 = -4,\ \lambda_2 = 3$。所以 $y_c[n] = C_1(-4)^n + C_2\, 3^n$。
手順 1 —— 特性根。$\lambda^2 + \lambda - 12 = 0 \Rightarrow (\lambda+4)(\lambda-3)=0 \Rightarrow \lambda_1 = -4,\ \lambda_2 = 3$。したがって $y_c[n] = C_1(-4)^n + C_2\, 3^n$。
Step 2 — particular solution. The input is a constant $10$ for $n\ge 0$, so try $y_p[n] = K$: $$K + K - 12K = 10 \;\Rightarrow\; -10K = 10 \;\Rightarrow\; K = -1 .$$
第 2 步 —— 特解。$n\ge 0$ 時輸入是常數 $10$,所以試 $y_p[n] = K$: $$K + K - 12K = 10 \;\Rightarrow\; -10K = 10 \;\Rightarrow\; K = -1 .$$
手順 2 —— 特解。$n\ge 0$ では入力は定数 $10$ なので、$y_p[n] = K$ と置いてみる: $$K + K - 12K = 10 \;\Rightarrow\; -10K = 10 \;\Rightarrow\; K = -1 .$$
Step 3 — total form. $y[n] = C_1(-4)^n + C_2\,3^n - 1$ for $n \ge 0$.
第 3 步 —— 全解形式。$n \ge 0$ 時 $y[n] = C_1(-4)^n + C_2\,3^n - 1$。
手順 3 —— 全解の形。$n \ge 0$ において $y[n] = C_1(-4)^n + C_2\,3^n - 1$。
Step 4 — iterate the recursion for $y[0], y[1]$. Using $y[n] = x[n] - y[n-1] + 12y[n-2]$: $$\begin{aligned} y[0] &= 10 - y[-1] + 12\,y[-2] = 10 + 1 - 6 = 5\\ y[1] &= 10 - y[0] + 12\,y[-1] = 10 - 5 - 12 = -7 \end{aligned}$$
第 4 步 —— 迭代遞迴式求 $y[0]$、$y[1]$。用 $y[n] = x[n] - y[n-1] + 12y[n-2]$: $$\begin{aligned} y[0] &= 10 - y[-1] + 12\,y[-2] = 10 + 1 - 6 = 5\\ y[1] &= 10 - y[0] + 12\,y[-1] = 10 - 5 - 12 = -7 \end{aligned}$$
手順 4 —— 漸化式を反復して $y[0], y[1]$ を求める。$y[n] = x[n] - y[n-1] + 12y[n-2]$ を用いると: $$\begin{aligned} y[0] &= 10 - y[-1] + 12\,y[-2] = 10 + 1 - 6 = 5\\ y[1] &= 10 - y[0] + 12\,y[-1] = 10 - 5 - 12 = -7 \end{aligned}$$
Step 5 — match constants. $$\begin{aligned} n=0:&\quad C_1 + C_2 - 1 = 5 &&\Rightarrow\; C_1 + C_2 = 6\\ n=1:&\quad -4C_1 + 3C_2 - 1 = -7 &&\Rightarrow\; -4C_1 + 3C_2 = -6 \end{aligned}$$ Solving: $C_1 = \tfrac{24}{7}$, $C_2 = \tfrac{18}{7}$.
第 5 步 —— 比對常數。 $$\begin{aligned} n=0:&\quad C_1 + C_2 - 1 = 5 &&\Rightarrow\; C_1 + C_2 = 6\\ n=1:&\quad -4C_1 + 3C_2 - 1 = -7 &&\Rightarrow\; -4C_1 + 3C_2 = -6 \end{aligned}$$ 解得:$C_1 = \tfrac{24}{7}$、$C_2 = \tfrac{18}{7}$。
手順 5 —— 定数を合わせる。 $$\begin{aligned} n=0:&\quad C_1 + C_2 - 1 = 5 &&\Rightarrow\; C_1 + C_2 = 6\\ n=1:&\quad -4C_1 + 3C_2 - 1 = -7 &&\Rightarrow\; -4C_1 + 3C_2 = -6 \end{aligned}$$ これを解いて $C_1 = \tfrac{24}{7}$、$C_2 = \tfrac{18}{7}$。
Result. $$\boxed{\,y[n] = \tfrac{24}{7}(-4)^n + \tfrac{18}{7}\,3^n - 1, \qquad n \ge 0\,}$$ Check by recursion: $y[2] = 10 - (-7) + 12(5) = 77$, and the formula gives $\tfrac{24}{7}(16) + \tfrac{18}{7}(9) - 1 = \tfrac{546}{7} - 1 = 77$. ✓
結果。 $$\boxed{\,y[n] = \tfrac{24}{7}(-4)^n + \tfrac{18}{7}\,3^n - 1, \qquad n \ge 0\,}$$ 用遞迴式驗算:$y[2] = 10 - (-7) + 12(5) = 77$,而公式給出 $\tfrac{24}{7}(16) + \tfrac{18}{7}(9) - 1 = \tfrac{546}{7} - 1 = 77$。✓
結果。 $$\boxed{\,y[n] = \tfrac{24}{7}(-4)^n + \tfrac{18}{7}\,3^n - 1, \qquad n \ge 0\,}$$ 漸化式で検算すると $y[2] = 10 - (-7) + 12(5) = 77$ であり、閉じた式からは $\tfrac{24}{7}(16) + \tfrac{18}{7}(9) - 1 = \tfrac{546}{7} - 1 = 77$ が得られる。✓
MATLAB check
MATLAB 驗證
MATLAB による確認
This exact system is what filter/filtic simulate: a = [1 1 -12]; b = 1; zi = filtic(b,a,[-1 -0.5]); y = filter(b,a,10*ones(1,5),zi) returns 5  -7  77  -151  1085 — matching the closed form. Exercise 3 repeats this workflow on the homework system.這正是 filter/filtic 所模擬的系統:a = [1 1 -12]; b = 1; zi = filtic(b,a,[-1 -0.5]); y = filter(b,a,10*ones(1,5),zi) 會回傳 5  -7  77  -151  1085 —— 與封閉解一致。習題 3 會把同一套流程用在作業的系統上。まさにこの系を filter/filtic がシミュレートする:a = [1 1 -12]; b = 1; zi = filtic(b,a,[-1 -0.5]); y = filter(b,a,10*ones(1,5),zi) は 5  -7  77  -151  1085 を返し、閉じた式と一致する。演習 3 では同じ手順を宿題の系に対して繰り返す。

3.3 Zero-Input and Zero-State Response3.3 零輸入響應與零狀態響應3.3 零入力応答と零状態応答

The same total response can be split a different way, by cause instead of by mathematical form:

同樣一條全響應還可以用另一種方式拆開——不是依數學形式,而是依「成因」來分:

同じ全応答は、数学的な形ではなく「原因」によって、別のやり方で分解することもできる:

Zero-input / zero-state decomposition 零輸入/零狀態分解零入力/零状態分解 $$y[n] \;=\; \underbrace{y_{zi}[n]}_{\substack{\text{zero-input response}\\ \text{ICs act, } x[n]=0}} \;+\; \underbrace{y_{zs}[n]}_{\substack{\text{zero-state response}\\ \text{ICs}=0,\ x[n] \text{ acts}}}$$

A classic exam point: a system given non-zero initial conditions is not LTI (the stored state destroys both linearity and time invariance), but its zero-state part $y_{zs}[n]$ is. Only when all initial conditions are zero (the system is at rest) does the convolution relation $y_{zs}[n] = x[n]*h[n]$ hold.

考試常考:給了非零初始條件的系統不是 LTI(線性性與時不變性會被初始狀態破壞),但它的零狀態部分 $y_{zs}[n]$ 才是 LTI——唯有在初始條件全為零(系統靜止)時,系統才滿足 $y_{zs}[n] = x[n]*h[n]$ 這個卷積關係。

試験でよく問われる点:非零の初期条件を与えられた系は LTI でない(蓄えられた状態が線形性も時不変性も壊す)が、その零状態部分 $y_{zs}[n]$ は LTI である。初期条件がすべて零(系が静止)のときに限り、畳み込みの関係 $y_{zs}[n] = x[n]*h[n]$ が成り立つ。

yzi ≠ yc in general
一般而言 yzi ≠ yc
一般に yzi ≠ yc
Zero-input vs zero-state is not the same split as complementary vs particular. Both $y_{zi}$ and $y_{zs}$ contain natural-mode terms $\lambda_k^n$; only their constants differ. The identities are: $y_c = y_{zi} + (\text{mode part of } y_{zs})$ and $y_p = (\text{forced part of } y_{zs})$.零輸入/零狀態的拆法,與齊次解/特解的拆法不是同一回事。$y_{zi}$ 與 $y_{zs}$ 都含有自然模態項 $\lambda_k^n$,差別只在係數。兩者的關係是:$y_c = y_{zi} + (y_{zs}$ 中的模態部分$)$,而 $y_p = (y_{zs}$ 中的受迫部分$)$。零入力/零状態という分け方は、斉次解/特解という分け方と同じではない。$y_{zi}$ と $y_{zs}$ はどちらも固有モード項 $\lambda_k^n$ を含み、違うのは係数だけである。関係式は $y_c = y_{zi} + (\text{mode part of } y_{zs})$ および $y_p = (\text{forced part of } y_{zs})$ となる。
Example 3.2 — Decomposing Example 3.1範例 3.2 —— 把範例 3.1 拆開例題 3.2 —— 例題 3.1 を分解する
Zero-input part — solve $y[n]+y[n-1]-12y[n-2]=0$ with $y[-1]=-1$, $y[-2]=-\tfrac12$. Write $y_{zi}[n] = C_1(-4)^n + C_2 3^n$ and impose the conditions at $n=-1,-2$: $$-\tfrac{C_1}{4} + \tfrac{C_2}{3} = -1, \qquad \tfrac{C_1}{16} + \tfrac{C_2}{9} = -\tfrac12 \;\;\Rightarrow\;\; C_1 = -\tfrac{8}{7},\;\; C_2 = -\tfrac{27}{7}$$ $$y_{zi}[n] = -\tfrac{8}{7}(-4)^n - \tfrac{27}{7}\,3^n$$
零輸入部分 —— 在 $y[-1]=-1$、$y[-2]=-\tfrac12$ 下解 $y[n]+y[n-1]-12y[n-2]=0$。寫成 $y_{zi}[n] = C_1(-4)^n + C_2 3^n$,並在 $n=-1,-2$ 代入條件: $$-\tfrac{C_1}{4} + \tfrac{C_2}{3} = -1, \qquad \tfrac{C_1}{16} + \tfrac{C_2}{9} = -\tfrac12 \;\;\Rightarrow\;\; C_1 = -\tfrac{8}{7},\;\; C_2 = -\tfrac{27}{7}$$ $$y_{zi}[n] = -\tfrac{8}{7}(-4)^n - \tfrac{27}{7}\,3^n$$
零入力部分 —— $y[-1]=-1$、$y[-2]=-\tfrac12$ のもとで $y[n]+y[n-1]-12y[n-2]=0$ を解く。$y_{zi}[n] = C_1(-4)^n + C_2 3^n$ と書き、$n=-1,-2$ で条件を課すと: $$-\tfrac{C_1}{4} + \tfrac{C_2}{3} = -1, \qquad \tfrac{C_1}{16} + \tfrac{C_2}{9} = -\tfrac12 \;\;\Rightarrow\;\; C_1 = -\tfrac{8}{7},\;\; C_2 = -\tfrac{27}{7}$$ $$y_{zi}[n] = -\tfrac{8}{7}(-4)^n - \tfrac{27}{7}\,3^n$$
Zero-state part — same input $10u[n]$ but rest conditions $y[-1]=y[-2]=0$. Then $y_{zs}[0] = 10$, $y_{zs}[1] = 10 - 10 = 0$, and with $y_{zs}[n] = D_1(-4)^n + D_2 3^n - 1$: $$D_1 + D_2 = 11, \qquad -4D_1 + 3D_2 = 1 \;\;\Rightarrow\;\; D_1 = \tfrac{32}{7},\;\; D_2 = \tfrac{45}{7}$$ $$y_{zs}[n] = \tfrac{32}{7}(-4)^n + \tfrac{45}{7}\,3^n - 1$$
零狀態部分 —— 同樣的輸入 $10u[n]$,但改用靜止條件 $y[-1]=y[-2]=0$。於是 $y_{zs}[0] = 10$、$y_{zs}[1] = 10 - 10 = 0$,配合 $y_{zs}[n] = D_1(-4)^n + D_2 3^n - 1$: $$D_1 + D_2 = 11, \qquad -4D_1 + 3D_2 = 1 \;\;\Rightarrow\;\; D_1 = \tfrac{32}{7},\;\; D_2 = \tfrac{45}{7}$$ $$y_{zs}[n] = \tfrac{32}{7}(-4)^n + \tfrac{45}{7}\,3^n - 1$$
零状態部分 —— 入力は同じ $10u[n]$ だが、静止条件 $y[-1]=y[-2]=0$ を用いる。すると $y_{zs}[0] = 10$、$y_{zs}[1] = 10 - 10 = 0$ となり、$y_{zs}[n] = D_1(-4)^n + D_2 3^n - 1$ と併せて: $$D_1 + D_2 = 11, \qquad -4D_1 + 3D_2 = 1 \;\;\Rightarrow\;\; D_1 = \tfrac{32}{7},\;\; D_2 = \tfrac{45}{7}$$ $$y_{zs}[n] = \tfrac{32}{7}(-4)^n + \tfrac{45}{7}\,3^n - 1$$
Check. $y_{zi} + y_{zs} = \left(-\tfrac{8}{7}+\tfrac{32}{7}\right)(-4)^n + \left(-\tfrac{27}{7}+\tfrac{45}{7}\right)3^n - 1 = \tfrac{24}{7}(-4)^n + \tfrac{18}{7}3^n - 1$ — exactly Example 3.1. ✓
驗算。$y_{zi} + y_{zs} = \left(-\tfrac{8}{7}+\tfrac{32}{7}\right)(-4)^n + \left(-\tfrac{27}{7}+\tfrac{45}{7}\right)3^n - 1 = \tfrac{24}{7}(-4)^n + \tfrac{18}{7}3^n - 1$ —— 正是範例 3.1 的答案。✓
検算。$y_{zi} + y_{zs} = \left(-\tfrac{8}{7}+\tfrac{32}{7}\right)(-4)^n + \left(-\tfrac{27}{7}+\tfrac{45}{7}\right)3^n - 1 = \tfrac{24}{7}(-4)^n + \tfrac{18}{7}3^n - 1$ —— まさに例題 3.1 の答えである。✓
直觀解釋(點擊展開)
零輸入/零狀態是按「能量來源」分:$y_{zi}$ 是系統裡原本存的能量(初始條件)自己放出來的反應;$y_{zs}$ 是外部輸入打進來造成的反應。因為系統是線性的,兩個原因可以分開算再相加(疊加原理)。注意只有 $y_{zs}$ 才等於 $x[n]*h[n]$ ——卷積描述的是「初始鬆弛」系統。考試常考:給初始條件的系統不是 LTI,但它的零狀態部分是。

3.4 Impulse Response of LCCDEs3.4 線性常係數差分方程的脈衝響應3.4 線形定係数差分方程式のインパルス応答

3.4.1 Impulse response from a difference equation3.4.1 由差分方程求脈衝響應3.4.1 差分方程式からインパルス応答を求める

The impulse response is the zero-state response to $x[n] = \delta[n]$. For a recursive LCCDE, the simplest route is to iterate the recursion with rest initial conditions; for low orders the closed form follows from the natural modes, since for $n > M$ the input terms vanish and $h[n]$ must be a pure combination of modes:

脈衝響應就是對 $x[n] = \delta[n]$ 的零狀態響應。對遞迴型差分方程而言,最簡單的路徑是在靜止初始條件下迭代遞迴式;階數低時,封閉解可以直接由自然模態寫出來,因為 $n > M$ 之後輸入項全部消失,$h[n]$ 必定是模態的純粹組合:

インパルス応答とは、$x[n] = \delta[n]$ に対する零状態応答のことである。再帰型の差分方程式では、静止初期条件のもとで漸化式を反復するのが最も簡単な道筋である。次数が低ければ閉じた形は固有モードから直ちに得られる。$n > M$ では入力項が消え、$h[n]$ はモードの純粋な組合せでなければならないからである:

Impulse response of a causal LCCDE (distinct roots, n > M) 因果 LCCDE 的脈衝響應(相異根,n > M)因果的 LCCDE のインパルス応答(相異なる根、n > M) $$h[n] = \sum_{k=1}^{N} C_k\, \lambda_k^{\,n}$$
Example 3.3 — First-order recursive system範例 3.3 —— 一階遞迴系統例題 3.3 —— 1 次の再帰系

$y[n] = a\,y[n-1] + x[n]$, initially at rest, $x[n]=\delta[n]$.

$y[n] = a\,y[n-1] + x[n]$,初始靜止,$x[n]=\delta[n]$。

$y[n] = a\,y[n-1] + x[n]$、初期静止、$x[n]=\delta[n]$。

Iterate: $h[0] = a\cdot 0 + 1 = 1$,   $h[1] = a\cdot 1 = a$,   $h[2] = a^2$, …
迭代:$h[0] = a\cdot 0 + 1 = 1$、  $h[1] = a\cdot 1 = a$、  $h[2] = a^2$、……
反復すると:$h[0] = a\cdot 0 + 1 = 1$、  $h[1] = a\cdot 1 = a$、  $h[2] = a^2$、……
Result: $\;\boxed{h[n] = a^{\,n} u[n]}\;$ — one natural mode $\lambda = a$, infinitely long: this single feedback tap creates an IIR system.
結果:$\;\boxed{h[n] = a^{\,n} u[n]}\;$ —— 只有一個自然模態 $\lambda = a$,長度無限:光是這一個回授分支就造出了一個 IIR 系統。
結果:$\;\boxed{h[n] = a^{\,n} u[n]}\;$ —— 固有モードは $\lambda = a$ の一つだけだが、長さは無限である。この帰還タップ 1 本だけで IIR 系になる。
2026-06-12T22:19:59.229919 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/ 0 5 10 15 20 n 0.0 0.2 0.4 0.6 0.8 1.0 h[n] Impulse response h[n] = (0.8)ⁿ u[n] 0 5 10 15 20 n 0 1 2 3 4 5 s[n] Step response → steady state 1/(1−0.8) = 5
Fig. 3-3 — Impulse response $h[n]=(0.8)^n u[n]$ and step response of $y[n] = 0.8\,y[n-1] + x[n]$, computed with scipy.signal.lfilter. The step response is the running sum of $h[n]$ and settles to $\sum_n h[n] = \frac{1}{1-0.8} = 5$.
圖 3-3 — $y[n] = 0.8\,y[n-1] + x[n]$ 的脈衝響應 $h[n]=(0.8)^n u[n]$ 與步階響應,以 scipy.signal.lfilter 計算。步階響應是 $h[n]$ 的連續和,最後穩定在直流增益 $\sum_n h[n] = \frac{1}{1-0.8} = 5$。
図 3-3 — $y[n] = 0.8\,y[n-1] + x[n]$ のインパルス応答 $h[n]=(0.8)^n u[n]$ とステップ応答。scipy.signal.lfilter で計算した。ステップ応答は $h[n]$ の累積和であり、$\sum_n h[n] = \frac{1}{1-0.8} = 5$ に落ち着く。

3.4.2 FIR vs IIR3.4.2 FIR 與 IIR3.4.2 FIR と IIR

The structure of the LCCDE determines the impulse-response length:

差分方程的結構決定了脈衝響應的長度:

差分方程式の構造が、インパルス応答の長さを決める:

FIR — Finite Impulse Response(有限脈衝響應)IIR — Infinite Impulse Response(無限脈衝響應)
LCCDE$N = 0$ (non-recursive)$N \ge 1$ (recursive)
Impulse response$h[n] = b_n$ for $0 \le n \le M$, else $0$ — length $M+1$combination of modes $\lambda_k^n$, lasts forever
Stabilityalways BIBO stablestable iff all $|\lambda_k| < 1$
Implementationconvolution = the LCCDE itselfmust use recursion (convolution would never end)
Memory of the pastexactly $M$ samplesfading but unlimited
FIR —— 有限脈衝響應(finite impulse response)IIR —— 無限脈衝響應(infinite impulse response)
差分方程$N = 0$(非遞迴)$N \ge 1$(遞迴)
脈衝響應$0 \le n \le M$ 時 $h[n] = b_n$,其餘為 $0$ —— 長度 $M+1$模態 $\lambda_k^n$ 的組合,永遠持續下去
穩定性必定 BIBO 穩定穩定的充要條件是所有 $|\lambda_k| < 1$
實作方式卷積本身就是那條差分方程必須用遞迴(卷積永遠算不完)
對過去的記憶恰好 $M$ 個樣本逐漸淡去但無上限
FIR —— 有限インパルス応答(finite impulse response)IIR —— 無限インパルス応答(infinite impulse response)
差分方程式$N = 0$(非再帰)$N \ge 1$(再帰)
インパルス応答$0 \le n \le M$ で $h[n] = b_n$、それ以外は $0$ —— 長さ $M+1$モード $\lambda_k^n$ の組合せで、いつまでも続く
安定性つねに BIBO 安定すべての $|\lambda_k| < 1$ が成り立つときに限り安定
実装畳み込みがそのまま差分方程式再帰を使うしかない(畳み込みは終わらない)
過去の記憶ちょうど $M$ 標本薄れていくが上限はない
Read h[n] directly off a non-recursive LCCDE
非遞迴差分方程可以直接讀出 h[n]
非再帰型の差分方程式からは h[n] を直接読み取れる
For $y[n] = \sum_{k=0}^{M} b_k\,x[n-k]$, substituting $x = \delta$ gives $h[n] = \sum_k b_k \delta[n-k]$, i.e. the coefficients are the impulse response: $h = \{b_0, b_1, \dots, b_M\}$. Example: the 5-point moving average has $h[n] = \tfrac15$ for $0 \le n \le 4$.對 $y[n] = \sum_{k=0}^{M} b_k\,x[n-k]$,代入 $x = \delta$ 得 $h[n] = \sum_k b_k \delta[n-k]$,也就是說係數本身就是脈衝響應:$h = \{b_0, b_1, \dots, b_M\}$。例如 5 點移動平均在 $0 \le n \le 4$ 上有 $h[n] = \tfrac15$。$y[n] = \sum_{k=0}^{M} b_k\,x[n-k]$ に $x = \delta$ を代入すると $h[n] = \sum_k b_k \delta[n-k]$ となる。つまり係数そのものがインパルス応答である:$h = \{b_0, b_1, \dots, b_M\}$。例として、5 点移動平均は $0 \le n \le 4$ で $h[n] = \tfrac15$ をもつ。
Recursive ≠ IIR in every case
遞迴不等於一定是 IIR
再帰型が必ず IIR とは限らない
Recursive implementation and infinite impulse response usually go together, but not always: $y[n] = y[n-1] + \tfrac{1}{L}\big(x[n] - x[n-L]\big)$ is a recursive way to compute the FIR moving average. The honest statement: $N\ge 1$ generally gives IIR, unless pole-zero cancellation occurs.遞迴實作與無限脈衝響應通常結伴出現,但並非總是如此:$y[n] = y[n-1] + \tfrac{1}{L}\big(x[n] - x[n-L]\big)$ 就是用遞迴的方式來計算 FIR 移動平均。誠實的說法是:$N\ge 1$ 通常給出 IIR,除非發生極零點對消。再帰的な実装と無限インパルス応答はたいてい同時に現れるが、つねにそうとは限らない。$y[n] = y[n-1] + \tfrac{1}{L}\big(x[n] - x[n-L]\big)$ は、FIR の移動平均を再帰的に計算する方法である。正確に言えば、$N\ge 1$ は一般には IIR を与えるが、極零相殺が起これば話は別である。

3.5 Stability3.5 穩定性3.5 安定性

A system is BIBO stable(有界輸入有界輸出穩定) if every bounded input produces a bounded output: $|x[n]| \le B_x < \infty$ for all $n$ implies $|y[n]| \le B_y < \infty$ for all $n$.

一個系統是 BIBO 穩定(有界輸入有界輸出穩定)的,如果每一個有界輸入都產生有界輸出:對所有 $n$ 有 $|x[n]| \le B_x < \infty$,就能推出對所有 $n$ 有 $|y[n]| \le B_y < \infty$。

ある系が BIBO 安定(有界入力有界出力安定)であるとは、任意の有界入力が有界出力を生むことをいう。すなわち、すべての $n$ について $|x[n]| \le B_x < \infty$ であれば、すべての $n$ について $|y[n]| \le B_y < \infty$ が成り立つ。

For an LTI system, $|y[n]| = \big|\sum_k h[k]x[n-k]\big| \le B_x \sum_k |h[k]|$, which yields the complete characterization:

對 LTI 系統而言,$|y[n]| = \big|\sum_k h[k]x[n-k]\big| \le B_x \sum_k |h[k]|$,由此得到完整的判準:

LTI 系では $|y[n]| = \big|\sum_k h[k]x[n-k]\big| \le B_x \sum_k |h[k]|$ が成り立ち、ここから完全な判定条件が得られる:

BIBO stability ⇔ absolutely summable impulse response BIBO 穩定 ⇔ 脈衝響應絕對可和BIBO 安定性 ⇔ インパルス応答が絶対総和可能 $$S \;=\; \sum_{k=-\infty}^{\infty} \big|h[k]\big| \;<\; \infty$$

The condition is also necessary: if $S = \infty$, the bounded "worst-case" input $x[n] = \operatorname{sgn}\!\big(h[-n]\big)$ makes $y[0] = \sum_k |h[k]|$ blow up.

這個條件同時也是必要的:若 $S = \infty$,取有界的「最壞情況」輸入 $x[n] = \operatorname{sgn}\!\big(h[-n]\big)$,就會讓 $y[0] = \sum_k |h[k]|$ 發散。

この条件は必要でもある:$S = \infty$ ならば、有界な「最悪の場合」の入力 $x[n] = \operatorname{sgn}\!\big(h[-n]\big)$ をとれば $y[0] = \sum_k |h[k]|$ が発散してしまう。

Example 3.4 — Stability of h[n] = aⁿu[n]範例 3.4 —— h[n] = aⁿu[n] 的穩定性例題 3.4 —— h[n] = aⁿu[n] の安定性
$\displaystyle S = \sum_{n=0}^{\infty} |a|^n = \frac{1}{1-|a|}$ when $|a| < 1$ (finite → stable); the geometric series diverges when $|a| \ge 1$ (unstable — note $|a|=1$ is also unstable: a step input into the accumulator $y[n]=y[n-1]+x[n]$ grows like $n$).
當 $|a| < 1$ 時 $\displaystyle S = \sum_{n=0}^{\infty} |a|^n = \frac{1}{1-|a|}$(有限 → 穩定);當 $|a| \ge 1$ 時這個等比級數發散(不穩定——注意 $|a|=1$ 也是不穩定:把步階輸入送進累加器 $y[n]=y[n-1]+x[n]$,輸出會像 $n$ 一樣成長)。
$|a| < 1$ のとき $\displaystyle S = \sum_{n=0}^{\infty} |a|^n = \frac{1}{1-|a|}$(有限 → 安定)。$|a| \ge 1$ では等比級数が発散する(不安定——$|a|=1$ も不安定であることに注意。累算器 $y[n]=y[n-1]+x[n]$ にステップ入力を入れると、出力は $n$ のように増大する)。
Stability of causal LCCDE systems(特徵根判穩)
因果 LCCDE 系統的穩定性(特徵根判穩)
因果的 LCCDE 系の安定性(特性根による判定)
Because $h[n]$ is built from the natural modes $\lambda_k^{\,n}$, a causal LCCDE system is BIBO stable iff every characteristic root lies strictly inside the unit circle: $$|\lambda_k| < 1 \quad \text{for all } k=1,\dots,N.$$ Compare Fig. 3-2: the $\lambda = 1.1$ mode grows without bound — one bad root ruins the whole system. (In Chapter 5's z-transform language, the $\lambda_k$ are the poles.)因為 $h[n]$ 是由自然模態 $\lambda_k^{\,n}$ 組成的,所以一個因果的差分方程系統為 BIBO 穩定的充要條件是每一個特徵根都嚴格落在單位圓內: $$|\lambda_k| < 1 \quad \text{對所有 } k=1,\dots,N.$$ 對照圖 3-2:$\lambda = 1.1$ 那個模態無界成長 —— 一個壞根就毀了整個系統。(用第 5 章 z 轉換的語言來說,這些 $\lambda_k$ 就是極點。)$h[n]$ は固有モード $\lambda_k^{\,n}$ から組み立てられるので、因果的な差分方程式系が BIBO 安定である必要十分条件は、すべての特性根が単位円の内部に厳密に存在することである: $$|\lambda_k| < 1 \quad \text{for all } k=1,\dots,N.$$ 図 3-2 と比べてみよう:$\lambda = 1.1$ のモードは際限なく増大する——根が一つ悪いだけで系全体が台無しになる。(第 5 章の z 変換の言葉でいえば、この $\lambda_k$ が極である。)
Quick second-order check
二階系統的快速檢查法
2 次系の手早い判定法
For $\lambda^2 + a_1\lambda + a_2 = 0$, both roots are inside the unit circle iff $|a_2| < 1$ and $|a_1| < 1 + a_2$ (the stability triangle). Example 3.1 has $a_1 = 1, a_2 = -12$: $|a_2| = 12 \ge 1$ → unstable, consistent with its roots $-4$ and $3$.對 $\lambda^2 + a_1\lambda + a_2 = 0$,兩個根都在單位圓內的充要條件是 $|a_2| < 1$ 且 $|a_1| < 1 + a_2$(穩定三角形)。範例 3.1 中 $a_1 = 1$、$a_2 = -12$:$|a_2| = 12 \ge 1$ → 不穩定,與它的根 $-4$ 和 $3$ 一致。$\lambda^2 + a_1\lambda + a_2 = 0$ については、両根が単位円の内部にある必要十分条件は $|a_2| < 1$ かつ $|a_1| < 1 + a_2$ である(安定三角形)。例題 3.1 では $a_1 = 1, a_2 = -12$ であり、$|a_2| = 12 \ge 1$ → 不安定。根が $-4$ と $3$ であることと整合している。
跟數位控制(Digital Control)有什麼關係?(點擊展開)

這一整章其實就是數位控制器的數學本體。對應關係:

1. LCCDE = 數位控制器本身。數位控制器 $D(z)$ 落到硬體(MCU / DSP / FPGA)上執行時,就是一條差分方程的遞迴計算式:

$$u[n] = -\sum_{k=1}^{N} a_k\,u[n-k] + \sum_{k=0}^{M} b_k\,e[n-k]$$

每個取樣時刻拿過去的 $u$、$e$ 算出當前輸出 $u[n]$ —— 正是 §3.1 的 recursive computational form。數位 PID(position / velocity form)就是這個。

2. 特徵根 $\lambda_k$ = z 平面的極點。本節「特徵根判穩」的 $\lambda_k$,換到第 5 章 z-transform 語言就寫成極點 $z_k$。連續系統看「極點在左半平面($\operatorname{Re}<0$)」;離散/數位系統看「極點在單位圓內($|\lambda_k|<1$)」 —— 兩者由 $z=e^{sT}$ 對映。這裡的 BIBO 穩定條件,就是數位控制的閉迴路穩定條件。

用 s domain 一起看:模態的取樣就是 $z=e^{sT}$ 的由來。

連續系統的自然模態是 $e^{s_k t}$($s_k$ 是 Laplace/s 平面的極點)。以週期 $T$ 取樣,令 $t=nT$:

$$e^{s_k t}\Big|_{t=nT} = \big(e^{s_k T}\big)^{n} = \lambda_k^{\,n}, \qquad \boxed{\;\lambda_k = e^{s_k T}\;}$$

所以本章的離散模態 $\lambda_k^{\,n}$ 就是連續模態 $e^{s_k t}$ 的取樣版,$s$ 平面極點與 $z$ 平面極點由 $z=e^{sT}$ 一一對映。穩定區域也跟著搬:

s 平面(連續) $z=e^{sT}$ → z 平面(數位) 模態行為
左半平面 $\operatorname{Re}(s)<0$ 單位圓內 $|\lambda|<1$ 衰減 → 穩定
虛軸 $\operatorname{Re}(s)=0$ 單位圓上 $|\lambda|=1$ 臨界 / 等幅振盪
右半平面 $\operatorname{Re}(s)>0$ 單位圓外 $|\lambda|>1$ 發散 → 不穩定

因此「s 平面看左半平面、z 平面看單位圓內」講的是同一件事 —— $e^{sT}$ 把「$\operatorname{Re}(s)<0$」這個左半平面直接彎成單位圓的內部。附帶一提:$s$ 的虛部(頻率 $\omega$)對映成 $\lambda$ 的輻角 $\omega T$,而 $\omega$ 每增加 $2\pi/T$ 就繞單位圓一圈回到原點 —— 這個「多對一」正是取樣的頻疊(aliasing),也是 z domain 只需看主圓、不需看整條 s 軸的原因。

3. 齊次解/特解 = 暫態/穩態。$y_c[n]$(自然模態 $\lambda_k^{\,n}$)= transient response,$y_p[n]$= steady-state。控制器設計的極點配置(pole placement)本質就是「選 $\lambda_k$ 擺哪裡」,決定衰減快慢、有無振盪。

4. 閉迴路。受控體經 ZOH+取樣得到 $G(z)$,配上控制器 $D(z)$,閉迴路特徵方程 $1+D(z)G(z)=0$ 的根=閉迴路極點,決定整個系統響應。

一句話:這章教你「解一條差分方程 + 判極點穩定」;數位控制課就是拿這套去「設計那條差分方程,把極點擺進單位圓」。

3.6 Block Diagram Realizations3.6 方塊圖實現3.6 ブロック図による実現

An LCCDE maps directly to hardware/software using three primitive elements(三種基本元件):

一條差分方程可以用三種基本元件直接對映到硬體/軟體:

差分方程式は、三つの基本素子を使ってハードウェア/ソフトウェアへ直接対応づけられる:

Writing the second-order LCCDE in computational form,

把二階差分方程寫成計算形式,

2 次の差分方程式を計算形で書き、

Second-order direct form 二階直接型2 次の直接形 $$y[n] = b_0\,x[n] + b_1\,x[n-1] + b_2\,x[n-2] \;-\; a_1\,y[n-1] - a_2\,y[n-2]$$

and drawing one branch per term gives the Direct Form I(直接 I 型) realization — a feed-forward tapped delay line on the input plus a feedback tapped delay line on the output:

再對每一項畫出一條分支,就得到直接 I 型(Direct Form I)實現 —— 輸入端一條前饋的抽頭延遲線,加上輸出端一條回授的抽頭延遲線:

各項ごとに枝を 1 本描くと、直接形 I(Direct Form I)による実現が得られる——入力側のフィードフォワード型タップ付き遅延線に、出力側の帰還型タップ付き遅延線を足したものである:

x[n] b₀ z⁻¹ x[n−1] b₁ z⁻¹ x[n−2] b₂ + + + y[n] z⁻¹ y[n−1] −a₁ z⁻¹ y[n−2] −a₂ feed-forward (zeros, bₖ) feedback (poles, −aₖ)
Fig. 3-4 — Direct Form I realization of $y[n] = b_0 x[n] + b_1 x[n-1] + b_2 x[n-2] - a_1 y[n-1] - a_2 y[n-2]$. The left delay line stores past inputs (feed-forward taps $b_k$); the right delay line stores past outputs (feedback taps $-a_k$). Total: $N+M = 4$ delays.
圖 3-4 — $y[n] = b_0 x[n] + b_1 x[n-1] + b_2 x[n-2] - a_1 y[n-1] - a_2 y[n-2]$ 的直接 I 型實現。左邊的延遲線存放過去的輸入(前饋抽頭 $b_k$);右邊的延遲線存放過去的輸出(回授抽頭 $-a_k$)。合計 $N+M = 4$ 個延遲器。
図 3-4 — $y[n] = b_0 x[n] + b_1 x[n-1] + b_2 x[n-2] - a_1 y[n-1] - a_2 y[n-2]$ の直接形 I による実現。左の遅延線は過去の入力を保持し(フィードフォワードタップ $b_k$)、右の遅延線は過去の出力を保持する(帰還タップ $-a_k$)。遅延器は合計 $N+M = 4$ 個。
Direct Form II preview
直接 II 型預告
直接形 II の予告
Because LTI blocks in cascade commute, the feedback half can be moved before the feed-forward half; the two delay lines then carry the identical internal signal $w[n]$ and can be shared, cutting the delays from $N+M$ to $\max(N,M)$ (the canonical Direct Form II). Chapter on filter structures develops this fully — here it is enough to know the trick exists and why it works.因為串聯的 LTI 方塊可以交換順序,回授那一半可以搬到前饋那一半之前;此時兩條延遲線帶的是完全相同的內部訊號 $w[n]$,因此可以共用,把延遲器從 $N+M$ 個減到 $\max(N,M)$ 個(也就是標準的直接 II 型)。濾波器結構那一章會完整展開這件事——在這裡只要知道有這個技巧、以及它為什麼行得通就夠了。縦続接続された LTI ブロックは交換できるので、帰還側の半分をフィードフォワード側の半分より前へ移すことができる。すると二つの遅延線はまったく同じ内部信号 $w[n]$ を運ぶことになり、共用できる。遅延器は $N+M$ 個から $\max(N,M)$ 個へ減る(これが正準な直接形 II である)。フィルタ構造の章でこれを本格的に展開する——ここでは、そういう技法が存在することと、なぜそれが成り立つのかを知っていれば十分である。
Sign trap when reading coefficients
讀係數時的正負號陷阱
係数を読むときの符号の落とし穴
MATLAB's filter(b, a, x) uses the LCCDE written with all $y$ terms on the left: $\sum a_k y[n-k] = \sum b_k x[n-k]$. The multipliers in the feedback branches of the block diagram are therefore $-a_1, -a_2$ (negated!). Forgetting this sign flip is the single most common block-diagram error.MATLAB 的 filter(b, a, x) 用的是把所有 $y$ 項移到左邊的差分方程寫法:$\sum a_k y[n-k] = \sum b_k x[n-k]$。因此方塊圖回授分支上的乘法器是 $-a_1, -a_2$(要變號!)。忘掉這個變號,是畫方塊圖時最常犯的一個錯。MATLAB の filter(b, a, x) は、$y$ の項をすべて左辺にまとめた書き方の差分方程式 $\sum a_k y[n-k] = \sum b_k x[n-k]$ を使う。したがってブロック図の帰還枝にある乗算器は $-a_1, -a_2$ となる(符号が反転する!)。この符号反転を忘れることが、ブロック図を描くときに最も多い誤りである。

3.7 Correlation3.7 相關3.7 相関

Correlation(相關) measures the degree of similarity between two sequences as a function of relative time shift. It is the standard tool for detecting a known waveform inside noise (radar, sonar, GPS), estimating time delays, and finding hidden periodicity.

相關(correlation)量測兩條序列在不同相對時間平移下的相似程度。它是在雜訊中偵測已知波形(雷達、聲納、GPS)、估測時間延遲,以及找出隱藏週期性的標準工具。

相関(correlation)は、二つの系列の相似度を相対的な時間シフトの関数として測る。雑音に埋もれた既知波形の検出(レーダ、ソナー、GPS)、時間遅延の推定、隠れた周期性の発見に使われる標準的な道具である。

3.7.1 Cross-correlation and its relation to convolution3.7.1 互相關及其與卷積的關係3.7.1 相互相関と畳み込みとの関係

Cross-correlation(互相關)of energy signals 能量訊號的互相關(cross-correlation)エネルギー信号の相互相関(cross-correlation) $$r_{xy}[\ell] \;=\; \sum_{n=-\infty}^{\infty} x[n]\, y[n-\ell], \qquad \ell = 0, \pm 1, \pm 2, \dots$$

The integer $\ell$ is the lag(延遲): $r_{xy}[\ell]$ asks "how much does $x$ look like $y$ shifted right by $\ell$?" Reversing the roles only mirrors the lag axis:

整數 $\ell$ 稱為延遲(lag):$r_{xy}[\ell]$ 問的是「把 $y$ 右移 $\ell$ 之後,$x$ 和它有多像?」把兩者角色對調,只是把延遲軸鏡射過來:

整数 $\ell$ はラグ(遅れ)と呼ばれる:$r_{xy}[\ell]$ は「$y$ を右へ $\ell$ だけずらしたとき、$x$ はそれにどれだけ似ているか」を問う。両者の役割を入れ替えると、ラグ軸が鏡映されるだけである:

Order swap 交換順序順序の入れ替え $$r_{xy}[\ell] = r_{yx}[-\ell]$$

Comparing with the convolution sum shows correlation is convolution with one sequence time-reversed — so all convolution machinery applies:

和卷積和對照就會發現,相關就是把其中一條序列時間反轉後的卷積 —— 因此卷積的所有工具都能套用:

畳み込み和と見比べると、相関とは一方の系列を時間反転したうえでの畳み込みそのものであることが分かる——したがって畳み込みの道具立てがすべて使える:

Correlation via convolution 用卷積計算相關畳み込みによる相関の計算 $$r_{xy}[\ell] \;=\; x[\ell] * y[-\ell]$$
Convolution vs correlation — the only difference is the flip
卷積與相關 —— 唯一的差別就是那個翻轉
畳み込みと相関 —— 違いは折り返しの有無だけ
Convolution folds (time-reverses) one signal before sliding; correlation slides without folding. For a sequence symmetric about some point (like the windowed cosine in Exercise 4), convolution and correlation give the same shape up to a shift — that is why matched filters can be built as convolvers.卷積在滑動之前會先把其中一個訊號摺疊(時間反轉);相關則不摺疊就直接滑動。對於關於某點對稱的序列(例如習題 4 的加窗餘弦),卷積與相關給出的形狀只差一個平移——這正是匹配濾波器可以用卷積器來實作的原因。畳み込みはスライドさせる前に一方の信号を折り返す(時間反転する)が、相関は折り返さずにスライドさせる。ある点に関して対称な系列(演習 4 の窓かけ余弦など)では、畳み込みと相関はシフトを除いて同じ形を与える——整合フィルタを畳み込み器として実装できるのはこのためである。

3.7.2 Autocorrelation properties3.7.2 自相關的性質3.7.2 自己相関の性質

The autocorrelation(自相關) is the correlation of a signal with itself, $r_{xx}[\ell] = \sum_n x[n]\,x[n-\ell]$. Its key properties:

自相關(autocorrelation)是訊號與自己的相關,$r_{xx}[\ell] = \sum_n x[n]\,x[n-\ell]$。它的主要性質:

自己相関(autocorrelation)とは、信号とそれ自身との相関 $r_{xx}[\ell] = \sum_n x[n]\,x[n-\ell]$ のことである。主な性質は次のとおり:

Autocorrelation properties 自相關的性質自己相関の性質 $$r_{xx}[0] = \sum_{n}x^2[n] = E_x, \qquad r_{xx}[-\ell] = r_{xx}[\ell], \qquad \big|r_{xx}[\ell]\big| \le r_{xx}[0]$$

and for the cross-correlation the Cauchy–Schwarz bound gives $\big|r_{xy}[\ell]\big| \le \sqrt{r_{xx}[0]\,r_{yy}[0]} = \sqrt{E_x E_y}$. Dividing by the bound yields the normalized correlation(正規化相關係數), handy because it is scale-free:

至於互相關,Cauchy–Schwarz 不等式給出界限 $\big|r_{xy}[\ell]\big| \le \sqrt{r_{xx}[0]\,r_{yy}[0]} = \sqrt{E_x E_y}$。除以這個界限就得到正規化相關係數(normalized correlation),很好用,因為它與尺度無關:

相互相関については、Cauchy–Schwarz の不等式から $\big|r_{xy}[\ell]\big| \le \sqrt{r_{xx}[0]\,r_{yy}[0]} = \sqrt{E_x E_y}$ という上界が得られる。この上界で割れば正規化相関係数(normalized correlation)になり、尺度に依存しないので扱いやすい:

Normalized (auto/cross) correlation 正規化(自/互)相關正規化(自己/相互)相関 $$\rho_{xx}[\ell] = \frac{r_{xx}[\ell]}{r_{xx}[0]}, \qquad \rho_{xy}[\ell] = \frac{r_{xy}[\ell]}{\sqrt{r_{xx}[0]\,r_{yy}[0]}}, \qquad |\rho| \le 1$$
The maximum is always at zero lag
最大值永遠落在零延遲處
最大値はつねにラグ 0 にある
A signal can never match a shifted copy of itself better than it matches itself unshifted: $r_{xx}[\ell]$ peaks at $\ell = 0$, where it equals the signal energy. In delay-estimation problems, the location of the peak of $r_{xy}[\ell]$ is the delay estimate.一個訊號與自己平移後的複本,永遠不可能比它與未平移的自己更相像:$r_{xx}[\ell]$ 的峰值在 $\ell = 0$,其值等於訊號能量。在延遲估測問題中,$r_{xy}[\ell]$ 峰值的位置就是延遲的估計值。信号が、シフトした自分自身のコピーと、シフトしていない自分自身よりも似ることはありえない:$r_{xx}[\ell]$ は $\ell = 0$ でピークをとり、その値は信号のエネルギーに等しい。遅延推定の問題では、$r_{xy}[\ell]$ のピーク位置が遅延の推定値そのものである。

3.7.3 Autocorrelation of periodic sequences3.7.3 週期序列的自相關3.7.3 周期系列の自己相関

Periodic (power) signals have infinite energy, so the sum is replaced by a time average. For $x[n]$ periodic with period $N$:

週期(功率)訊號的能量無限,所以要把求和改成時間平均。對週期為 $N$ 的 $x[n]$:

周期(電力)信号はエネルギーが無限なので、和を時間平均で置き換える。周期 $N$ をもつ $x[n]$ については:

Autocorrelation of a power / periodic signal 功率/週期訊號的自相關電力/周期信号の自己相関 $$r_{xx}[\ell] = \lim_{M\to\infty} \frac{1}{2M+1}\sum_{n=-M}^{M} x[n]\,x[n-\ell] \;\;=\;\; \frac{1}{N}\sum_{n=0}^{N-1} x[n]\,x[n-\ell]$$
Periodicity survives correlation — noise does not
週期性能通過相關存活下來,雜訊不能
相関を通しても周期性は生き残るが、雑音は残らない
If $x[n]$ is periodic with period $N$, then $r_{xx}[\ell]$ is also periodic with period $N$, showing peaks at $\ell = 0, \pm N, \pm 2N, \dots$ Meanwhile white noise $w[n]$ is uncorrelated with itself at any nonzero shift, so its autocorrelation collapses to a spike at $\ell=0$. For a noisy observation $y[n] = x[n] + w[n]$, away from $\ell = 0$ we get $r_{yy}[\ell] \approx r_{xx}[\ell]$ — the periodic structure pops out of the noise.若 $x[n]$ 的週期為 $N$,則 $r_{xx}[\ell]$ 也以 $N$ 為週期,在 $\ell = 0, \pm N, \pm 2N, \dots$ 處出現峰值。另一方面,白雜訊 $w[n]$ 在任何非零平移下都與自己不相關,所以它的自相關塌縮成 $\ell=0$ 處的一根尖峰。因此對含雜訊的觀測 $y[n] = x[n] + w[n]$,在離開 $\ell = 0$ 之後就有 $r_{yy}[\ell] \approx r_{xx}[\ell]$ —— 週期結構從雜訊中浮了出來。$x[n]$ が周期 $N$ をもつなら、$r_{xx}[\ell]$ も周期 $N$ をもち、$\ell = 0, \pm N, \pm 2N, \dots$ にピークが現れる。一方、白色雑音 $w[n]$ は零でないシフトでは自分自身と無相関なので、その自己相関は $\ell=0$ の 1 本のスパイクに潰れる。したがって雑音を含む観測 $y[n] = x[n] + w[n]$ では、$\ell = 0$ から離れたところで $r_{yy}[\ell] \approx r_{xx}[\ell]$ となる——周期構造が雑音の中から浮かび上がってくる。
2026-06-12T22:20:00.561023 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/ 0 10 20 30 40 50 60 n −2 0 2 x[n] Noisy periodic signal x[n] = cos(2πn/16) + w[n] (first 64 samples) −40 −20 0 20 40 lag ℓ −0.5 0.0 0.5 1.0 1.5 rₓₓ[ℓ] Autocorrelation rₓₓ[ℓ] — peaks repeat every ℓ = 16 ⇒ period recovered
Fig. 3-5 — Top: a cosine of period 16 buried in heavy noise (the period is barely visible by eye). Bottom: its autocorrelation shows clean repeating peaks at lags $0, \pm16, \pm32, \pm48$ — the hidden period recovered. The extra spike at $\ell=0$ is the noise energy.
圖 3-5 — 上:埋在強雜訊中的週期 16 餘弦(肉眼幾乎看不出週期)。下:它的自相關在延遲 $0, \pm16, \pm32, \pm48$ 處出現乾淨的重複峰值 —— 隱藏的週期被挖了出來。$\ell=0$ 多出來的那根尖峰是雜訊能量。
図 3-5 — 上:強い雑音に埋もれた周期 16 の余弦波(目では周期がほとんど見えない)。下:その自己相関は、ラグ $0, \pm16, \pm32, \pm48$ に澄んだ繰り返しピークを示す——隠れていた周期が取り出された。$\ell=0$ に余分に立つスパイクは雑音のエネルギーである。

3.7.4 Correlation in action3.7.4 相關的實際應用3.7.4 相関の実際

The canonical application is radar/sonar delay estimation(雷達延遲估測): transmit $x[n]$, receive an attenuated, delayed, noisy echo

最典型的應用是雷達/聲納的延遲估測(delay estimation):發射 $x[n]$,收到一個被衰減、延遲並混入雜訊的回波

典型的な応用がレーダ/ソナーにおける遅延推定(delay estimation)である:$x[n]$ を送信し、減衰し遅延し雑音の乗ったエコーを受信する

Radar receive model 雷達接收模型レーダ受信モデル $$y[n] = \alpha\, x[n-D] + w[n]$$

Cross-correlating receive with transmit gives $r_{yx}[\ell] = \alpha\, r_{xx}[\ell - D] + r_{wx}[\ell]$. Since $r_{xx}$ peaks at zero lag and the noise term is small, $r_{yx}[\ell]$ peaks at $\ell = D$ — read off the round-trip delay, hence target range. The same idea underlies GPS code acquisition and pattern matching.

把接收訊號與發射訊號做互相關,得到 $r_{yx}[\ell] = \alpha\, r_{xx}[\ell - D] + r_{wx}[\ell]$。由於 $r_{xx}$ 的峰值在零延遲、雜訊項很小,$r_{yx}[\ell]$ 的峰值就落在 $\ell = D$ —— 直接讀出來回傳播的延遲,也就得到目標距離。GPS 的碼捕獲與樣式比對背後也是同一個想法。

受信信号と送信信号の相互相関をとると $r_{yx}[\ell] = \alpha\, r_{xx}[\ell - D] + r_{wx}[\ell]$ が得られる。$r_{xx}$ はラグ 0 でピークをとり、雑音項は小さいので、$r_{yx}[\ell]$ は $\ell = D$ でピークをとる——往復の遅延、すなわち目標までの距離がそのまま読み取れる。GPS のコード捕捉やパターンマッチングも同じ考え方に支えられている。

直觀解釋(點擊展開)
相關就是「滑動內積」:把 $y$ 平移 $\ell$ 格後跟 $x$ 逐點相乘再加總。兩個訊號形狀對齊時,正的對正、負的對負,乘積全是正的,加起來最大——所以峰值位置就是「對齊所需的平移量」。雷達就是用這招:回波跟發射波最像的那個延遲 $D$,乘上波速除以 2 就是目標距離。跟卷積的差別只有一個:卷積要先把訊號左右翻轉,相關不翻。

3.8 Chapter Summary3.8 本章總結3.8 本章のまとめ

LCCDE差分方程差分方程式(LCCDE)
$\sum_{k=0}^{N} a_k y[n-k] = \sum_{k=0}^{M} b_k x[n-k]$. LTI + causal only when initially at rest. $N\ge1$: recursive; $N=0$: non-recursive.$\sum_{k=0}^{N} a_k y[n-k] = \sum_{k=0}^{M} b_k x[n-k]$。唯有初始鬆弛時才同時是 LTI 與因果。$N\ge1$:遞迴;$N=0$:非遞迴。$\sum_{k=0}^{N} a_k y[n-k] = \sum_{k=0}^{M} b_k x[n-k]$。初期静止のときに限り LTI かつ因果的。$N\ge1$ なら再帰型、$N=0$ なら非再帰型。
Solution recipe解題流程解法の手順
$y = y_c + y_p$: roots of $\lambda^N + a_1\lambda^{N-1}+\dots+a_N=0$ give $y_c = \sum C_k\lambda_k^n$; guess $y_p$ from input form; fix $C_k$ last using $y[0..N\!-\!1]$ from the recursion.$y = y_c + y_p$:由 $\lambda^N + a_1\lambda^{N-1}+\dots+a_N=0$ 的根得 $y_c = \sum C_k\lambda_k^n$;依輸入形式猜 $y_p$;最後再用遞迴算出的 $y[0..N\!-\!1]$ 定出 $C_k$。$y = y_c + y_p$:$\lambda^N + a_1\lambda^{N-1}+\dots+a_N=0$ の根から $y_c = \sum C_k\lambda_k^n$ を得る。入力の形から $y_p$ を仮定し、最後に漸化式で求めた $y[0..N\!-\!1]$ を使って $C_k$ を決める。
Zero-input / zero-state零輸入/零狀態零入力/零状態
$y = y_{zi} + y_{zs}$: ICs alone vs input alone. Only $y_{zs} = x*h$. Different split from $y_c + y_p$ — both pieces contain natural modes.$y = y_{zi} + y_{zs}$:只有初始條件 vs 只有輸入。只有 $y_{zs} = x*h$。這與 $y_c + y_p$ 是不同的拆法——兩塊都含有自然模態。$y = y_{zi} + y_{zs}$:初期条件だけの成分と入力だけの成分。$y_{zs} = x*h$ が成り立つのはこちらだけ。$y_c + y_p$ とは別の分け方で、どちらの成分も固有モードを含む。
FIR vs IIRFIR 與 IIRFIR と IIR
Non-recursive ⇒ $h = \{b_0,\dots,b_M\}$, finite, always stable. Recursive ⇒ $h$ built from $\lambda_k^n$, infinite, stable iff all $|\lambda_k|<1$.非遞迴 ⇒ $h = \{b_0,\dots,b_M\}$,有限長,必定穩定。遞迴 ⇒ $h$ 由 $\lambda_k^n$ 組成,無限長,穩定的充要條件是所有 $|\lambda_k|<1$。非再帰 ⇒ $h = \{b_0,\dots,b_M\}$、有限長、つねに安定。再帰 ⇒ $h$ は $\lambda_k^n$ から構成され無限長、安定条件はすべての $|\lambda_k|<1$。
Stability穩定性安定性
BIBO ⇔ $\sum|h[k]| < \infty$ ⇔ (causal LCCDE) every characteristic root strictly inside the unit circle. $h=a^nu[n]$: stable iff $|a|<1$.BIBO ⇔ $\sum|h[k]| < \infty$ ⇔(因果差分方程)每一個特徵根都嚴格落在單位圓內。$h=a^nu[n]$:穩定的充要條件是 $|a|<1$。BIBO ⇔ $\sum|h[k]| < \infty$ ⇔(因果的な差分方程式では)すべての特性根が単位円の内部に厳密に存在すること。$h=a^nu[n]$ は $|a|<1$ のときに限り安定。
Correlation相關相関
$r_{xy}[\ell] = \sum_n x[n]y[n-\ell] = x[\ell]*y[-\ell]$. $r_{xx}$: even, max $= E_x$ at $\ell=0$; periodic signal ⇒ periodic $r_{xx}$. Peak of $r_{yx}$ locates delay $D$.$r_{xy}[\ell] = \sum_n x[n]y[n-\ell] = x[\ell]*y[-\ell]$。$r_{xx}$:偶函數,最大值 $= E_x$ 落在 $\ell=0$;週期訊號 ⇒ $r_{xx}$ 也是週期的。$r_{yx}$ 的峰值位置即延遲 $D$。$r_{xy}[\ell] = \sum_n x[n]y[n-\ell] = x[\ell]*y[-\ell]$。$r_{xx}$ は偶関数で、$\ell=0$ において最大値 $= E_x$ をとる。周期信号 ⇒ $r_{xx}$ も周期的。$r_{yx}$ のピーク位置が遅延 $D$ を与える。

Exercises習題演習問題

All four problems of ICE503 DSP Homework #3, fully worked.

ICE503 DSP 作業 #3 的全部四題,附完整解答。

ICE503 DSP 宿題 #3 の全 4 問を、完全に解いたもの。

Exercise 1 — Stability of four systems習題 1 — 四個系統的穩定性演習 1 — 四つの系の安定性

Problem: For each of the following systems, determine whether the system is stable.

題目:判斷下列各系統是否穩定。

問題:次の各系について、安定かどうかを判定せよ。

(a) $y[n] = \cos\big(x[n]\big)$    (b) $y[n] = r^{\,n} x[n],\; r > 1$    (c) $y[n] = n\,x[n]$    (d) $y[n] = \dfrac{1}{n}\,x[n]$

(a) $y[n] = \cos\big(x[n]\big)$    (b) $y[n] = r^{\,n} x[n],\; r > 1$    (c) $y[n] = n\,x[n]$    (d) $y[n] = \dfrac{1}{n}\,x[n]$

(a) $y[n] = \cos\big(x[n]\big)$    (b) $y[n] = r^{\,n} x[n],\; r > 1$    (c) $y[n] = n\,x[n]$    (d) $y[n] = \dfrac{1}{n}\,x[n]$

Click to reveal solution點擊展開解答クリックして解答を表示

BIBO test: assume $|x[n]| \le B_x < \infty$ for all $n$ and check whether $|y[n]|$ must stay bounded. These are not LTI systems, so we argue directly from the definition (the $\sum|h|$ test does not apply).

BIBO 判別:假設對所有 $n$ 有 $|x[n]| \le B_x < \infty$,檢查 $|y[n]|$ 是否必然保持有界。這些都不是 LTI 系統,所以要直接由定義論證($\sum|h|$ 判據不適用)。

BIBO の判定:すべての $n$ について $|x[n]| \le B_x < \infty$ と仮定し、$|y[n]|$ が必ず有界にとどまるかを調べる。これらは LTI 系ではないので、定義から直接論じる($\sum|h|$ による判定は使えない)。

(a) $y[n] = \cos(x[n])$ — STABLE. The cosine of any real number lies in $[-1,1]$, so for every input (bounded or not!) $|y[n]| \le 1$. Bounded output guaranteed → stable.

(a) $y[n] = \cos(x[n])$ —— 穩定。任何實數的餘弦都落在 $[-1,1]$,所以對每一個輸入(有界與否都一樣!)都有 $|y[n]| \le 1$。輸出必定有界 → 穩定。

(a) $y[n] = \cos(x[n])$ —— 安定。任意の実数の余弦は $[-1,1]$ に収まるので、どんな入力に対しても(有界でなくても!)$|y[n]| \le 1$ となる。出力の有界性が保証される → 安定。

(b) $y[n] = r^n x[n]$, $r>1$ — UNSTABLE. Counterexample: the bounded input $x[n] = u[n]$ ($B_x = 1$) gives $y[n] = r^n$ for $n \ge 0$, and since $r > 1$, $r^n \to \infty$. No finite $B_y$ exists → unstable. (The time-varying gain $r^n$ is itself unbounded.)

(b) $y[n] = r^n x[n]$、$r>1$ —— 不穩定。反例:有界輸入 $x[n] = u[n]$($B_x = 1$)給出 $n \ge 0$ 時 $y[n] = r^n$,而 $r > 1$ 使得 $r^n \to \infty$。不存在任何有限的 $B_y$ → 不穩定。(時變增益 $r^n$ 本身就是無界的。)

(b) $y[n] = r^n x[n]$、$r>1$ —— 不安定。反例:有界な入力 $x[n] = u[n]$($B_x = 1$)は $n \ge 0$ で $y[n] = r^n$ を与え、$r > 1$ だから $r^n \to \infty$ となる。有限な $B_y$ は存在しない → 不安定。(時変ゲイン $r^n$ 自体が非有界である。)

(c) $y[n] = n\,x[n]$ — UNSTABLE. Counterexample: $x[n] = u[n]$ gives $y[n] = n \to \infty$. The gain $|n|$ grows without bound, so a constant input is amplified without limit → unstable.

(c) $y[n] = n\,x[n]$ —— 不穩定。反例:$x[n] = u[n]$ 給出 $y[n] = n \to \infty$。增益 $|n|$ 無上限地成長,所以一個常數輸入就會被無限放大 → 不穩定。

(c) $y[n] = n\,x[n]$ —— 不安定。反例:$x[n] = u[n]$ は $y[n] = n \to \infty$ を与える。ゲイン $|n|$ が際限なく増大するので、定数入力でも無限に増幅される → 不安定。

(d) $y[n] = \frac{1}{n} x[n]$ — STABLE. For every $n \ne 0$, $\big|\tfrac{1}{n}\big| \le 1$, hence $$|y[n]| = \frac{|x[n]|}{|n|} \le |x[n]| \le B_x .$$ The output bound $B_y = B_x$ works for all bounded inputs → stable. (At $n = 0$ the rule $1/n$ is undefined; the system is understood as defined for $n \ne 0$, or with $y[0] := 0$ — either way the bound holds. Contrast with (c): here the gain shrinks with $|n|$ instead of growing.)

(d) $y[n] = \frac{1}{n} x[n]$ —— 穩定。對每一個 $n \ne 0$ 都有 $\big|\tfrac{1}{n}\big| \le 1$,因此 $$|y[n]| = \frac{|x[n]|}{|n|} \le |x[n]| \le B_x .$$ 輸出界限 $B_y = B_x$ 對所有有界輸入都成立 → 穩定。(在 $n = 0$ 處 $1/n$ 沒有定義;這個系統應理解為只定義在 $n \ne 0$,或者補上 $y[0] := 0$ —— 兩種理解下界限都成立。對照 (c):這裡的增益隨 $|n|$ 變小,而不是變大。)

(d) $y[n] = \frac{1}{n} x[n]$ —— 安定。$n \ne 0$ である限り $\big|\tfrac{1}{n}\big| \le 1$ なので、 $$|y[n]| = \frac{|x[n]|}{|n|} \le |x[n]| \le B_x .$$ 出力の上界 $B_y = B_x$ が任意の有界入力に対して成り立つ → 安定。($n = 0$ では $1/n$ が定義されない。この系は $n \ne 0$ 上で定義されているとみなすか、$y[0] := 0$ と補えばよい——いずれにせよ上界は成り立つ。(c) と対比せよ:こちらではゲインが $|n|$ とともに増えるのではなく小さくなる。)

Pattern
規律
パターン
For memoryless time-varying systems $y[n] = g[n]\,x[n]$, BIBO stability ⇔ the gain sequence $g[n]$ is bounded: (a) gain effect $\le 1$ ✓, (b) $r^n$ unbounded ✗, (c) $n$ unbounded ✗, (d) $1/n$ bounded by 1 ✓.對無記憶的時變系統 $y[n] = g[n]\,x[n]$,BIBO 穩定 ⇔ 增益序列 $g[n]$ 有界:(a) 增益效果 $\le 1$ ✓、(b) $r^n$ 無界 ✗、(c) $n$ 無界 ✗、(d) $1/n$ 以 1 為界 ✓。無記憶の時変系 $y[n] = g[n]\,x[n]$ では、BIBO 安定 ⇔ ゲイン系列 $g[n]$ が有界であること:(a) ゲインの効果は $\le 1$ ✓、(b) $r^n$ は非有界 ✗、(c) $n$ は非有界 ✗、(d) $1/n$ は 1 で抑えられる ✓。
Exercise 2 — Solve the LCCDE with initial conditions習題 2 — 在初始條件下解差分方程演習 2 — 初期条件つきで差分方程式を解く

Problem: An LTI system is described by $$y[n] + 2y[n-1] - 8y[n-2] = 80\,x[n]$$ with initial conditions $y[-1] = -8$, $y[-2] = -9$. If the input is $x[n] = u[n]$, determine $y[n]$ for $n \ge 0$.

題目:一個 LTI 系統由下式描述 $$y[n] + 2y[n-1] - 8y[n-2] = 80\,x[n]$$ 初始條件為 $y[-1] = -8$、$y[-2] = -9$。若輸入為 $x[n] = u[n]$,求 $n \ge 0$ 的 $y[n]$。

問題:ある LTI 系が次式で記述される。 $$y[n] + 2y[n-1] - 8y[n-2] = 80\,x[n]$$ 初期条件は $y[-1] = -8$、$y[-2] = -9$ である。入力が $x[n] = u[n]$ のとき、$n \ge 0$ における $y[n]$ を求めよ。

Click to reveal solution點擊展開解答クリックして解答を表示

Step 1 — complementary solution. Characteristic equation from $y[n]+2y[n-1]-8y[n-2]=0$ with trial $y=\lambda^n$:

第 1 步 —— 齊次解。由 $y[n]+2y[n-1]-8y[n-2]=0$ 代入試解 $y=\lambda^n$ 得特徵方程:

手順 1 —— 斉次解。$y[n]+2y[n-1]-8y[n-2]=0$ に試行解 $y=\lambda^n$ を代入して、特性方程式を得る:

$$\lambda^2 + 2\lambda - 8 = 0 \;\Rightarrow\; (\lambda + 4)(\lambda - 2) = 0 \;\Rightarrow\; \lambda_1 = -4,\;\; \lambda_2 = 2$$

so $y_c[n] = C_1(-4)^n + C_2\,2^n$.

所以 $y_c[n] = C_1(-4)^n + C_2\,2^n$。

よって $y_c[n] = C_1(-4)^n + C_2\,2^n$ となる。

Step 2 — particular solution. For $n \ge 0$ the input is the constant $x[n] = 1$, so try $y_p[n] = K$:

第 2 步 —— 特解。$n \ge 0$ 時輸入是常數 $x[n] = 1$,所以試 $y_p[n] = K$:

手順 2 —— 特解。$n \ge 0$ では入力は定数 $x[n] = 1$ なので、$y_p[n] = K$ と置いてみる:

$$K + 2K - 8K = 80 \;\Rightarrow\; -5K = 80 \;\Rightarrow\; K = -16$$

Step 3 — total solution form.

第 3 步 —— 全解形式。

手順 3 —— 全解の形。

$$y[n] = C_1(-4)^n + C_2\,2^n - 16, \qquad n \ge 0$$

Step 4 — get $y[0], y[1]$ from the recursion $y[n] = 80\,x[n] - 2y[n-1] + 8y[n-2]$:

第 4 步 —— 用遞迴式 $y[n] = 80\,x[n] - 2y[n-1] + 8y[n-2]$ 求出 $y[0]$、$y[1]$:

手順 4 —— 漸化式 $y[n] = 80\,x[n] - 2y[n-1] + 8y[n-2]$ から $y[0], y[1]$ を求める:

$$\begin{aligned} y[0] &= 80(1) - 2y[-1] + 8y[-2] = 80 + 16 - 72 = 24\\ y[1] &= 80(1) - 2y[0] + 8y[-1] = 80 - 48 - 64 = -32 \end{aligned}$$

Step 5 — solve for the constants.

第 5 步 —— 解出常數。

手順 5 —— 定数を解く。

$$\begin{aligned} n=0:&\quad C_1 + C_2 - 16 = 24 &&\Rightarrow\; C_1 + C_2 = 40\\ n=1:&\quad -4C_1 + 2C_2 - 16 = -32 &&\Rightarrow\; -2C_1 + C_2 = -8 \end{aligned}$$

Subtracting: $3C_1 = 48 \Rightarrow C_1 = 16$, then $C_2 = 24$.

兩式相減:$3C_1 = 48 \Rightarrow C_1 = 16$,再回代得 $C_2 = 24$。

辺々引くと $3C_1 = 48 \Rightarrow C_1 = 16$、これより $C_2 = 24$。

Answer 答案答え $$\boxed{\;y[n] = 16(-4)^n + 24\,(2)^n - 16, \qquad n \ge 0\;}$$

Verification by recursion: the formula gives $y[2] = 16(16)+24(4)-16 = 336$ and the recursion gives $y[2] = 80 - 2(-32) + 8(24) = 80+64+192 = 336$. ✓ Similarly $y[3] = -848$, $y[4] = 4464$ both ways.

用遞迴式驗算:公式給出 $y[2] = 16(16)+24(4)-16 = 336$,遞迴式給出 $y[2] = 80 - 2(-32) + 8(24) = 80+64+192 = 336$。✓ 同樣地 $y[3] = -848$、$y[4] = 4464$ 兩種算法也一致。

漸化式による検算:公式からは $y[2] = 16(16)+24(4)-16 = 336$、漸化式からは $y[2] = 80 - 2(-32) + 8(24) = 80+64+192 = 336$ が得られる。✓ 同様に $y[3] = -848$、$y[4] = 4464$ もどちらの方法でも一致する。

Remark: the roots $-4$ and $2$ lie outside the unit circle, so this system is unstable — the response grows without bound even for the bounded step input, exactly as the numbers show.

附註:兩個根 $-4$ 與 $2$ 都落在單位圓外,所以這個系統不穩定 —— 即使輸入是有界的步階,響應仍無界成長,數值也正好印證了這一點。

注意:根 $-4$ と $2$ はどちらも単位円の外にあるので、この系は不安定である——入力が有界なステップであっても応答は際限なく増大し、数値がまさにそれを示している。

Exercise 3 — MATLAB: implement the LCCDE three ways習題 3 — MATLAB:用三種方法實作差分方程演習 3 — MATLAB:差分方程式を三通りに実装する

Problem: MATLAB simulation of the system in Exercise 2, $y[n] + 2y[n-1] - 8y[n-2] = 80x[n]$, $x[n]=u[n]$, $y[-1]=-8$, $y[-2]=-9$:

題目:用 MATLAB 模擬習題 2 的系統 $y[n] + 2y[n-1] - 8y[n-2] = 80x[n]$,$x[n]=u[n]$,$y[-1]=-8$、$y[-2]=-9$:

問題:演習 2 の系 $y[n] + 2y[n-1] - 8y[n-2] = 80x[n]$、$x[n]=u[n]$、$y[-1]=-8$、$y[-2]=-9$ を MATLAB でシミュレートせよ:

(a) Implement the LCCDE (closed form) and determine $y[n]$ for $0 \le n \le 4$.
(b) Use a for loop to implement the recursion and determine $y[n]$ for $0 \le n \le 4$.
(c) Use filtic and filter to determine $y[n]$ for $0 \le n \le 4$. All three results must agree.

(a) 實作差分方程的封閉解,求 $0 \le n \le 4$ 的 $y[n]$。
(b) 用 for 迴圈實作遞迴,求 $0 \le n \le 4$ 的 $y[n]$。
(c) 用 filtic 與 filter 求 $0 \le n \le 4$ 的 $y[n]$。三種結果必須一致。

(a) 差分方程式の閉じた解を実装し、$0 \le n \le 4$ の $y[n]$ を求めよ。
(b) for ループで漸化式を実装し、$0 \le n \le 4$ の $y[n]$ を求めよ。
(c) filtic と filter を使って $0 \le n \le 4$ の $y[n]$ を求めよ。三つの結果は一致しなければならない。

Click to reveal solution點擊展開解答クリックして解答を表示

All three methods must reproduce $y[n] = 16(-4)^n + 24\,(2)^n - 16$ from Exercise 2, i.e.

三種方法都必須重現習題 2 的 $y[n] = 16(-4)^n + 24\,(2)^n - 16$,也就是

三つの方法はいずれも、演習 2 の $y[n] = 16(-4)^n + 24\,(2)^n - 16$ を再現しなければならない。すなわち

$$y[0..4] = \{\,24,\; -32,\; 336,\; -848,\; 4464\,\}.$$
clc; clear;

% LCCDE: y[n] + 2y[n-1] - 8y[n-2] = 80 x[n]
a = [1, 2, -8];          % output-side coefficients [a0 a1 a2]
b = 80;                  % input-side coefficient
x = ones(1, 5);          % x[n] = u[n] for 0 <= n <= 4
y_m1 = -8;               % y[-1]
y_m2 = -9;               % y[-2]

% (a) closed-form solution from Exercise 2
n = 0:4;
y_closed = 16*(-4).^n + 24*2.^n - 16;
disp('(a) closed form:');  disp(y_closed);

% (b) direct recursion with a for loop
y = zeros(1, 5);
for k = 1:5
    if k == 1          % n = 0: use y[-1], y[-2]
        y(k) = b*x(k) - a(2)*y_m1   - a(3)*y_m2;
    elseif k == 2      % n = 1: use y[0], y[-1]
        y(k) = b*x(k) - a(2)*y(k-1) - a(3)*y_m1;
    else               % n >= 2
        y(k) = b*x(k) - a(2)*y(k-1) - a(3)*y(k-2);
    end
end
disp('(b) for loop:');  disp(y);

% (c) filtic + filter
zi = filtic(b, a, [-8, -9]);     % past outputs [y(-1), y(-2)]
y_filt = filter(b, a, x, zi);
disp('(c) filtic + filter:');  disp(y_filt);

Output (identical for all three):

輸出(三種方法完全相同):

出力(三通りとも同一):

(a) closed form:    24   -32   336   -848   4464
(b) for loop:       24   -32   336   -848   4464
(c) filtic + filter: 24   -32   336   -848   4464

How each method works:

各方法的原理:

各方法の仕組み:

  • (a) evaluates the analytic solution — no recursion, valid for any $n$ directly.
  • (b) marches the recursion $y[n] = 80x[n] - 2y[n-1] + 8y[n-2]$ forward sample by sample; the first two iterations reach back into the initial conditions.
  • (c) filtic(b, a, [y(-1) y(-2)]) converts the past outputs into the equivalent internal delay-line state zi of the Direct-Form filter, and filter(b, a, x, zi) then runs the same recursion in optimized form. With no zi, filter assumes a system at rest — it would compute only the zero-state response.
  • (a) 直接代入解析解 —— 不用遞迴,任何 $n$ 都能直接算。
  • (b) 把遞迴式 $y[n] = 80x[n] - 2y[n-1] + 8y[n-2]$ 一個樣本一個樣本往前推;前兩次迭代會用到初始條件。
  • (c) filtic(b, a, [y(-1) y(-2)]) 把過去的輸出換算成直接型濾波器等效的內部延遲線狀態 zi,接著 filter(b, a, x, zi) 就以最佳化的形式跑同一條遞迴。如果不給 zi,filter 會假設系統靜止 —— 那樣只會算出零狀態響應。
  • (a) は解析解をそのまま評価する——漸化式を使わず、任意の $n$ について直接計算できる。
  • (b) は漸化式 $y[n] = 80x[n] - 2y[n-1] + 8y[n-2]$ を 1 標本ずつ前進させる。最初の 2 回の反復が初期条件まで遡って参照する。
  • (c) filtic(b, a, [y(-1) y(-2)]) は過去の出力を、直接形フィルタの内部遅延線の等価な状態 zi に換算する。続く filter(b, a, x, zi) が同じ漸化式を最適化された形で走らせる。zi を与えなければ filter は系が静止していると仮定する——その場合は零状態応答しか計算されない。

Result regenerated numerically (Python scipy.signal.lfilter + lfiltic, the exact analogues of filter/filtic):

用數值方式重新產生的結果(Python 的 scipy.signal.lfilter 與 lfiltic,正是 filter/filtic 的對應物):

数値的に再現した結果(Python の scipy.signal.lfilter と lfiltic。これらは filter/filtic にそのまま対応する):

2026-06-12T22:20:00.743164 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/ 0 1 2 3 4 n −2000 −1000 0 1000 2000 3000 4000 5000 y[n] 24 -32 336 -848 4464 y[n] for 0 ≤ n ≤ 4 (for-loop, filter/filtic and closed form all agree)
Fig. 3-E1 — $y[n]$ for $0\le n \le 4$: the for-loop recursion, filter/filtic, and the closed form $16(-4)^n + 24\cdot 2^n - 16$ coincide exactly. The alternating, exploding values betray the unstable roots $-4$ and $2$.
圖 3-E1 — $0\le n \le 4$ 的 $y[n]$:for 迴圈遞迴、filter/filtic 與封閉解 $16(-4)^n + 24\cdot 2^n - 16$ 三者完全一致。數值正負交替且迅速放大,正反映出 $-4$ 與 $2$ 這兩個不穩定的特徵根。
図 3-E1 — $0\le n \le 4$ における $y[n]$:for ループによる漸化、filter/filtic、そして閉じた形 $16(-4)^n + 24\cdot 2^n - 16$ の三つが完全に一致する。符号が交互に変わりながら発散していく値は、不安定な根 $-4$ と $2$ の存在を物語っている。
Exercise 4 — MATLAB: autocorrelation of a windowed sinusoid習題 4 — MATLAB:加窗弦波的自相關演習 4 — MATLAB:窓かけ正弦波の自己相関

Problem: MATLAB simulation:

題目:MATLAB 模擬:

問題:MATLAB によるシミュレーション:

(a) Generate the sinusoidal signal $$x[n] = \begin{cases} \cos\!\big(\tfrac{1}{5}\pi n\big), & -5 \le n \le 5\\[2pt] 0, & -10 \le n < -5 \;\text{ and }\; 5 < n \le 10 \end{cases}$$ (b) Use the stem function to plot the autocorrelation of $x[n]$.

(a) 產生弦波訊號 $$x[n] = \begin{cases} \cos\!\big(\tfrac{1}{5}\pi n\big), & -5 \le n \le 5\\[2pt] 0, & -10 \le n < -5 \;\text{ 以及 }\; 5 < n \le 10 \end{cases}$$ (b) 用 stem 函式畫出 $x[n]$ 的自相關。

(a) 次の正弦波信号を生成せよ。 $$x[n] = \begin{cases} \cos\!\big(\tfrac{1}{5}\pi n\big), & -5 \le n \le 5\\[2pt] 0, & -10 \le n < -5 \;\text{ and }\; 5 < n \le 10 \end{cases}$$ (b) stem 関数を使って $x[n]$ の自己相関を描け。

Click to reveal solution點擊展開解答クリックして解答を表示

The autocorrelation of the finite-energy sequence is $r_{xx}[\ell] = \sum_n x[n]\,x[n-\ell]$, computed for lags $-20 \le \ell \le 20$ (a length-21 sequence has $2\cdot 21 - 1 = 41$ correlation lags).

這條有限能量序列的自相關是 $r_{xx}[\ell] = \sum_n x[n]\,x[n-\ell]$,計算延遲範圍 $-20 \le \ell \le 20$(長度 21 的序列共有 $2\cdot 21 - 1 = 41$ 個相關延遲)。

この有限エネルギー系列の自己相関は $r_{xx}[\ell] = \sum_n x[n]\,x[n-\ell]$ であり、ラグ $-20 \le \ell \le 20$ の範囲で計算する(長さ 21 の系列は $2\cdot 21 - 1 = 41$ 個の相関ラグをもつ)。

clc; clear;

% (a) generate the windowed cosine on -10 <= n <= 10
n = -10:10;
x = zeros(1, length(n));
for i = 1:length(n)
    if abs(n(i)) <= 5
        x(i) = cos((1/5)*pi*n(i));
    end                          % else: stays 0
end

% (b) autocorrelation r_xx[l] = sum_n x[n] x[n-l]
lags = -(length(n)-1) : (length(n)-1);
r = zeros(1, length(lags));
for k = 1:length(lags)
    s = 0;
    for i = 1:length(x)
        j = i + lags(k);                 % index of x[n - l] (shifted copy)
        if j >= 1 && j <= length(x)      % keep index inside the array
            s = s + x(i) * x(j);
        end
    end
    r(k) = s;
end
% one-line check: r = xcorr(x);  gives the same 41 values

figure;
subplot(2,1,1);
stem(n, x, 'filled'); grid on;
title('x[n] = cos(\pi n/5),  |n| \leq 5'); xlabel('n'); ylabel('x[n]');
subplot(2,1,2);
stem(lags, r, 'filled'); grid on;
title('Autocorrelation r_{xx}[l]'); xlabel('lag l'); ylabel('r_{xx}[l]');

Result regenerated numerically (Python numpy.correlate(x, x, 'full')):

用數值方式重新產生的結果(Python 的 numpy.correlate(x, x, 'full')):

数値的に再現した結果(Python の numpy.correlate(x, x, 'full')):

2026-06-12T22:20:00.973020 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/ −10.0 −7.5 −5.0 −2.5 0.0 2.5 5.0 7.5 10.0 n −1.0 −0.5 0.0 0.5 1.0 x[n] x[n] = cos(πn/5) for |n| ≤ 5, else 0 −20 −15 −10 −5 0 5 10 15 20 lag ℓ −4 −2 0 2 4 6 rₓₓ[ℓ] Autocorrelation rₓₓ[ℓ] (even, maximum at ℓ = 0)
Fig. 3-E2 — Top: the windowed cosine $x[n]$ (period 10, lasting 11 samples). Bottom: its autocorrelation $r_{xx}[\ell]$, lags $-20$ to $20$.
圖 3-E2 — 上:加窗後的餘弦 $x[n]$(週期 10,持續 11 個樣本)。下:它的自相關 $r_{xx}[\ell]$,延遲從 $-20$ 到 $20$。
図 3-E2 — 上:窓かけした余弦波 $x[n]$(周期 10、継続は 11 標本)。下:その自己相関 $r_{xx}[\ell]$、ラグは $-20$ から $20$ まで。

Checks against the theory of §3.7.2:

對照 §3.7.2 理論的檢查:

§3.7.2 の理論との照合:

  • Maximum at zero lag: $r_{xx}[0] = \sum_n x^2[n] = E_x = 6$ — and indeed $\sum_{n=-5}^{5}\cos^2(\pi n/5) = 6$ ✓ (no other lag reaches 6).
  • Even symmetry: $r_{xx}[-\ell] = r_{xx}[\ell]$, visible in the plot ✓.
  • Oscillation with the signal's period: sidelobes alternate with period $\approx 10$ lags (e.g. $r_{xx}[\pm 5] \approx -4.0$, the strongest negative dip: shifting a cosine by half a period anti-aligns it), but they decay as $|\ell|$ grows because the finite windows overlap less — at $|\ell| \ge 11$ the copies no longer overlap at all and $r_{xx}[\ell] = 0$.
  • Finite support: a length-$L$ sequence has autocorrelation confined to $|\ell| \le L-1 = 20$ ✓.
  • 最大值在零延遲:$r_{xx}[0] = \sum_n x^2[n] = E_x = 6$ —— 而確實 $\sum_{n=-5}^{5}\cos^2(\pi n/5) = 6$ ✓(沒有其他延遲能達到 6)。
  • 偶對稱:$r_{xx}[-\ell] = r_{xx}[\ell]$,圖上清楚可見 ✓。
  • 以訊號週期振盪:旁瓣以大約 10 個延遲為週期交替(例如 $r_{xx}[\pm 5] \approx -4.0$,是最強的負向低谷:把餘弦平移半個週期就會反相對齊),但隨 $|\ell|$ 增大而衰減,因為有限長度的窗口重疊得愈來愈少 —— 到 $|\ell| \ge 11$ 兩份複本完全不再重疊,$r_{xx}[\ell] = 0$。
  • 有限支撐:長度為 $L$ 的序列,其自相關侷限在 $|\ell| \le L-1 = 20$ ✓。
  • ラグ 0 で最大:$r_{xx}[0] = \sum_n x^2[n] = E_x = 6$ —— 実際 $\sum_{n=-5}^{5}\cos^2(\pi n/5) = 6$ である ✓(他のどのラグも 6 には届かない)。
  • 偶対称:$r_{xx}[-\ell] = r_{xx}[\ell]$ であり、図からも見てとれる ✓。
  • 信号の周期で振動:サイドローブは $\approx 10$ ラグの周期で符号を変える(たとえば $r_{xx}[\pm 5] \approx -4.0$ が最も深い負のくぼみである:余弦波を半周期ずらすと逆位相で重なる)。ただし $|\ell|$ が大きくなるにつれて減衰する。有限長の窓どうしの重なりが減っていくからである——$|\ell| \ge 11$ では二つの複製はまったく重ならず、$r_{xx}[\ell] = 0$ となる。
  • 有限な台:長さ $L$ の系列の自己相関は $|\ell| \le L-1 = 20$ の範囲に限られる ✓。