『インターフェース』 2021年3月号 特集「Pythonで信号処理 時系列データ 解析編」

  • インターフェース 2021年3月号 (特集 Pythonで信号処理 時系列データ 解析編; 特設 やり直しのための信号処理数学)。CQ出版社。

CQ出版社の出版物はエレクトロニクスのハードウェアづくりに関連するものが多いが、そのうちでは雑誌『インターフェース』はソフトウェアの話題が多い。ハードウェアに組みこむソフトウェアの話題だとわたしには関係ないと感じるのだが、計算機上でもつかえるものだと興味がわく。

この号は店頭に積まれていた。雑誌の表題「Interface」にまけない大きさの字で「Pythonで信号処理」、つづいて「時系列データ 解説編」と書いてある。

わたしは時系列データ解析技法 (ディジタルフィルターやパワースペクトル)をしごとでつかうことがあり、教えることもあった。ただし、むかしつかった道具をよく保存していないし、あってもFortranプログラムで、これから学ぶ人といっしょにやるためには道具をつくりなおす必要がある。プログラム言語の選択ではまよっているが Python は候補だった。だから、買ってみることにした。

同じ号に「特集 Pythonで信号処理」と「特設 やり直しのための信号処理数学」があって、どちらも 辰岡 鉄郎 さんがほぼひとりで書いている (すこしだけ「編集部」による記事がまじっている)。辰岡さんの本をつくろうとしていて、まず雑誌で出してみることにしたのだろう。本だと長期にわたって売れる可能性があるが予想がつきにくいし、技術書をあつかう少数の本屋に置かれるだけだ。雑誌は多くの本屋に置かれるが次の号が出ると消えてしまう。出版社としては同じ材料を両方の形で売りたいだろう。

この号にはこの特集・特設以外の記事もあるが、その多くはまえからつづく連載だ。(話題としてちょっとおもしろくはあるのだが、前から読んでいないのでおもしろさがじゅうぶんわからない。) 「MicroPython入門」は、これからはじまる連載の準備だそうだ。

専門教育の授業の教科書だとすれば、「特設」のほうが講義の教材で「特集」のほうが実習の教材にあたる。

「特設」は、フーリエ変換、ラプラス変換、z変換などの応用数学の道具から、スペクトル解析とディジタルフィルタの基本にいたる教材だ。ただし、ディジタルフィルタの設計の実際は次号まわしになっている (次号を買わされてしまう)。【[2021-03-29 補足] FIR (非再帰型)フィルタの設計は4月号、IIR (再帰型) フィルタの設計は5月号に出た。わたしは5月号だけ追加で買った。】 たくさんのことをつめこんでいるから、それぞれの説明がじゅうぶんではないと思うが、どこかで学んだがおぼろげになっていることの「やり直し」(いまのわたしはまさにそうだ)には適切な量かもしれない。

「特集」のほうは、実際の時系列データにディジタルフィルタをかけたりスペクトル解析をしてみたりする。例として、脳波、心電図、筋電図をあつかっている。その測定のしかたにもちょっとふれているが、信号処理の教材としてつかいたい人のためには、出版社のウェブサイトにデータが置かれている。

ざっと見ただけで思ったことだが、「特集」の時系列データ例は、たとえば電源周波数からくるノイズがふくまれてはいるが、欠損なく続いたものだ。気候の観測データの時系列をあつかうには、欠測とか観測条件の変遷とかに対処する必要がある。心電図のばあいでも、じっとしていることのできない人の心電図が、とぎれたり、感度がかわったりすることに似ているかもしれない。そのばあいに本書の方法をまねできるかどうかは、やってみないとわからないが、かならずしもあてにできないと思う。

Pythonのライブラリとしては、数値計算の定番といえる NumPy と 作図のための matplotlib のほかに、SciPy のうちの fft と signal をつかっている。FFT (高速フーリエ変換) は定型処理だから既存のライブラリをつかうのが適切だろう (ライブラリのうちにも複数のルーチンがあって、本書ではその性能比較も試みている)。フーリエ変換の数値の規格化の問題(平均するのか合計するのかとか、無次元化した時間で1周期は1なのか2πなのかとか)はあるが、わかった例でためしてみればすむことだ。しかし、signal のほうは、信号処理という専門の人がつかう定型処理をまとめたものだろう。気候データ解析の目的には、欠損値や時系列の端の処理などがそのままではつかえない可能性もあると思う (ためしてみてだめなら自分でプログラムを書くことになるだろう)。

「特集」と「特設」の部分の目次を、記事の表題だけでなくその1段下の四角でかこまれた見出しのレベルまで書きぬいてみた。折りかえしのあとにつける。

== 目次 ==
特集 Pythonで信号処理 時系列データ 解析編 /特集執筆: 辰岡 鉄郎
– イントロダクション: データ・サイエンスの初歩! 時系列信号処理が今求められる理由
– – – 時系列信号だらけの世の中になる
– – – 時系列データには信号処理が必須
– – – 信号処理をPythonで
– – – 時系列信号解析で広がる世界
– 第1章 IIRフィルタと周波数解析
– – – 脳波データや解析プログラムの入手先
– – – Pythonプログラムの基本構成と準備するライブラリ
– – – Pyrhonによるディジタル・フィルタの設計
– – – [コラム] FFT関数の処理速度比較
– – – 設計したディジタル・フィルタでノイズ除去
– – – Pythonで周波数解析
– – – スペクトル描画の基本/工夫/種類
– – Appendix 1: 信号処理にPythonが良い理由
– – – すぐに試せる
– – – 無償
– – Appendix 2: WindowsでPython信号処理を試す準備 /編集部
– – Appendix 3: 時系列データの収集に使った装置
– – Appendix 4: 生体計測装置を使う際には安全最優先で
– 第2章 移動平均と不等間隔サンプリングの周波数解析
– – – 信号処理の目的
– – – 適用する信号処理
– – – ちょこっと基礎知識 … 心電図について
– – – ディジタル・フィルタでノイズ除去
– – – 心拍変動解析 (HRV)
– – – [コラム 1] 本章で使用した心電図データの測定方法
– – – [コラム 2] pandas.Series().rolling().mean() 関数の処理時間
– – – Pythonによる実装
– 第3章 FIRフィルタを利用した包絡線検出とスペクトルの統計解析
– – – 本章で体験する信号解析
– – – [コラム 1] 筋電図はこうして取得した
– – – [コラム 2] 包絡線検出のアルゴリズム
– – – 筋電図の特徴
– – – 筋電図と強度波形の比較
– – – パワー・スペクトルの統計値の変化
– – – Pythonで実装 1 … 強度波形
– – – [コラム 3] FIRフィルタの設計関数 … firwin2() 関数の firwin() 関数との違い
– – – Pythonで実装 2 … FIRフィルタの設計
– – – Pythonで実装 3 … パワー・スペクトルから統計値を算出する
特設 やりなおしのための信号処理数学 /特設執筆: 辰岡 鉄郎
– 第1部 周波数解析編
– – 第1章 フーリエ変換
– – – フーリエ級数展開
– – – [コラム 1] フーリエ変換の種類と特徴
– – – 複素フーリエ級数展開
– – – [コラム 2] オイラーの公式
– – – [コラム 3] 非周期信号用のフーリエ変換の定義式をアバウトに導く
– – – 離散フーリエ変換 (DFT)
– – – 高速フーリエ変換 (FFT)
– – – [コラム 4] 複素指数関数の幾何学的イメージ
– – – フーリエ変換の性質
– – 第2章 基底変換と内積
– – – 同じベクトルを違う尺度で表す … 基底変換
– – – 要素ごとに掛けて足す … ベクトルの内積
– – – 内積の応用例
– – – 特徴抽出でも内積が使われている
– – – 基底変換と内積で見た 離散フーリエ変換/逆変換の意味
– – – 他のフーリエ変換もベクトル目線で考えてみる
– – 第3章 窓関数
– – – なぜ窓関数が必要になるのか
– – – 窓関数の周波数スペクトル
– – – 周波数スペクトルの広がりと解決法
– – – 窓関数の種類
– – – 窓関数の効果を確認
– – – 窓関数を表す式
– – – 窓関数の作用を別の確度角度から理解する
– – 第4章 離散時間信号の性質
– – – 信号処理に頻出のワード
– – – 連続時間/離散時間信号の周波数特性
– – – [コラム] デルタ関数が誕生した理由
– – 第5章 便利帳
– – – 周波数解析とスペクトル
– – – 各スペクトルの計算方法
– – – 正規化周波数と周波数分解能
– – – 周波数特性のグラフの表記
– – – さまざまな波形の振幅スペクトル
– – – 周波数解析の種類
– 第2部 ディジタル・フィルタ設計編
– – 第1章 線形性と時不変性
– – 第2章 ラプラス変換と伝達関数
– – – 伝達関数
– – – [コラム] 微分方程式をフーリエ変換では解けずラプラス変換が必要となる理由
– – 第3章 z変換
– – – 変数 s と z の関係
– – – FIRフィルタとIIRフィルタ
– – 第4章 ディジタル・フィルタの解析
– – – 差分方程式とブロック図 … フィルタの簡単化にも役立つ
– – – 周波数応答とインパルス応答 … フィルタの特性を把握する
– – – 極と零点 … フィルタの安定性の判定と大まかな特性の把握に
– – – 因果性と零位相特性
– – – 線形位相特性
– – – [コラム] FFTして周波数領域で不要な成分をカットしてから逆FFTするのは何が問題?
– – – 位相遅延、群遅延
– – FIRフィルタとIIRフィルタの設計 (次号)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください