manual merge from dsp notes

This commit is contained in:
Mikkeli Matlock
2026-03-13 21:05:26 +09:00
parent f24b777d95
commit 3621ff049c
2 changed files with 114 additions and 97 deletions

View File

@@ -1,16 +0,0 @@
# digital signal processing
A boring lecture about signals and systems, and its digital implementation in DSP.
Borderline 'song' less 'poetic'.
The actual material (text that is read out by a vocal synthesiser) is in Japanese.
## Simple notes
For things that are not easily pronounced (e.g. formulae, expressions, symbols), inclusive either:
- Mark how the thing should be pronounced in a pair of adjacent parentheses
- e.g. H(ω) (エッチオメガ)
- (inclusive) Or don't embed these elements too deep into the flow of sentences; use common, laymen's language instead
- e.g. not `Fs/2サンプリング周波数の半分までの帯域を忠実に再構成できる` but `サンプリング周波数の半分までの帯域を忠実に再構成できる`
The general direction is to stay boring, but the deadpan kind of boring. Keep technical language appearing but explain things in more laymen's language.

View File

@@ -3,7 +3,17 @@
A boring lecture about signals and systems, and its digital implementation in DSP. A boring lecture about signals and systems, and its digital implementation in DSP.
Borderline 'song' less 'poetic'. Borderline 'song' less 'poetic'.
The actual material (text that is read) is in Japanese. The actual material (text that is read out by a vocal synthesiser) is in Japanese.
## Simple notes
For things that are not easily pronounced (e.g. formulae, expressions, symbols), inclusive either:
- Mark how the thing should be pronounced in a pair of adjacent parentheses
- e.g. H(ω) (エッチオメガ)
- (inclusive) Or don't embed these elements too deep into the flow of sentences; use common, laymen's language instead
- e.g. not `Fs/2サンプリング周波数の半分までの帯域を忠実に再構成できる` but `サンプリング周波数の半分までの帯域を忠実に再構成できる`
The general direction is to stay boring, but the deadpan kind of boring. Keep technical language appearing but explain things in more laymen's language.
## Outline ## Outline
@@ -34,6 +44,7 @@ The actual material (text that is read) is in Japanese.
- By linearity and time-invariance, the output is the corresponding sum of scaled, shifted impulse responses - By linearity and time-invariance, the output is the corresponding sum of scaled, shifted impulse responses
- Convolution as the operation - Convolution as the operation
- That sum is convolution: y = x * h - That sum is convolution: y = x * h
- In continuous time, this is an integral: y(t) = ∫ x(τ) h(tτ) dτ
- Symmetric in its arguments: x * h = h * x - Symmetric in its arguments: x * h = h * x
- Signal and system are interchangeable operands — both are functions; convolution makes no distinction between them - Signal and system are interchangeable operands — both are functions; convolution makes no distinction between them
- Commutativity: for LTI systems, order of composition is irrelevant - Commutativity: for LTI systems, order of composition is irrelevant
@@ -41,9 +52,11 @@ The actual material (text that is read) is in Japanese.
- h₁ * h₂ = h₂ * h₁ — order does not affect the result - h₁ * h₂ = h₂ * h₁ — order does not affect the result
### 3. Signal transformation ### 3. Signal transformation
- A signal in time can be equivalently represented in the frequency domain - A signal can be represented equivalently in the frequency domain
- The Fourier transform: s(t) ↔ S(ω); decomposes a signal into its constituent frequencies - The Fourier transform: s(t) ↔ S(ω); any signal is a sum of sinusoids at different frequencies
- Analog signals carry frequency components from DC to arbitrarily high frequencies - Each sinusoid has a frequency, amplitude, and phase
- S(ω) is the spectrum: how much of each frequency is present
- Analog signals carry components from DC to arbitrarily high frequencies
### 4. Filters ### 4. Filters
- A filter is an LTI system — characterized by its frequency response H(ω) - A filter is an LTI system — characterized by its frequency response H(ω)
@@ -56,15 +69,19 @@ The actual material (text that is read) is in Japanese.
- In discrete time: finite impulse response (FIR) and infinite impulse response (IIR) filters - In discrete time: finite impulse response (FIR) and infinite impulse response (IIR) filters
### 5. Discrete time ### 5. Discrete time
- Discretization on two axes: amplitude and time - Moving from continuous to discrete: two axes require discretization
- Amplitude: bit depth; finite resolution; hard clip at boundary (unlike analog soft limits) - Amplitude: N bits → 2^N discrete levels
- A signal's frequency spectrum, not its time-domain values alone, determines what is lost in sampling - Each sample is mapped to the nearest representable level; the error is quantization noise
- Analog signals have components from DC to infinite frequency — not representable in discrete time - The representable range is fixed by design and hardware (ADC/DAC reference voltage)
- Discrete time is viable if components up to a sufficient frequency are preserved - Hard clip at the boundary — analog degrades gradually toward its physical limits; digital does not
- Time axis: sampling captures only finitely many values per second
- Analog signals contain frequency components up to infinity — a discrete system cannot represent all of them
- Discrete time is viable when the high-frequency components that would be lost are not needed
- Nyquist: given sampling rate Fs, faithful reconstruction is guaranteed up to Fs/2 - Nyquist: given sampling rate Fs, faithful reconstruction is guaranteed up to Fs/2
- What Fs/2 should be is an applied engineering question — Nyquist does not answer it - What Fs/2 should be is an applied engineering question — Nyquist does not answer it
- Components above Fs/2 are lost: aliasing - Components above Fs/2 are lost: aliasing
- LTI and convolution hold in discrete time — commutativity survives - LTI and convolution hold in discrete time — commutativity survives
- Convolution becomes a sum (finite for FIR, infinite for IIR)
### 6. Nonlinearity and consequences ### 6. Nonlinearity and consequences
- Real systems violate LTI: time-varying parameters, feedback, saturation - Real systems violate LTI: time-varying parameters, feedback, saturation
@@ -82,114 +99,130 @@ The actual material (text that is read) is in Japanese.
### 1. 信号とシステム ### 1. 信号とシステム
まず信号とは何か、次にシステムとは何かを定義し、 まず信号とは何か、次にシステムとは何かを定義し、その上でシステムの性質を議論する。
その上でシステムの性質を議論する。
信号とは、一つ以上の変数の関数として定義される。 信号とは情報を運ぶものである。
信号は情報を担う。 ここでは時間の経過とともに振幅がどう変化するか、その関数として扱う。
ここでは時間を変数とし、振幅の時間変化として扱う。
システムとは、入力信号を出力信号へ写す操作である。 システムとは、入力信号を受け取り、出力信号を返す操作である。
内部の構造は定義に含まれない 箱の中身は問わない。何を入れたら何が出るか、その関係だけがシステムを定義する
システムはその入出力の関係によってのみ特徴づけられる。
システムの性質として、まず線形性を取り上げる。 システムの性質として、まず線形性を取り上げる。
線形システムとは、重ね合わせの原理が成立するシステムである。 線形システムとは、重ね合わせの原理が成り立つシステムである。
入力をスケーリングすれば出力も同率でスケーリングされ、 入力を2倍にすれば出力も2倍になる。二つの入力を足し合わせたときの出力は、それぞれ単独で入れたときの出力を足したものと等しい。
入力の和に対する出力は、各入力の出力の和に等しい この二つの条件が揃ったとき、そのシステムは線形である
ここで注意が必要である。 ただし注意が必要である。
多くの物理システムはこの条件を満たさない。 多くの物理システムはこの条件を満たさない。線形性は特殊な性質であり、当たり前ではない。
線形性は特殊な性質であり、デフォルトではない。
次に時不変性について述べる。 次に時不変性について述べる。
時不変システムとは、入力を時間軸上でシフトしたとき、 時不変システムとは、入力を時間軸上でずらしたとき、出力も同じだけずれるシステムである。
出力も同じだけシフトされるシステムである。 今日と明日で同じ入力を与えれば、同じ出力が返ってくる。
パラメータが時間とともに変化するシステムは、時不変ではない。 パラメータが時間とともに変るシステムは、この条件を満たさない。
線形かつ時不変なシステムを、線形時不変システムと呼ぶ。 線形かつ時不変なシステムを、線形時不変システムと呼ぶ。以降の議論はこれを対象とする。
以降の議論はこの線形時不変システムを対象とする これは解析的に扱いやすい、意図的に絞った特殊ケースである。現実の典型ではない
これは解析的に扱いやすい、制限された特殊ケースである。
現実の典型ではない、という点は記憶にとどめておいてほしい。
線形時不変システムの性質をさらに掘り下げる前に、 線形時不変システムをさらに掘り下げる前に、インパルス信号を導入する。
インパルス信号を導入する。 インパルス信号とは、単一の瞬間に単位エネルギーが集中した信号である。実際には存在しない理想だが、有用な概念道具である。
インパルス信号とは、単一の時刻に単位エネルギーが集中した信号である このインパルスを線形時不変システムに入力したときの出力を、インパルス応答と呼ぶ
線形時不変システムにインパルスを入力したときの出力を、インパルス応答と呼ぶ。
このインパルス応答が、線形時不変システムを完全に特徴づける。
ここで重要な点を強調する。 インパルス応答は、そのシステムを完全に決定する。
インパルス応答は、信号と同種の関数である。 なぜなら、任意の入力はインパルスの積み重ねとして分解できるからである。インパルス応答さえ分かれば、どんな入力に対する出力も計算できる。
これにより、システムは信号と同じ操作の空間に置かれる。
システムと信号の区別は、操作の上では消える。 もう一つ重要なことがある。
インパルス応答は、システムの出力でありながら、信号と同じ種類の関数である。
つまりシステムは、信号と同じ操作の空間に置くことができる。システムと信号の区別は、操作の上では消える。
### 2. 線形時不変システムと畳み込み ### 2. 線形時不変システムと畳み込み
なぜそう言えるのか。 なぜインパルス応答がシステムを完全に決定できるのか。
任意の入力信号は、スケーリングされた時間シフトインパルスの和として分解できる。
線形性と時不変性により、 任意の入力信号は、大きさの異なるインパルスを時間軸上に並べたものとして表せる。
それぞれのインパルスに対する出力の和が、入力全体に対する出力となる。 線形時不変システムはそれぞれのインパルスに独立に反応し、その応答を全て重ね合わせる。
この操作を畳み込みと呼ぶ。 この重ね合わせ全体の操作を畳み込みと呼ぶ。
連続時間においては、畳み込みは積分として定義される。
時間軸に沿って入力を少しずつずらしながら、そのずれに対応するインパルス応答を強さに応じて足し合わせる。その積分の結果が出力である。
y = x * h y イコール x 畳み込み h y = x * h y イコール x 畳み込み h
畳み込みはその引数に対して対称である。 ここで興味深い性質がある。畳み込みはその二つの引数に対して対称である。
x * h = h * x x 畳み込み h イコール h 畳み込み x x * h = h * x x 畳み込み h イコール h 畳み込み x
これは代数的な性質にとどまらない。x と h が同の対象であることの表れである。 これは単なる計算上の便宜ではない。x と h が同じ種類の対象であること、つまりシステムが信号空間に吸収されることの、自然な帰結である。
この対称性から、重要な結論が導かれる。 この対称性から、実用上重要な結論が出てくる。
二つの線形時不変システムを直列に接続する場合を考える。 二つの線形時不変システムを直列につないだとき、合成されたシステムのインパルス応答は、各インパルス応答の畳み込みである。
合成されたシステムのインパルス応答は、各インパルス応答の畳み込みに等しい。
h₁ * h₂ = h₂ * h₁ h1 畳み込み h2 イコール h2 畳み込み h1 h₁ * h₂ = h₂ * h₁ h1 畳み込み h2 イコール h2 畳み込み h1
接続の順序は、結果に影響しない。 どちらを先につないでも、結果は変わらない。
### 3. 信号変換 ### 3. 信号変換
こで話題を変える。 れまで信号を時間の関数として扱ってきた。しかし同じ信号を、全く別の視点から見ることができる。
これまでの議論は連続時間を前提としていた それが周波数領域という見方である
しかしデジタルシステムにおいては、連続信号をそのまま扱うことができない。
離散化は二つの軸で生じる。振幅軸と時間軸である。 フーリエ変換がそれを可能にする。
振幅軸の離散化はビット深度によって規定される。 s(t)(エス ティー)と S(ω)(エス オメガ)は同じ信号の二つの顔である。
表現可能な範囲の境界でハードクリップが発生する 一方は時間の経過を、もう一方は周波数の分布を示す
アナログシステムの物理的な限界とは異なり、これは硬い境界である。
時間軸の離散化を理解するには、まず別の観点から信号を見る必要がある。 フーリエ変換が言っているのは、こういうことである。
信号 s(t)(エス ティー)は、時間領域での表現とは別に、周波数領域でも表現できる。 どんな信号も、周波数の異なる正弦波をいくつか重ね合わせたものとして表せる。
これをフーリエ変換と呼ぶ。s(t)(エス ティー)と S(ω)(エス オメガ)は同じ信号の二つの見方である。 たとえば楽器の音を思い浮かべてほしい。基音があり、倍音がある。
この変換により、信号を周波数成分の重ね合わせとして捉えることができる。 それぞれが異なる周波数の正弦波で、それらが重なって一つの音色になる。
S(ω) はその内訳である。どの周波数の成分がどれだけの強さで含まれているか、それがスペクトルである。
アナログ信号は原理的にはゼロから無限大まで、すべての周波数成分を持ちうる。 アナログ信号は原理的にはゼロから無限大まであらゆる周波数成分を持ちうる。
離散システムはこれを完全には表現できない このことが、後の離散化の議論に関わってくる
しかし、もし十分な高周波成分が不要であれば、離散時間は有効な選択肢となる。
これが離散化の根拠である。
### 4. フィルタ ### 4. フィルタ
フィルタは線形時不変システムの具体的な例である。 フィルタは線形時不変システムの実用的な例である。
ィルタは周波数応答 H(ω)(エイチ オメガ)によって特徴づけられる。 ーリエ変換の言葉で言えば、フィルタとは信号のスペクトルを形作るシステムである。
周波数応答はインパルス応答のフーリエ変換である。
フィルタリングとは、信号の周波数成分を選択的に通過させ、あるいは減衰させることである。
フィルタを特徴づけるのは周波数応答 H(ω)(エイチ オメガ)である。
これはインパルス応答 h(t) をフーリエ変換したものである。
インパルス応答が時間領域でシステムを表すように、周波数応答は周波数領域でそのシステムを表している。
フィルタの働きは、周波数によって信号をふるいにかけることである。
基本的な分類としてローパス、ハイパス、バンドパスがある。 基本的な分類としてローパス、ハイパス、バンドパスがある。
ローパスフィルタは低周波成分を通過させ、高周波成分を減衰させる ローパスフィルタは低周波数だけを通し、高周波数を削ぎ落とす
ハイパスフィルタはその逆で、高周波成分を通過させ、低周波成分を減衰させる ハイパスフィルタはその逆で、高周波数を通し、低周波数を削ぐ
バンドパスフィルタは特定の帯域のみを通過させ、それより低い成分も高い成分も減衰させる。 バンドパスフィルタは特定の帯域だけを通し、それより低い成分も高い成分も減衰させる。
離散時間においては、有限インパルス応答フィルタと無限インパルス応答フィルタの区別がある。 離散時間においては、有限インパルス応答フィルタと無限インパルス応答フィルタの区別がある。
前者インパルス応答が有限、後者は無限である 前者インパルス応答はある時点で終わる。後者は終わらない
### 5. 離散時間 ### 5. 離散時間
サンプリング周波数を Fs とする ここで話題を変える。これまでの議論は連続時間を前提としていた
ナイキストの定理が保証するのは、Fs/2サンプリング周波数の半分までの帯域を忠実に再構成できる、ということである。 デジタルシステムは連続信号をそのまま扱えない。離散化が必要になる。
それが全てである。定理はそれ以上のことを言わない。
Fs/2サンプリング周波数の半分をどこに設定すべきかは、定理が答える問いではない。それは用途が決める。
Fs/2サンプリング周波数の半分を超える成分は再構成できない。これをエイリアシングと呼ぶ。
重要なのは、この離散化によって線形時不変システムの性質が失われるわけではない、という点である。 離散化には二つの軸がある。振幅軸と時間軸である。
離散時間の線形時不変システムは、連続時間の線形時不変システムと類似した性質を持つ。
畳み込みは有限または無限の和となる まず振幅軸について
デジタルシステムが振幅を表現できる精度は、ビット深度によって決まる。
Nビットのシステムは 2^N 個の離散的な振幅レベルを持つ。
各サンプルの値は、最も近いレベルに丸められる。この丸め誤差を量子化ノイズと呼ぶ。
表現できる振幅の上限と下限は、設計とハードウェアによって固定されている。ADCやDACの基準電圧がそれを決める。
その境界を超えると、ハードクリップが起きる。
アナログ回路は限界に近づくにつれて少しずつ歪む。デジタルにそういう曖昧さはない。境界は硬い。
次に時間軸について。
デジタルシステムは、連続した時間の流れから、一定間隔で値を取り出す。これがサンプリングである。
ここで問題がある。前の節で述べたように、アナログ信号は原理的には無限大まで周波数成分を持ちうる。
しかし有限のサンプリング頻度では、表現できる周波数に上限がある。全てを保存することはできない。
では何が失われ、何が残るのか。
もし信号の中に高すぎる周波数成分がなければ、サンプリングによって失うものは実質的にない。
これが離散化を正当化する前提である。
ナイキストの定理が、これを定量化する。
サンプリング周波数を Fs としたとき、Fs/2 より低い周波数成分は忠実に再構成できる。
定理が言うのはそれだけである。Fs をどこに設定すべきかは、定理が教えてくれることではない。用途が決める。
Fs/2 を超える成分は再構成できない。これをエイリアシングと呼ぶ。
補足しておく。この離散化によって、線形時不変システムの性質が崩れるわけではない。
連続時間において積分であった畳み込みは、離散時間においては和になる。有限インパルス応答なら有限和、無限インパルス応答なら無限和である。
可換性を含む全ての性質は引き継がれる。 可換性を含む全ての性質は引き継がれる。
### 6. 非線形性とその影響 ### 6. 非線形性とその影響