個人的デジタル信号処理勉強メモ

# これは何？
個人的なデジタル信号処理の勉強のメモです。読んだ本の記録とか、勉強中に浮かんだ疑問とかを記録していく。自分以外の誰かの、信号処理に関する正確な理解に対して、本記事は何ら寄与するところは無いので注意してください。

# 疑問
1. サンプリング周波数とDFTの分解能の関係がよくわからん
    - 直感的な理解ではなく、式で理解したい
    - 「元の連続信号において、高周波成分は細かく波打ってる形で表れてる」「サンプリング周波数が小さい(周期がでかい)と、高周波の波打ちを拾えない」ということはわかる
- DFT(FFT)の際、窓関数がなぜ必要か、なぜこれをやれば嬉しいのか
- 元の連続信号を時間軸上で離散化(サンプリング)すると、周波数軸上で周期化される。なぜ？
- 元の連続信号を時間軸上で周期化すると、周波数軸上で離散化される。なぜ？
- ラプラス変換って何？
    - Z変換について生じた疑問を解消するためには、ラプラス変換を理解する必要がありそう
    - Z変換を使えばデジタルフィルタの畳み込み演算を関数同士の積算として表現できる
    - そもそもZ変換って何をやってるの？ 急に出てくる $z^{-n}$ は何？ $n$ は遅延器の数らしいけど
- DTFTって何？
    - 離散時間フーリエ変換のことらしいけど、ふつうのDFTと何が違うの？
    - DTFTはZ変換の特別な場合らしいが、よくわからない
- 基本波って何？ どう重要なの？ なぜ重要なの？
    - フーリエ級数展開したときに出てくる、最も周期の長い(周波数の低い)波のことを基本波と呼ぶらしい
    - 基本波の周期は $T$
    - 基本波の周波数は $\frac{1}{T}$
    - 基本波の角周波数 $ω = \frac{2π}{T}$
    - 第$n$高調波の周波数は$\frac{n}{T}$
    - 文献[1]の p.72-73 あたりを読み直そう
- IIR フィルタと FIR フィルタの違い
- 基本波の周期をTとして、なんで$\frac{2πnt}{T}$が出てくるの？
    - $n=1$ のとき、$\frac{n}{T} = \frac{1}{T}$ となり基本波の周波数を示す
    - $n=1$ かつ $t = T$ のとき、$\frac{2πnt}{T} = 2π$ となる。基本波が時刻 $T$ までで丁度 1 回転することを示す
    - 第 $n$ 高調波の周波数は $\frac{n}{T}$ となる
    - $t = T$ のとき、$\frac{2πnt}{T} = 2πn$ となる。つまり第 $n$ 高調波はそれぞれ時刻 $T$ までで丁度 $n$ 回転することを示す
    - 元の信号波形を構成するどの基本波も高調波も、時刻0から$T$の区間までで、何度目かの回転を"丁度"終えるように設定されている(前提としている)ことが $\frac{2πnt}{T}$ から読み取れる
    - 実際には $T$ までで丁度回転を終えるような周期信号の重ね合わせになっている入力信号は少ないはず。それを上手くあつかうために窓関数を導入する？
- フーリエ級数展開後に現れる第$n$高調波の角周波数についてうまく意味を飲み込めない
    - 以下のように噛み砕いてみる
    - 基本波の角周波数は $\omega = \frac{2 \pi}{T}$
    - 第$n$高調波の角周波数は $n \omega = \frac{2\pi n}{T}$
    - 時刻$t$が進むたびに第$n$高調波は角周波数 $n \omega$ 分だけ変化する ($n \omega t$)
    - 時刻$t$が基本波の周期$T$に達したとき、$n \omega t = 2 \pi n$ となる
    - つまり第$n$高調波は時刻$T$で丁度 $n$ 周したことになる (周期は $\frac{n}{T}$ なので当然)
    - 基本波の周期$T$を時刻$t$の最大値としたとき、第$n$高調波の当然の性質を記述するとこうなるっぽい
- フーリエ級数展開とDFTの違いは？
    - フーリエ級数展開は「時間上連続かつ無限な周期信号とは、異なる周波数の三角波の重ね合わせである」というもの
    - DFTは「時間軸上で離散化された周期信号の周波数応答は、周波数軸上で離散化された周期信号の形を取る」というもの
    - ~~フーリエ級数展開において、周波数軸は$\frac{1}{T}$で分割されているものの正負方向に無限に延びている~~ **(これは間違い。フーリエ級数展開において、周波数軸上での連続値を考えることはしなさそう。フーリエ級数展開はあくまで時間軸上での周期信号を考える。周波数軸上での連続値を考える場合は基本周期$T$を無限大に近似することになる。すなわち非周期信号を考えることに等しい。そして非周期信号の周波数応答を導くのはフーリエ級数展開ではなくフーリエ変換である)**
    - ~~DFTにおいて、周波数軸は$\frac{1}{T}$で分割されており且つ有限 (周波数の最大値はサンプリング周波数に依存)~~ **(正確ではない。DFTで得られる周波数応答は、周波数軸上で離散化されている。周波数軸上での分割幅はサンプリング周波数 $\frac{1}{N}$ である。サンプリング周波数は標本化定理で定められた条件を満たしている必要がある。でなければただしい周波数応答を得ることができない)**
    - ~~時間軸上で連続する周期関数を、周波数軸上で連続する関数の積分で表現するのがフーリエ級数展開。積分は周波数軸について行うもので、区間は無限~~ **(これは間違い。周波数軸上の連続値を考えるのはフーリエ変換。また、あくまでフーリエ変換は周波数応答を表すもの。フーリエ級数展開とフーリエ変換を混同しがちだが、両者は別物なので要注意)**



# 文献
読んだ本・読んでる本

- [1][信号処理入門 改訂2版 (図解メカトロニクス入門シリーズ)](https://www.amazon.co.jp/dp/4274086747/ref=cm_sw_r_tw_dp_U_x_OIg.CbG5VPV6E), 雨宮 好文 ,  オーム社, 1999
    - 読了
    - 良い本。すごくわかりやすい。諸々の式の導出過程を写経しつつ読むと理解が深まる

- [2] [C言語ではじめる音のプログラミング―サウンドエフェクトの信号処理](https://www.amazon.co.jp/dp/4274206505/ref=cm_sw_r_tw_dp_U_x_qeh.Cb4NR9QFV), 青木 直史, オーム社, 2008
    - 読了
    - デジタル信号処理の応用について解像度を高めたくて読んだ
    - コード例がいっぱい。数式がっつりで理論的な説明をしていくぞ！というよりは、実装メインでわからせる本という印象
    - 写経はしなかったけどパラパラめくって何となくイメージを深めることはできた。IIRはちょっとわからなかった……


- [3] [デジタルフーリエ変換 (ビギナーズ)](https://www.amazon.co.jp/dp/4501313609/ref=cm_sw_r_tw_dp_U_x_ky7.CbM97KC8A), 中村 尚五, 東京電機大学出版局, 1989
    - 3章まで読了
    - 解説の仕方は文献[1]よりもやや省略的に思えるが、デルタ関数による信号のサンプリングを第１章から説明している点が異なる
    - サンプリング定理についての説明は[1]と併せて読むことでより理解が深まった
    - [1]では解説されなかった窓関数については３章で紹介している
    - 写経しつつ読むべし
    - フーリエ級数展開からはじめてDFTに至るまでの過程の解説は[1]とまた異なった視点というか、書き方になっていて良い。時間軸、周波数軸上の離散化と無限・有限について、どういうプロセスでDFTになっていくのかを丁寧に記述してくれている。自分はアホなので同じページを日をまたいで3回読み直さないと頭に馴染まない
    - 2ヶ月近くこの本を(2〜3章だけ)何度も読んで写経して……を繰り返した結果、理解はだいぶ深まった。読んで良かった。

- [4] [信号処理入門 改訂3版 (図解メカトロニクス入門シリーズ)](https://www.amazon.co.jp/dp/4274222802/ref=cm_sw_r_tw_dp_U_x_ZU7.CbTG6104W), 雨宮 好文, オーム社, 2019
    - 未読了
    - 文献[1]の改訂版。デジタル信号処理についてページが追加された
    - 窓関数やデジタルフィルタについて新たに解説されている