ひたすら楽して音響信号解析 - MATLABで学ぶ基礎理論と実装 -
数式とプログラムの対応付けが出来るようになろう!
- 発行年月日
- 2021/02/12
- 判型
- A5
- ページ数
- 196ページ
- ISBN
- 978-4-339-00939-2
- 内容紹介
- まえがき
- 目次
- レビュー
- 書籍紹介・書評掲載情報
- 広告掲載情報
やあ,ようこそ,音響信号解析の世界へ.
音響信号解析というタイトルを見た時,きっと言葉では言い表せない「難しそう」という印象を受けたと思う.音響信号解析は,例えば信号から大きさや高さなどの情報を取り出すための理論の集合体である.1つ1つの理論を説明する数式は,大学1, 2年で学ぶ微分積分,線形代数,複素解析などの数学知識があれば証明はできる.信号処理の難しさは数式の証明ではなく,その数式が信号の何を説明しているかの解釈と,数式を計算機上で実装するプログラミング能力など,複合的な知識が求められる点にある.
◆本書の特色◆
音響信号解析の基礎的な理論に焦点を絞り,数式の導出と,その数式に対応するMATLABの実装例を併せて掲載することを重視した.章末課題はなく,プログラムを書き写すだけで実践的な解析ができるプログラムとなるようにしている.ひたすら楽するというコンセプトのもと,音響信号解析を効率的に学ぶための説明順序を再考して執筆した.将来的には理解してほしいが初見であれば詳細を読み飛ばしても良い箇所については,本文中で説明前に前置きした.まずは遠慮なく読み飛ばしながら学習を進め,読み終わった後で必要に応じて再度読んでみてほしい.
◆想定する読者◆
大学1, 2年での数学を習得した学生や技術者を想定している.音響信号に関する最低限の知識は本書の1章で説明しているので,音に特化した知識は読み始めるにあたり必要ない.プログラミングについては,MATLABの文法が分かれば最低限は問題なく,MATLAB入門のチュートリアルを終えていれば十分である.書籍内でプログラミングについての演習問題は存在しないが,「この数式の実装が何故このようなプログラムになるのか」について,各自でプログラムを動かし納得しながら学習を進めることを想定している.
◆各章のコンセプト◆
1章では本書を読み進めるために必要となる数学的知識をまとめた.2章から3章にかけて,音響信号のパワー等を取り出す基礎的な理論とプログラム,加えて音響信号解析において基盤技術となるスペクトル解析の説明まで進める.4章からは,スペクトル解析の実例を出発点として,やや高度な理論と実装を順番に説明することで,段階的に複雑な音響信号解析の手法を学べるようにした.
何十年も前から,偉大なる信号処理研究者たちの手によって,数多の書籍が出版されてきた。Webで検索すれば,信号解析や関連トピックを扱う膨大な数の書籍やWebの解説記事が生まれており,どの本が学びやすいか探すだけでも大変であろう。信号処理の書籍は,入門書,おもに洋書で出版される分厚い専門書,その他諸々に分けられる。本書は,「自分で読みたい教科書を作る」という筆者の情熱を出発点に,信号解析の基礎をひたすら楽して習得することを目指して工夫を凝らしている。
フーリエ変換を回避して高速フーリエ変換(FFT:fast Fourier transform)によるスペクトル解析を習得せよ,という目標は無謀に映るかもしれない。信号解析を習得するために必要な知識は多いため,解析したい信号があるにもかかわらず延々と基礎勉強を続けることは,苦行に感じることだろう。本書は,このような基礎勉強が苦行という懸念を覆し,プログラムにより実践的な内容に絞って習得することを目指している。逆に考えて,先人たちが実装したプログラムを利用すれば信号解析をするだけなら可能である,と割り切って執筆したことが特色である。
本書は,筆者の専門分野である1次元の音響信号解析に特化し,数式をプログラムで実装することに比重を置いた構成を採用した。これは,教科書に記載された数式をどのようにプログラムに落とし込めばよいのかわからずに躓く学生がこれまで多かった,という筆者自身の経験に基づく。数式と同じ結果が得られるよう理論を厳密に実装することは,アルゴリズムによっては容易ではない。そのため,例となるプログラムを数式に合わせて掲載することで,数式とプログラムの対応付けができることを目指している。信号解析の基礎を扱うという都合上,大学学部2,3年生の講義で用いる教科書を想定している。
ひたすら楽するというコンセプトから,本書はオーソドックスなディジタル信号処理の教科書とは異なる道筋で説明を展開することもある。例えば,前述の高速フーリエ変換を習得するためには,背景にある理論として学ぶべきことが多数存在する。おそらく多くの教科書では,フーリエ級数展開を出発点に複素フーリエ級数展開へ進み,そこからフーリエ変換の解説に進む。その後,離散フーリエ変換(DFT:discrete Fourier transform)を解説してからようやく高速フーリエ変換の説明に至る。場合によっては,アナログ信号処理に関する基礎やラプラス変換,z変換が入るかもしれない。一方本書は,例えば「高速フーリエ変換によるスペクトル解析」を初めにゴールとして定める。ゴールに必要な理論に限定して一切の無駄を省いた説明によりただひたすら楽をする,そんな教科書を意識した。楽をするため一般的な書籍に存在する章末問題すら省き,プログラムの書き写しにより基礎的な信号解析を習得できる構成にした。
もう1点の特色は,本書で扱うプログラミング言語にMATLABを採用していることである。本書を執筆している2020年であれば,信号解析を学ぶための筆頭候補に挙がるプログラミング言語はPythonであろう。Pythonはdeeplearning分野でシェアを伸ばしているプログラミング言語で,信号解析に関するライブラリも豊富にリリースされている。MATLABを選んだ理由は筆者の好みであるが,別の理由として,やはり楽をするための完成度の高さが挙げられる。MATLABはフリーソフトではないが,FreeMatやOctaveなどのMATLABクローンがフリーで利用できる。本書に記載した例題は,MATLAB以外では実装されていない関数や乱数を用いる場合を除き,MATLAB(2020a)とFreeMat(v4.2)でほぼ同じ出力が得られることを確認している。信号解析の入門に用いる言語として,たぶんMATLABが一番楽だと思います。
最後に,本書を執筆する機会を与えてくださった皆様に深謝します。また,相変わらず年中自由気ままな時間に執筆することを許してくれた妻に感謝します。
2020年12月
森勢 将雅
1.基礎知識
1.1 離散信号と波形の表示
1.2 ベクトルと内積
1.3 正弦波
1.4 複素数
1.5 オイラーの公式
1.6 単位インパルス関数と畳み込み演算
2.時間領域での信号解析
2.1 離散信号を扱う上での注意点
2.1.1 数式上の辻褄合わせ
2.1.2 離散信号固有の性質
2.2 信号のパワー
2.3 信号の平均時間と持続時間
2.3.1 信号の平均時間
2.3.2 信号の持続時間
2.4 信号の簡単な雑音除去
2.4.1 SN比に基づく信号・雑音の振幅調整
2.4.2 移動平均フィルタ
2.4.3 メディアンフィルタ
3.離散フーリエ変換の考え方
3.1 正弦波に関する事前知識
3.1.1 正弦波を構成するパラメータの定義
3.1.2 正弦波を構成するパラメータの推定
3.1.3 パラメータ推定のプログラムによる検証
3.1.4 周期の拡張
3.2 スペクトル解析に関する事前知識
3.2.1 正弦波の周波数推定
3.2.2 正弦波の重ね合わせ
3.3 離散フーリエ変換に向けた事前知識
3.3.1 離散信号を用いた場合に対する制約
3.3.2 複素数による係数の統合
3.3.3 係数を計算する範囲の注意点
3.4 離散フーリエ変換
3.4.1 離散フーリエ変換の定義
3.4.2 高速フーリエ変換によるスペクトル解析
4.高速フーリエ変換によるスペクトル解析
4.1 簡単なスペクトル解析の例
4.1.1 振幅スペクトルと位相スペクトルの定義
4.1.2 正弦波のスペクトル解析
4.1.3 ゼロ埋めによる信号長の調整
4.1.4 パーセバルの定理による漏れ誤差の解釈
4.2 位相スペクトル解析の例
4.2.1 単位インパルス関数を対象にした位相スペクトルの解析
4.2.2 位相のアンラップ
4.2.3 位相遅延
4.2.4 群遅延
4.3 スペクトルから算出する平均時間と持続時間
4.3.1 平均時間の算出
4.3.2 持続時間の算出
4.3.3 スペクトル解析に基づく解釈
4.4 スペクトル重心
5.窓関数
5.1 窓関数による信号の切り出し
5.1.1 離散フーリエ変換の周期性に起因する問題
5.1.2 窓関数による切り出しの数学的な解釈
5.1.3 離散信号に対する畳み込み定理
5.2 窓関数を導入する意義
5.2.1 窓関数の種類
5.2.2 窓関数を用いて切り出した信号に基づくスペクトル重心の計算
5.3 窓関数の性能
5.3.1 メインローブとサイドローブ
5.3.2 時間周波数解析のための窓関数
5.4 時間周波数解析例で学ぶ時間分解能と周波数分解能
5.4.1 チャープ信号の生成とスペクトル解析
5.4.2 チャープ信号の時間周波数解析
5.4.3 時間分解能と周波数分解能
5.5 不確定性原理
6.ディジタルフィルタ
6.1 線形時不変システム
6.1.1 システムを構成する3要素
6.1.2 線形性と時不変性
6.1.3 線形時不変システムをおもに用いる理由
6.2 ディジタルフィルタの概要
6.2.1 フィルタ処理の数学的解釈
6.2.2 フィルタの種類
6.2.3 その他のフィルタ
6.3 差分方程式から見る2種類のフィルタ
6.3.1 差分方程式とFIRフィルタ
6.3.2 IIRフィルタ
6.3.3 IIRフィルタのスペクトル解析
6.3.4 フィルタの接続
6.4 フィルタの解析
6.4.1 z変換によるフィルタの安定性解析
6.4.2 不安定なフィルタの例
6.4.3 フィルタの因果性
6.5 窓関数法によるフィルタの設計
6.5.1 振幅スペクトルの設計
6.5.2 インパルス応答の計算
6.5.3 振幅特性の検証
6.5.4 窓関数による処理
6.5.5 最終的な性能の評価
6.5.6 最小位相の例題
7.信号の種類に応じた解析法
7.1 間引きによるダウンサンプリング
7.1.1 単純に間引く場合の問題点
7.1.2 低域通過フィルタによる高域成分の除去
7.1.3 時間軸の補正
7.1.4 間引きによる適切なダウンサンプリング
7.2 オクターブバンド分析
7.2.1 オクターブバンド
7.2.2 オクターブバンド分析の実装
7.3 等価騒音レベルの計算
7.3.1 正弦波の周波数と知覚する大きさの関係
7.3.2 等価騒音レベルの計算法
7.4 ウェルチ法
7.4.1 振幅スペクトルのばらつき
7.4.2 ウェルチ法によるパワースペクトル推定
7.4.3 ウェルチ法の効果
7.5 周期信号解析に向けた基礎知識
7.5.1 周期信号の定義と構成要素
7.5.2 周期信号の生成
7.6 基本周波数推定
7.6.1 自己相関関数の定義
7.6.2 解析全体のアルゴリズムとプログラム例
7.6.3 推定プログラムの構成
7.7 調波間の振幅比
7.8 今後の勉強に向けて
引用・参考文献
索引
読者モニターレビュー【山下優樹 様(大学生,ご専門:機械学習)】
本書では,信号処理の基礎知識から,音響信号に対する様々な解析法とその実装方法まで明解に解説している。
数式に基づいて基礎理論を説明しつつ,厳密な証明よりも実践を重視し,初学者でも挫折せずに音響信号解析を習得できるよう工夫されている。
また,MATLABプログラムが併記されており,実際にプログラムを実行してみることで理解が深まる。
フーリエ変換,フィルタ,雑音除去など信号解析の基礎知識が網羅されており,実装を通して学びたい人への入門書として薦められる一冊である。
読者モニターレビュー【桜碧かなえ 様(ご専門:認知科学・脳波計測実験)】
書籍のタイトルに「ひたすら楽して」と書かれているので,簡単な内容しか勉強できないというような印象を受けていましたが,そうではありませんでした。この「ひたすら楽して」という言葉は,難しいことを考えたりすることなく,勉強できるという意味でした。
内容も非常に充実しており,音響信号解析に必要な知識を実際にMATLABを用いて手を動かしながら学ぶことができます。基礎知識の説明も充実しています。構成としては,説明,MATLABプログラム,プログラム結果,プログラム結果の説明という分かりやすい構成となっており,スムーズに学ぶことができます。説明では,なぜこのような処理が必要なのかについてもしっかり書かれていて,今後の応用の手助けとなるような内容も詰まっています。数式の説明もしっかりとあります。
音響信号解析に取り組んだことのない方にもおすすめできる一冊だと思います。
読者モニターレビュー【福原聡太郎 様(ご所属:Automatic Colors;作曲アニメ制作)】
音を聴くと言うのは,耳,測定器,理論を駆使して結果を一致させることです。筆者はこの三点を高いレベルで有している数少ない日本人の一人です。本書も表向きは理論の本ですが,matlabを使い測定器,耳の学習まで可能になっています。なので,DAWでプリセットを選んで作曲ミックスごっこをしている人や,使えない機能が満載の音響機器を生産しているエンジニアさんなどが再学習するのに最適な一冊です。
MathWorks 「MATLAB/Simulink 関連書籍」ひたすら楽して音響信号解析 - MATLABで学ぶ基礎理論と実装 - 掲載日:2021/08/18
MathWorks 様にプロモーション用ページを制作いただきました。
-
掲載日:2021/12/27
-
掲載日:2021/08/26
-
掲載日:2021/04/08
-
掲載日:2021/03/01
-
掲載日:2021/02/03
◆著者による本書解説動画
著者のGitHubに動画リンクがございます。
https://github.com/mmorise/beginning_asa以下に再生リストご紹介いたします。
「シャドウ商事」(著者のYouTubeアカウント)
【書店様向け情報】
本書のPOPを作成いたしました。
「書店様向けページ」よりデータをダウンロードしてご利用ください。