Files
ncmr-songs/wip/dsp.md

274 lines
18 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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(\omega)$ (エッチオメガ)
- (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
### 1. Signals and systems
- What is a signal
- A function of one or more variables carrying information; here, amplitude over time
- What is a system
- A system maps an input signal to an output signal
- Characterized entirely by its behavior on inputs — the internals are not required
- Most systems are nonlinear — linearity is a special property, not the default
- Linearity: superposition holds — scaling and additivity
- Most physical systems violate this under sufficient conditions (e.g. overdrive: linear below clip threshold, nonlinear at and above it)
- Time-invariance
- A time-invariant system responds identically regardless of when the input arrives
- Violation: any system with time-varying parameters (e.g. modulated effects)
- LTI as the restricted, studied case
- Satisfies both simultaneously — analytically tractable
- A deliberate simplification; not a description of typical reality
- The impulse signal; impulse response
- The impulse: unit energy concentrated at a single point in time
- The impulse response: what an LTI system outputs when fed an impulse
- Completely characterizes the system
- The impulse response is a function — it exists in the same space as signals; systems are absorbed into signal space
### 2. LTI and convolution
- An LTI system is fully characterized by its impulse response
- Any input decomposes into scaled, shifted impulses
- By linearity and time-invariance, the output is the corresponding sum of scaled, shifted impulse responses
- Convolution as the operation
- That sum is convolution: $y = x * h$
- In continuous time, this is an integral: $y(t) = \int x(\tau) \, h(t - \tau) \, d\tau$
- Symmetric in its arguments: $x * h = h * x$
- Signal and system are interchangeable operands — both are functions; convolution makes no distinction between them
- Commutativity: for LTI systems, order of composition is irrelevant
- Two LTI systems in series have a combined impulse response equal to the convolution of each
- $h_1 * h_2 = h_2 * h_1$ — order does not affect the result
### 3. Signal transformation
- A signal can be represented equivalently in the frequency domain
- The Fourier transform: $s(t) \leftrightarrow S(\omega)$; any signal is a sum of sinusoids at different frequencies
- Each sinusoid has a frequency, amplitude, and phase
- $S(\omega)$ is the spectrum: how much of each frequency is present
- Analog signals carry components from DC to arbitrarily high frequencies
### 4. Filters
- A filter is an LTI system — characterized by its frequency response $H(\omega)$
- $H(\omega)$ is the Fourier transform of the impulse response $h(t)$
- Filtering: shaping a signal's spectrum by selectively attenuating or preserving frequency bands
- Basic types: lowpass, highpass, bandpass
- Lowpass: passes low frequencies, attenuates high
- Highpass: passes high frequencies, attenuates low
- Bandpass: passes a target band, attenuates above and below
- In discrete time: finite impulse response (FIR) and infinite impulse response (IIR) filters
### 5. Discrete time
- Moving from continuous to discrete: two axes require discretization
- Amplitude: $N$ bits → $2^N$ discrete levels
- Each sample is mapped to the nearest representable level; the error is quantization noise
- The representable range is fixed by design and hardware (ADC/DAC reference voltage)
- 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 $F_s$, faithful reconstruction is guaranteed up to $F_s/2$
- What $F_s/2$ should be is an applied engineering question — Nyquist does not answer it
- Components above $F_s/2$ are lost: aliasing
- LTI and convolution hold in discrete time — commutativity survives
- Convolution becomes a sum (finite for FIR, infinite for IIR)
### 6. Nonlinearity and consequences
- Real systems violate LTI: time-varying parameters, feedback, saturation
- Each breaks a different condition: time-variance breaks TI, feedback and saturation break linearity
- Examples
- Modulated delay (chorus, flanger): delay time varies with time → time-invariance breaks; same input at different times yields different output
- Overdrive: saturation above threshold → linearity breaks; EQ before overdrive ≠ overdrive before EQ
- Commutativity breaks — order of composition is no longer irrelevant
- $h_1$ followed by $h_2$ ≠ $h_2$ followed by $h_1$ in general
- No universal rule; behavior must be examined per case
### 7. Summary
- Most of the framework rests on the LTI assumption
- Signalsystem equivalence, convolution, commutativity, frequency-domain analysis — all require linearity and time-invariance
- Real systems break the assumption routinely
- Nonlinearity is not binary — it is a spectrum
- Some systems are close enough to linear that the theory applies as a practical approximation
- Others are not — linear theory offers no useful prediction
- Judging where a system falls requires knowing what linearity is in the first place
- The framework is studied not as a description of reality, but as a baseline against which deviations are measured
## Text (lyrics if you insist)
今度は、信号とシステム、そしてデジタル信号処理について説明する。
### 1. 信号とシステム
信号とシステムを知るには、信号とシステム両方を知る必要がある。
信号とは情報を運ぶものである。
ここでは時間の経過とともに振幅がどう変化するか、その関数として扱う。
システムとは、入力信号を受け取り、出力信号を出す箱である。
箱の中身は問わない。何を入れたら何が出るか、その関係だけがシステムを定義する。
システムにはいくつか性質がある。線形性。
線形システムとは、重ね合わせの原理が成り立つシステムである。
入力を2倍にすれば出力も2倍になる。二つの入力を足し合わせたときの出力は、それぞれ単独で入れたときの出力を足したものと等しい。
この二つの条件が揃ったとき、そのシステムは線形である。
ただ、多くの物理システムはこの条件を満たさない。線形性は特殊であり、当たり前ではない。
そして時不変性。
時不変システムとは、入力を時間軸上でずらしたとき、出力も同じだけずれるシステムである。
今日と明日で同じ入力を与えれば、同じ出力が返ってくる。
パラメータが時間とともに変わるシステムは、この条件を満たさない。
線形かつ時不変なシステムを、線形時不変システムと呼ぶ。ここから先は一旦これだけを扱う。
これは解析的に扱いやすい、意図的に絞った特殊ケースである。現実の大半はこれに当てはまらない。けど、解析的に扱いやすいから線形時不変だけを考える。
ここで道具を一つ出す。インパルス信号である。
単一の瞬間に単位エネルギーが集中した信号で、実際には存在しない理想だが、使える。ちなみに瞬間とは無限に短い間のことである。
このインパルスをある線形時不変システムに通した出力を、そのシステムのインパルス応答と呼ぶ。
インパルス応答は、そのシステムを完全に表現できる。システムが確定したらインパルス応答も唯一になり、インパルス応答があれば唯一に対応するシステムも特定できる。
任意の入力はインパルスの積み重ねとして分解できる。インパルス応答さえ分かれば、どんな入力に対する出力も計算できる。
それと、インパルス応答はシステムの出力でありながら、信号と同じ種類の関数である。
つまりインパルス応答によって、システムは信号と同じ空間に置ける。操作の上では、システムと信号の区別は消える。
### 2. 線形時不変システムと畳み込み
インパルス応答がシステムを決定すると言った。なぜだろう。
任意の入力信号は、大きさの異なるインパルスを時間軸上に並べたものとして表せる。
線形時不変システムはそれぞれのインパルスに独立に反応し、その応答を全て重ね合わせる。
この重ね合わせ全体の操作を、畳み込みと呼ぶ。
連続時間では、畳み込みは積分になる。
時間軸に沿って入力を少しずつずらしながら、そのずれに対応するインパルス応答を強さに応じて足し合わせる。その積分の結果が出力である。
$y = x * h$ y イコール x 畳み込み h
畳み込みはその二つの引数に対して対称である。
$x * h = h * x$ x 畳み込み h イコール h 畳み込み x
これは計算上の偶然ではない。x と h が同じ種類の対象だからそうなる。前の節で言った、インパルス応答で、システムが信号空間に変換される話の続きである。
この対称性には実用上の意味がある。
二つの線形時不変システムを直列につないだとき、合成されたシステムのインパルス応答は、各インパルス応答の畳み込みである。
$h_1 * h_2 = h_2 * h_1$ h1 畳み込み h2 イコール h2 畳み込み h1
どちらを先につないでも、結果は変わらない。
### 3. 信号変換
これまで信号を時間の関数として扱ってきた。しかし同じ信号を、全く別の視点から見ることができる。
それが周波数領域という見方である。
フーリエ変換がそれを可能にする。
$s(t)$(エス ティー)と $S(\omega)$(エス オメガ)は同じ信号の二つの顔である。
一方は時間の経過を、もう一方は周波数の分布を示す。
フーリエ変換が言っているのは、こういうことである。
どんな信号も、周波数の異なる正弦波をいくつか重ね合わせたものとして表せる。
楽器かエンジンの音がわかりやすい例である。基音と倍音がある。それぞれ異なる周波数の正弦波で、それらが重なって音色になる。
$S(\omega)$ はその内訳である。どの周波数の成分がどれだけの強さで含まれているか、それがスペクトルである。
アナログ信号は原理的には、ゼロから無限大まであらゆる周波数成分を持ちうる。
このことが、後の離散化の議論に関わってくる。
### 4. フィルタ
フィルタは線形時不変システムの実用的な例である。
フーリエ変換の言葉で言えば、フィルタとは信号のスペクトルを形作るシステムである。
フィルタを特徴づけるのは周波数応答 $H(\omega)$(エイチ オメガ)である。
これはインパルス応答 $h(t)$ をフーリエ変換したものである。
インパルス応答が時間領域でシステムを表すように、周波数応答は周波数領域でそのシステムを表している。
フィルタの働きは、周波数によって信号をふるいにかけることである。
基本的な分類としてローパス、ハイパス、バンドパスがある。
ローパスフィルタは低い周波数だけを通し、高い周波数を削ぎ落とす。
ハイパスフィルタはその逆で、高い周波数を通し、低い周波数を削ぐ。
バンドパスフィルタは特定の帯域だけを通し、それより低い成分も高い成分も減衰させる。
離散時間においては、有限インパルス応答フィルタと無限インパルス応答フィルタの区別がある。
前者のインパルス応答はある時点で終わる。後者は終わらない。
### 5. 離散時間
ここで話題を変える。これまでの議論は連続時間を前提としていた。
デジタルシステムは連続信号をそのまま扱えない。離散化が必要になる。
離散化には二つの軸がある。振幅軸と時間軸である。
まず振幅軸について。
デジタルシステムが振幅を表現できる精度は、ビット深度によって決まる。
$N$ ビットのシステムは $2^N$ 個の離散的な振幅レベルを持つ。
各サンプルの値は、最も近いレベルに丸められる。この丸め誤差を量子化ノイズと呼ぶ。
表現できる振幅の上限と下限は、設計とハードウェアによって固定されている。ADCやDACの基準電圧がそれを決める。
その境界を超えると、ハードクリップが起きる。
アナログ回路は限界に近づくにつれて少しずつ歪む。デジタルにそういう曖昧さはない。境界は硬い。
次に時間軸について。
デジタルシステムは、連続した時間の流れから、一定間隔で値を取り出す。これがサンプリングである。
ここで問題がある。前の節で述べたように、アナログ信号は原理的には無限大まで周波数成分を持ちうる。
しかし有限のサンプリング頻度では、表現できる周波数に上限がある。全てを保存することはできない。
では何が失われ、何が残るのか。
もし信号の中に高すぎる周波数成分がなければ、サンプリングによって失うものは実質的にない。
これが離散化を正当化する前提である。
ナイキストの定理が、これを定量化する。
サンプリング周波数を $F_s$ としたとき、$F_s/2$ より低い周波数成分は忠実に再構成できる。
定理が言うのはそれだけである。$F_s$ をどこに設定すべきかは、定理が教えてくれることではない。用途が決める。
$F_s/2$ を超える成分は再構成できない。これをエイリアシングと呼ぶ。
補足しておく。この離散化によって、線形時不変システムの性質が崩れるわけではない。
連続時間において積分であった畳み込みは、離散時間においては和になる。有限インパルス応答なら有限和、無限インパルス応答なら無限和である。
可換性を含む全ての性質は引き継がれる。
### 6. 非線形性とその影響
では、現実のシステムに戻る。
先ほど線形時不変システムは特殊ケースであると述べた。
現実のシステムは線形時不変システムの条件を様々な形で破る。
時変パラメータは時不変性を破る。
フィードバックと飽和は線形性を破る。
例を挙げる。
モジュレーテッドディレイを考える。コーラスやフランジャーがその例である。
ディレイタイムが時間とともに変化するとき、同じ入力でも入力するタイミングによって出力が異なる。
これは時不変性の破れである。
次にオーバードライブを考える。
入力が閾値を超えると飽和が生じ、出力は入力に比例しなくなる。
これは線形性の破れである。
そして順序が問題になる。EQの後にオーバードライブを適用した結果と、オーバードライブの後にEQを適用した結果は、一般に異なる。
このとき、畳み込みの可換性は成立しない。
非線形システムでは、一般に
$h_1$システム1の後に$h_2$システム2を適用した結果と、
$h_2$システム2の後に$h_1$システム1を適用した結果は、等しくない。
普遍的な規則は存在しない。
各ケースを個別に検討する必要がある。
### まとめ
以上がデジタル信号処理の基本的な枠組みである。
振り返ると、ここで述べたことの大半は線形時不変システムという前提の上に成り立っている。
信号とシステムが同じ空間に住むこと。畳み込みによる合成。可換性。周波数領域での見通しのよさ。
これらは全て、線形性と時不変性が揃っているからこそ成り立つ性質である。
そして最後で述べた通り、現実のシステムはその前提をしばしば破る。
では、なぜこの枠組みを学ぶのか、現実のシステムはほとんど非線形なのに。
非線形性は白黒ではないから。線形と見なして良いシステムもあれば、線形理論が全く通用しないシステムもある。
その見極めには、何が破れているのかを知る必要がある。線形の理論はそのためにある。
線形時不変システムの理論は、現実そのものの記述ではない。現実を測るための基準線である。