FFT
- FFTはFast Fourier Transform
    
- 厳密にはDFTの一種
 
 - FFTでは、有限長のデータをループさせて無限長の仮想データを作り、それに対して変換を施す。ゆえに、データの両端で振幅が一致していないと仮想データが連続ではなくなってしまい、おかしな周波数成分が入ってしまう。
 - それを避けるために、FFTの前処理としてオーバーラップと窓関数を使う。
 - 全体のステップとしては、
    
- 時系列データを集める
 - オーバーラップをかけて、時間窓の配列をつくる
 - それぞれに窓関数を適用して、つりがね型の時間窓の配列をつくる
 - それぞれにFFTを適用して、時間窓に対応する周波数成分の配列Yをつくる
 - Yのすべての要素の平均をとって、もとの時系列データ全体を代表する周波数特性を得る
 
 - 平均を取るので、時系列データ中ではだいたい同じような特徴のデータが並んでいる前提
    
- 外れ値は他の時間窓に押されて目立たなくなる
 
 - オーバーラップは情報をダブった形で取り出すので、戻すときにも配慮して戻す必要がある - overlap add - overlap save
 - 窓関数
    
- ハミング窓、ハニング窓は別物
 
 - 図式化するとスペクトルを得る
 
## 参考
- 
    
[Pythonを使ったFFT実装 (窓関数とオーバーラップも実装) 理系夫婦の方程式](https://rikei-fufu.com/2020/06/27/post-3237-python-fft/#index_id1)  - 窓関数を用いる理由 - ロジカルアーツ研究所
 - 窓関数とは - Cognicull
 - 11. スペクトル解析と窓関数 (やる夫で学ぶディジタル信号処理)
    
- サイドローブとメインローブはこれがわかりやすい
 
 
Backlinks
        STFT
        
      
        
      
      異常値の検知など、長い時系列データの全体の傾向ではなく、短い時間でのことを知りたい場合がある そこで使うのがSTFT(短時間フーリエ変換) 時系列データを分割して、別々にFFTに入れただけ FFTに入れると無限長の信号扱いになって境界で不連続になるから、[[時間窓]]を使う 短時間でも低周波成分は入ることに注意 局所的な性格が反映されやすく、遠い時刻のことが反映されなくなるというだけ [[FFT]]と違って時間軸を含めた3つの軸が必要になるから、スペクトルとは別の図を使う。それがスペクトログラム。時間と周波数で平面を作って、成分の強さは色で表現する。 しかし、[[フーリエ変換の不確定性原理]]により、周波数での分解能と時間での分解能を両立することはできない 長い時間窓でみると細かい周波数の差がわかる 短い時間窓で見ると周波数は大まかにしかわからない...