yProcessingClub

すみません、許してください

瞬時周波数についてのふわっとした解釈

記憶の整理のためにメモ.
記事の正しさに責任は持ちません.


追記。
↓qiitaに記事を投稿した。ブログ記事の焼き直しだが、より詳しく書いてるので良かったら見て欲しい。
qiita.com



瞬時周波数とは?

ある信号(音響信号など)の周波数の時間変化(変調と言ったりする)を調べたい欲求がある人もいるだろうが,そういうのを調べるのを時間周波数解析という.時間周波数解析において一番知りたいのは「(目的の信号の)周波数の時間変化」であり,これは位相を時間微分することで求められ,これを瞬時周波数と呼ぶことにする.(速度の時間変化は速度を微分すると求められ,これはどうやら加速度と言うらしいのだが,位相を微分したものは瞬時周波数と言う.)


簡単にまとめると,

ある一瞬の周波数を知りたい
 ↓
位相を時間微分する

という素朴な考え方だ.


  


周波数が一定の信号

周波数が時間変化する信号を考える前に,
まず周波数が一定の信号を考える.

振幅1,周波数f_0(一定)である信号s(t)
s(t)=\cos(2 \pi f_0  t)
ここで位相 2 \pi f_0  t微分すると2 \pi f_0であり,瞬時周波数は時間変化せず、周波数が一定であることを再確認できる.


周波数が時間変化する信号

次に周波数が時間変化する信号を考える.
瞬時周波数をf'(t)で表す.

t=0[\mathrm s]でf'(0)=1000[\mathrm {Hz}],
t=10[\mathrm s]でf'(10)=5000[\mathrm {Hz}],
と周波数が線形変化する場合,
瞬時周波数の時間-周波数グラフは以下のようになる.

このグラフの式は

\begin{eqnarray*}
f'(t)&=&\frac{5000-1000}{10-0}t + 1000\\
&=&400t+1000
\end{eqnarray*}

周波数の時間変化を見るには位相を微分すれば良かったので,逆向きに考えると,このような周波数の時間変化を持つ位相はf'(t)積分すれば求められる.


\begin{eqnarray*}
f(t)&=&\int f'(t)dt\\
&=&\int (400t+1000)dt\\
&=&200t^2+1000t
\end{eqnarray*}

これを\cos()の中に入れると,
周波数が時間変化する信号
s(t)=\cos(2\pi(200t^2+1000t))
が出来上がる.
このスペクトログラムを求めると,

となり,期待通りの信号となった.

ちなみに,このように線形に周波数が変調する信号をLFM信号(Linear Frequency Modulated Signal,線形周波数変調信号)とか線形チャープ信号と言ったりする.


別の例

瞬時周波数が
g'(t) = 500\sin(2 \pi t) + 500t + 3000
となる信号を考える.
g'(t)のグラフは以下.

これもg'(t)積分して,
g(t) = \int g'(t)dt = -\frac{500}{2 \pi} \cos(2 \pi t) + 250t^2 + 3000t
であり,これを\cos()に入れて,
信号s(t)=\cos\left( 2 \pi \left( -\frac{500}{2 \pi} \cos(2 \pi t) + 250t^2 + 3000t \right) \right)が出来上がる.
このスペクトログラムは

となって期待通りである.