ディー・クルー・テクノロジーズ Blog

bookmark_borderディジタル信号処理~高校数学で理解する離散フーリエ変換④ 周波数成分の求め方 1


こんにちは。

前回までのブログでは、

・音や光など、どんな物理現象の「波」も、周波数の異なる”信号”の組み合わせでできていること。

・高校数学で学んだ三角関数と内積で「波」がどんな信号で構成されているのか検出できること。

これがフーリエ解析の前提であることをお伝えしました。

ある「波」から特定の信号を検出することを、”周波数成分を求める”とも言います。今日は、三角関数(正弦波)との内積を用いれば、「波」の周波数成分をもとめることができることをお示しします。

1Hzの周波数成分を求める

手始めに、図1のような入力信号①周波数1Hzで振幅1 入力信号②2Hzで振幅0.5 の特性の異なる2つの信号波を用意しました。※ 理解しやすくするために単純な振幅の信号にしています。

図1

次に、計算のために1秒間で8つのタイミングを取り、図2に一覧表にしました。

図2

また、これらの信号が検出ができているかを調べる正弦波として③1Hzのcosを用意しました。

図3

入力信号①とcos③、入力信号①とcos③が相関関係にあるかどうかは、内積を求めることで検出できます。

内積の式のおさらい

ここで、前回お伝えした内積の式を思い出してください。

nを時間とみなせば、信号処理的に内積は信号Aと信号Bの相関を求めていることと同じになります。」とお伝えしました。これを今回のお題に当てはめますと、入力信号①とcos③の各時間の積の和、 入力信号②とcos③の各時間の積の和が、 それぞれの内積①✖③、②✖③を求めていることと同じになりますね。

では①✖③から実際にやってみましょう。

時間0秒 : 1 ✖ 1 = 1   0.125秒: 1/√2✖1/√2 =1/2  0.25秒:0✖0=0 … こんな感じです。

計算結果をさっきの一覧表に追加してみますとこんな感じになります。

図4

右端赤枠に①✖③、②✖③の積の和の合計(横に足していきます)で求められる内積を示しました。

結果は、①周波数1Hzの入力信号と③との内積が4、②周波数2Hzの入力信号と③との内積が0でした。つまり⓵と③では相関があるので信号を検出できましたが、②と③は合計0なので相関が無いため、信号は検出されませんでした。

③cos1Hz用いて①の周波数1Hzの成分だけをうまく検出できましたね!

次に2Hzの正弦波(cos)を使い、同じように成分を求めてみます。

2Hzの周波数成分を求める

次に正弦波の周波数を少しずらして、入力信号①、②の周波数成分を求めてみます。

ずらした正弦波を④cos2Hzとして、用意しました。

図5

1Hzの時と同じように、入力信号①との内積①✖④、入力信号②との内積②✖④の和を求めてみると、図6のようになりました。

図6

結果は、①周波数1Hzの信号に対しては内積が0、②周波数2Hzの信号に対しては内積が2です。

④を用いて、今度は②周波数2Hzの成分だけをうまく検出することができました!さらにこの値2は信号②の振幅に比例もしています。

周波数をずらすことの意味

これらの結果から、周波数を少しずつずらして正弦波との内積を求めれば、あらゆる周波数成分の大きさを検出できそうだな、と感じられると思います。

果たして本当に検出できるのか、次回はそれを検証してみましょう。


bookmark_borderディジタル信号処理~高校数学で理解する離散フーリエ変換③ 数式と4つの前提 


こんにちは、狂右衛門(くるえもん)です。

前回、フーリエ変換の得意技は「連続的な信号を離散的な周波数成分に分解することで、時間領域の信号から周波数領域に変換」すること、またディジタル信号の周波数特性を解析し、特定の周波数成分のフィルタリングや圧縮などの処理が可能になるとお伝えしました。

今日は離散フーリエ変換の数式と前提知識についてお伝えします。

離散フーリエ変換の数式

離散フーリエ変換の数式はこれです。

第一印象はどうお感じになりましたか?

私が離散フーリエ変換について講義する際に、数式をご覧になった参加者からの反応はこんな感じです。

とっつきにくいと感じられた方が多いようですね。。。でも、このような問いに私はいつも「大丈夫ですよ」とお答えしています。このブログシリーズでも、そのことをお伝えしたいと思います。

離散フーリエ変換(DFT)4つの前提知識

さて、今回は離散フーリエ変換(DFT)を知る上で前提となる、高校で習ったけどおそらく社会人になっても使わないと思っていた数学知識が3つと、有名な公式1つについてお伝えします。昔皆さんが学校で習った(はず)記憶を引っ張り出してみましょう。

①三角関数

1つ目は三角関数です。cosとかsinというやつです。私がこれを高校で習った時には、正直「三角関数なんて何の役にも立たない!」と本気で思っていましたが、ディジタル信号処理では非常によく使います。

その理由は、三角関数のcosやsinの波の形が、ディジタル信号処理で扱う信号=周期的な波の形にとても似ているからです。とても似ているので、三角関数はディジタル信号処理に便利に扱えるわけです。

三角関数のcos(余弦波)とsin(正弦波)の例を示してみました。

図1

次に図2に信号=周期的な波の形を平面図で表現し、信号処理でよく扱う事象を表しました。信号の波の高さを振幅、1秒間に繰り返す波の数のことを周波数f、繰り返す波のどこにいるのか位置情報を位相と呼びます。三角関数と形がとても似ていますね。

図2

形が似ているので、三角関数は信号処理の基本的な構成要素が扱え、信号の振幅、周波数、位相を表すのにとても役立ちます。

余談ですがcosとsinは数学ではそれぞれ余弦波、正弦波と言いますが、ディジタル信号処理の世界ではどちらも正弦波と言います。おそらく位相(周期的に変動する波の位置情報や振動するタイミング)が異なるだけだから、偉い先人がシンプルに同じ言い方にしたのだろうと勝手に思っています。

②内積

2つ目は内積です。これも当時三角関数以上に何に使うのかサッパリ理解できませんでした。

内積は「2つのベクトルAとBがどれだけ似ているか=相関」を求めるものでしたね。ベクトルAとBの内積は、2つのベクトルの大きさとそれらの間の角度θのcosの積として表せます。このような公式です。

平面図で表すとこんな感じです。

図3

次にベクトルAとBを成分表示してみます。xyの2次元でベクトルAの成分は(a1​,a2)、ベクトルBは (b1​,b2)としてグラフで表すと図4のような感じになります。

図4

このときベクトルAとBの内積は各成分の積の総和としても表すことができます。式で書くとこうなります。(次元がn個に増えても考え方は変わりません)

図5は、左図に内積のベクトル成分値(a1,a2),(b1,b2)を、右図で横軸をn、縦軸を各成分の大きさとして、並べ変えてみました。

図5

この時、各成分の積 a1×b1+a2×b2+…an×bnの和が、内積になります。

ベクトルを信号とみなせば、左図は、信号に含まれる成分の大きさで、それを時間nで離散的に示せることわかる思います。また、内積は信号AとBの相関を求めていることと同じになります。

③虚数

高校で習ったけどおそらく社会人になっても使わないと思っていた数学知識の3つ目は虚数です。2乗すると-1になる謎の数字です。これも一生使うことはないと思っていましたが、ディジタル信号処理では虚数をよく使います。

ディジタル信号処理では、高校数学では虚数をiで表しますが、信号処理では、iが電流と間違えやすいためjを使います。

信号処理では、実数だけで信号の計算すると場合分けが発生するため計算がかなり面倒です。虚数が加わることで実数だけの計算よりも手早く信号の特性を分析できます。実際にはこの虚数と実数の両成分を合わせ持つ複素数を使うことで、信号の振幅と位相情報を手間をかけずに算出できるようになります。

④オイラーの公式

最後、4つ目はある有名な公式です。三角関数と指数関数の関係を表す式、オイラーの公式です。

Leonhard Euler 2
オイラー様 (wikipediaより)

信号処理の計算は冒頭の三角関数を用いれば可能ですが、指数関数を使うと計算がより簡単になるので扱い方を覚えておくと便利です。その計算方法も追ってご紹介いたします。

以上、高校では役に立たないと思っていたが、今とても役立っている数学知識を中心にお伝えしました。皆様も思い出してきましたでしょうか。将来息子が高校で習い始めたら「使えるのでしっかり覚えとけ!」と心からアドバイスします笑

次回は周波数成分の求め方をお伝えします。理解が進むように例や図解を用いて解説を進めますね。

bookmark_borderディジタル信号処理~高校数学で理解する離散フーリエ変換② フーリエ変換とは?


フーリエ変換とは?

フーリエ変換は、信号処理や画像処理、音声解析など多岐にわたる分野で使用される数学的手法で、主に連続フーリエ変換と離散フーリエ変換の二種類があります。連続フーリエ変換は、非周期的なアナログ信号を周波数成分に分解するのに用いられ、離散フーリエ変換(DFT)はデジタル信号の周波数解析に適しています。さらに、計算効率を高めた高速フーリエ変換(FFT)も広く利用されており、リアルタイムでの信号処理に不可欠です。

フーリエ変換ができること

何か波形を思い浮かべてみてください。きれいな正弦波でしょうか?それともぐちゃぐちゃの波形でしょうか?実は思い浮かべた波形がどんなに複雑な波形であっても、あらゆる周波数の正弦波を合成すれば作り出すことができます。「フーリエ変換」はどんな複雑な合成波であっても、それがどんな周波数の正弦波で構成されているか明らかにする処理です。

数学世界のミックスジュース解析

これは、目の前にある謎のミックスジュースから、それぞれの果物の割合を正確に特定するようなものです。あたかも人間が「色」や「匂い」や「味」で果物を識別するように、フーリエ変換では波形を分析して、その成分が何なのかを明らかにします。

音楽の波形をフーリエ変換すると、その音楽がどのような音の高さ(周波数)で構成されているかが分かります。あたかもオーケストラの演奏を聴いて、どの楽器がどの音を出しているかを聞き分けるようなものです。

フーリエ変換は何に使われる?

フーリエ変換は、物理学から工学、音響学、画像処理、電波測定機器に至るまで、多岐にわたる分野で応用されています。スペクトラムアナライザ(スペアナ)はその一例で、高周波信号に含まれる周波数成分の分布、すなわちスペクトラム(Spectrum)を表示・解析する測定器です。高周波信号(電波)はパワーメータや周波数カウンタなどでも測定されます。

電子機器の開発で、信号のノイズを取り除くためにフーリエ変換が使われることもあります。例えば私たちの開発製品でも、特定環境の音を取り去ったり、特定周波数の音だけを聞き取りやすくする為に、信号処理を活用した事例があります。事例について詳しくはこちらをご覧ください。

このようにフーリエ変換は、世の中の無数の波形を理解するための強力なツールです。見えない世界の成分を解き明かし、社会の進歩に貢献しています。料理研究家が味で料理の神髄を解き明かすように、フーリエ変換は波形で世の中を解き明かし、それが新発見へとつながっていくのです。

次の記事では、ディジタル信号処理で使われる、離散フーリエ変換についてさらに掘り下げていきます。次回はその前提条件の数学知識についておさらいします。