たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

離散信号基底変換の基本

長さ N の系列 x は N次元 数ベクトル内積空間 RN の元とみなせる。
x を標準基底 {e_i} の線形結合で表現すると次のようになる。

 \displaystyle
\boldsymbol{x}
= \left(\begin{array}{c}t_1 \\ t_2 \\ ... \\ t_n\end{array}\right)
= t_1 \left(\begin{array}{c}1 \\ 0 \\ ... \\ 0\end{array}\right)
    + t_2 \left(\begin{array}{c}0 \\ 1 \\ ... \\ 0\end{array}\right)
    + \ ... \
    + t_N \left(\begin{array}{c}0 \\ 0 \\ ... \\ 1\end{array}\right)
= \sum_{i=1}^N t_i \boldsymbol{e_i}


内積を用いて表現(正規直交展開)すると

 \displaystyle
\boldsymbol{x}
= \sum_{i=1}^N \langle \boldsymbol{x}, \boldsymbol{e_i}\rangle \boldsymbol{e_i}


RNを張る正規直交系 {e_i'} だとまったく同じ式になる。
例えばcosの系列は正規直交系を構成するので(これがRNを張る(基底になる)と仮定すると)次のように表現できる。

 \displaystyle
\boldsymbol{x}
= \sum_{i=1}^N \langle \boldsymbol{x}, \boldsymbol{cos_i}\rangle \boldsymbol{cos_i}
=     \langle \boldsymbol{x}, \boldsymbol{cos_0}       \rangle           \left(\begin{array}{c} cos_0(t=0)        \\ cos_0(t=1)       \\ ... \\ cos_0(t=N-1)        \end{array}\right) \
    + \langle \boldsymbol{x}, \boldsymbol{cos_1}       \rangle           \left(\begin{array}{c} cos_1(t=0)        \\ cos_1(t=1)       \\ ... \\ cos_1(t=N-1)        \end{array}\right) \
    + \ ... \
    + \langle \boldsymbol{x}, \boldsymbol{cos_{N-1}}\rangle            \left(\begin{array}{c} cos_{N-1}(t=0) \\ cos_{N-1}(t=1) \\ ... \\ cos_{N-1}(t=N-1) \end{array}\right) \


各周波数のcos波とxの類似度が内積で取られ、その重みに基づいてcos波の重ね合わせ(線形結合)でxが表現できる。
N個の内積スカラーを集めた長さNのベクトルが周波数表現になる。
実装時にはcosの行列(テーブル)をハードコードしておいて、ベクトル行列積で計算。

他の正規直交基底でも全く同じ議論になる。
sin・cos・e-iのような周期関数や、減衰関数の重ね合わせなど、いろいろあるが全部これに帰着できる。