• Tidak ada hasil yang ditemukan

音の周波数解析

N/A
N/A
Protected

Academic year: 2025

Membagikan "音の周波数解析"

Copied!
25
0
0

Teks penuh

(1)

2007年度 卒業研究レポート

音の周波数解析

明治大学 理工学部 数学科 4 年 16 組 13 番 紀太 秀文

2008 年 3 月 5 日

(2)

目 次

第1章 はじめに 2

第2章 信号処理の基礎知識 3

2.1 アナログ信号 . . . . 3

2.1.1 アナログ信号処理 . . . . 3

2.2 デジタル信号 . . . . 3

2.2.1 デジタル信号処理 . . . . 4

第3章 波動方程式 5 3.1 弦振動の波動方程式(線形) . . . . 5

3.2 弦振動の波動方程式(非線形) . . . . 6

第4章 差分方程式 7 4.1 線形波動方程式の差分方程式 . . . . 7

4.2 非線形波動方程式の差分方程式 . . . . 8

第5章 離散フーリエ変換 12 5.1 フーリエ級数 . . . . 12

5.1.1 実数値関数のフーリエ級数 . . . . 12

5.1.2 複素数値関数のフーリエ級数 . . . . 12

5.2 離散フーリエ変換(Discrete Fourier Transform) . . . . 13

5.2.1 台形公式 . . . . 13

5.2.2 高速フーリエ変換(Fast Fourier Transform). . . . 14

第6章 Waveファイルの波形 15 6.1 分析したデータ . . . . 15

6.2 解説 . . . . 15

6.3 基本周波数の求め方の裏づけ . . . . 15

第7章 その他のWaveファイルの波形 18 7.1 考察 . . . . 18

付 録A ソースプログラム 22 A.1 sinCanvas.java . . . . 22

A.2 WaveGraphics3.java. . . . 22

A.3 非線形の差分方程式のプログラム . . . . 22

(3)

第 1 章 はじめに

はじめに卒業論文の目的を述べる。まず、私が卒業論文のテーマを決めるにあたって思ったこ とは、自分の周りに常に存在する「音」が数学的にはどういったものなのか気になったためで ある。その中でも特に音楽に使われる楽器の音に対して興味を惹かれ、音の周波解析をやろう と考えた。

この卒業論文ではまず、音の波動方程式とは?音を解析するのに必要な数学の知識は?実際 どのようにして、音を解析したのか?が書かれている。

音の周波数解析という名前であるにもかかわらず、十分な周波数解析が出来なかったことを 後悔しています。

(4)

第 2 章 信号処理の基礎知識

2.1 アナログ信号

x(t)が−∞< t < における任意の点で値を持つならば、x(t)はアナログ信号という。た だし、tは時間変数とし、x(t)は時間に依存する関数とする。

つまり、アナログ信号とは図の様な時間的に連続した信号のことをいう。

2.1.1 アナログ信号処理

アナログ信号処理とは、本来のアナログ信号に対して、なんらかの処理を行い、変換するこ とをいう。

アナログ信号 処理 アナログ信号

2.2 デジタル信号

アナログ信号を標本化し、量子化した信号をデジタル信号という。

標本化(サンプリング)とは、時間間隔∆ごとにアナログ信号の値を求めることをいう。

ここで∆は標本化間隔(標本化周期)と呼ばれ、その逆数1 は標本化周波数と呼ぶ。たと えば、音楽CDでは、∆ = 441001 [秒]である。

量子化とは、

(5)

0≤x(n∆)<10−→x(n∆) = q1 10≤x(n∆) <20−→x(n∆) =q2

20≤x(n∆) <30−→x(n∆) =q3

といった具合にq1, q2,· · ·, qkという離散値に対応させること。このとき、q1, q2,· · ·, qkは量 子化レベルといい、その個数kを量子化レベル個数という。

2.2.1 デジタル信号処理

デジタル信号処理では、アナログ信号をデジタル信号に変換し、コンピュータによって処理 をし、処理後のデジタル信号をアナログ信号に変換する。

アナログ信号 変換デジタル信号 処理 デジタル信号 変換 アナログ信号

(6)

第 3 章 波動方程式

まず、弦振動の波動方程式について線形の場合と非線形の場合を考える。

3.1 弦振動の波動方程式 ( 線形 )

図のような綿密度µ(kg/m)を持ち、張力T(N)で張られている一様な弦を考える。ただしθ はベクトルTx軸とのなす角とする。線分dsをその平衡位置に戻そうとする正味の力

dFy = (T sinθ)x+dx(T sinθ)x (3.1)

は、その線分の両端におけるTy成分の差である。

Tsinθにテイラー展開

f(x+dx) =f(x) + ∂f(x)

∂x dx+· · · を適用して、第1次の項だけ残すと

dFy =

·

(Tsinθ)x+ (Tsinθ)x

∂x dx

¸

(T sinθ)x = (Tsinθ)x

∂x dx

(3.2)

(7)

のようになる。

小さな変位yに対して、sinθはtanθ、すなわち ∂y∂xで置き換えることができるので dFy = (T∂y∂x)

∂x dx=T∂2y

∂x2dx となる。線分dsの質量はµds(kg)なので、運動方程式は

T∂2y

∂x2 = (µds)2y

∂t2dyは十分に小さいからdsdxである。さらに、

c2 = T µ として、次式を得る。

2y

∂t2 = T µ

2y

∂x2 =c22y

∂x2 (3.3)

3.2 弦振動の波動方程式 ( 非線形 )

前節では(3.2)式において、sinθをtanθと置き換えた。

今回はsinθ ;tanθと近似しないでやってみる。まず、

sinθ = tanθ

1 + tan2θ であるから、(3.2)式は

dFy =T

∂x µ

T tanθ

1 + tan2θ

=T

∂x

q ∂y∂x 1 + (∂x2y2)2

のようになる。

以下、線形の波動方程式を導くやり方と同様にすれば、次式が得られる。

∂x

q ∂y∂x 1 + (∂x2y2)2

= 1 c2

2y

∂t2 (3.4)

以上より、線形と非線形の波動方程式が得られた。

次章では、それぞれの波動方程式の差分方程式について考える。

(8)

第 4 章 差分方程式

4.1 線形波動方程式の差分方程式

(3.4)式の波動方程式

1 c2

2u

∂t2 = 2u

∂x2(x∈(0,1), t >0) (4.1)

と初期条件

u(x,0) =φ(x) (x∈[0,1]) (4.2)

ut(x,0) =ψ(x) (x∈[0,1]) (4.3)

からなる差分方程式を求める。

まず、空間変数xに属する区間[0,1]をN 等分し、格子点をxiと表す。すなわち、刻み幅 h= 1

N として

xi =ih (i= 0,· · ·, N) 一方、時間変数tに関する刻み幅τ >0を固定して、

tj =

とおく。格子点(xi, tj)において偏導関数utt, uxxをそれぞれ2階中心差分近似すると、

utt(xi, tj) = ui,j+12ui,j +ui,j−1

τ2 +O(τ2), uxx(xi, tj) = ui+1,j2ui,j +ui−1,j

h2 +O(h2) である。ただしui,j =u(xi, tj)である。

このことから、(4.1)式より 1 c2

Uij+12Uij+Uij−1

τ2 = Ui+1j 2Uij +Ui−1j h2

(4.4)

なる差分方程式を得る。両辺にτ2を掛けてから移項すると

Uij+1 = 2(1−λ2)Uij+λ2(Ui+1j +Ui−1j )−Uij−1 (i= 1,2,· · ·, N 1;j = 1,2,· · ·)

(9)

ただし、λ =

h とした。

初期条件からは

Ui0 =φ(xi) を得る。また、u(x, t)の滑らかさをC3級とすると、

u(xi, t1) =u(xi,0) +ut(xi,0)τ+ utt(xi,0)

2! τ2 +O(τ3)

=u(xi,0) +ψ(xi)τ+ utt(xi,0)

2! τ2+O(τ3) t = 0でも波動方程式が成り立つと仮定すると、

u(xi, t1) = u(xi,0) +ψ(xi)τ +c2uxx(xi,0)

2! +O(τ3)

=u(xi,0) +ψ(xi)τ +c2 2!

ui+1,02ui,0 +ui−1,0

h2 τ2 +O(h2) +O(τ3) 故に

Ui1 =Ui0+ψ(ih)τ+ c2 2!

Ui+10 2Ui0+Ui−10 τ2

なる差分方程式を得る。整理して

Ui1 = (1−λ2)Ui0+ψ(ih)τ +λ2

2 (Ui+10 +Ui−10 )

以上から、(4.1),(4.2),(4.3)式に対応して、未知数列{Uij; 05i5N,05j}に関する方程式系

Uij+1 = 2(1−λ2)Uij +λ2(Ui+1j +Ui−1j )−Uij−1 (15i5N 1,15j), (4.5)

Ui0 =φ(xi) (05i5N),

(4.6)

Ui1 = (1−λ2)Ui0+ψ(ih)τ+ λ2

2 (Ui+10 +Ui−10 ) (05i5N) (4.7)

が得られた。これらの式と境界条件により、波動方程式の差分解を得ることができる。

4.2 非線形波動方程式の差分方程式

3.1節では、(4.1)式の差分方程式について考えた。

今節では、(3.4)の差分解について考えてみる。すなわち、波動方程式

∂x

q ∂u∂x 1 + (∂x2u2)2

= 1 c2

2u

∂t2 (4.8)

(10)

と初期条件

u(x,0) = φ(x)(x∈[0,1]) (4.9)

ut(x,0) =ψ(x)(x∈[0,1]) (4.10)

からなる差分方程式を求める。

空間変数xに属する区間[0,1]をN 等分し、格子点をxiと表す。すなわち、刻み幅 h= 1

N として

xi =ih 一方、時間に関する刻み幅τ >0を固定して、

tj =

とおく。格子点(xi, tj)においてまず、式(4.8)の右辺の偏導関数uttを2階中心差分近似すると、

utt(xi, tj) = ui,j+12ui,j +ui,j−1

τ2 +O(τ2)

次に式(4.8)の左辺を差分近似する。

まず、偏導関数∂u∂xを中心差分近似すると

∂u

∂x = ui+1

2,j−ui−1

2,j

h +O(h2) となる。また(4.8)式の左辺は

∂x

q ∂u∂x 1 + (∂x2u2)2

=

∂u

q ∂x

1+(∂x2u2)2

¯¯

¯¯

x+h/2

q ∂u∂x 1+(∂x2u2)2

¯¯

¯¯

x−h/2

h +O(h2)

となる。よって

∂x

q ∂u∂x 1 + (∂x2u2)2

= 1 h2



r ui+1,j−ui,j

1 +

³ui+1,j−ui,j h

´2



1 h2



r ui,j−ui−1,j

1 +

³ui,j−ui−1,j h

´2



+O(h2).

ただしui,j =u(xi, tj)である。

よって以上から

1 h2





Ui+1j −Uij s

1 + µ

Ui+1j −Uij h

2





1 h2



Uij −Ui−1j r

1 +

³Uij−U i−1j h

´2



= 1 c2

Uij+12Uij+Uij−1 τ2

(11)

なる差分方程式を得る。λ=

h として、Uij+1を左辺に移項し、整理すると、

Uij+1 =λ2 Ui+1j −Uij s

1 + µ

Ui+1j −Uij h

2 −λ2 Uij −Ui−1j s

1 + µ

Uij−Ui−1j h

2 + 2Uij −Uij+1

(i= 1,2,· · ·, N 1;j = 1,2,· · ·) 初期条件から、

Ui0 =φ(xi) を得る。

また、u(x, t)の滑らかさをC3級とすると、

u(xi, t1) =u(xi,0) +ut(xi,0)τ+ utt(xi,0)

2! τ2 +O(τ3)

=u(xi,0) +ψ(xi)τ+ utt(xi,0)

2! τ2+O(τ3) t = 0でも波動方程式が成り立っているとすると、

u(xi, t1) = u(xi,0) +ψ(xi)τ+ c2 2!

∂x

q ∂u∂x 1 + (∂u∂x)2

τ2+O(τ3)

=u(xi,0) +ψ(xi)τ+ τ2 h2



r ui+1,0−ui,0

1 +

³ui+1,0−ui,0 h

´2 r ui,0−ui−1,0

1 +

³ui,0−ui−1,0 h

´2



+O(τ2) +O(τ3)

故に、

Ui1 =Ui0+ψ(xi)τ+ λ2 2



Ui+10 −Ui0 r

1 +

³Ui+10 −Ui0 h

´2 Ui0−Ui−10 r

1 +

³Ui0−Ui−10 h

´2



以上から、(4.8),(4.9),(4.10)式に対応して、未知数列{Uij; 0 5 i5 N,05 j}に関する方程式 系

(12)

Uij+1 =λ2 Ui+1j −Uij s

1 + µ

Ui+1j −Uij h

2 −λ2 Uij−Ui−1j s

1 + µ

Uij−Ui−1j h

2 + 2Uij−Uij+1 (4.11)

(15i5N 1,15j)

Ui0 =φ(xi) (05i5N)

(4.12)

Ui1 =Ui0+ψ(xi)τ+ λ2 2



Ui+10 −Ui0 r

1 +

³Ui+10 −Ui0 h

´2 Ui0−Ui−10 r

1 +

³Ui0−Ui−10 h

´2

 (4.13) 

(15i5N 1)

が得られた。これらの式と境界条件から、波動方程式の差分解を得ることができる。

(13)

第 5 章 離散フーリエ変換

5.1 フーリエ級数

離散フーリエ変換について述べる前にフーリエ級数及び、フーリエ変換について触れてお く。

5.1.1 実数値関数のフーリエ級数

f(x)を実数値関数とし、周期2πの周期関数とする。

このときαn, βn

αn= 1 π

Z π

−π

f(t) cosntdt βn= 1

π Z π

−π

f(t) cosntdt

とおき、それぞれフーリエ余弦係数、フーリエ正弦係数と呼ぶ。

これらを用いた三角級数

f(t) = α0 2 +

X

n=1

(αncosnt+βnsinnt) (5.1)

をフーリエ級数という。

5.1.2 複素数値関数のフーリエ級数

適度な滑らかさを持つ周期T の関数x:RRは次のように級数展開できる

x(t) = X

n=−∞

cnexp

µ2πint T

¶ (5.2)

ただし、iは虚数(i2 =1)とし、

cn = 1 T

Z T

0

x(t) exp

µ2πint T

dt

(14)

5.2 離散フーリエ変換 (Discrete Fourier Transform)

xを周期T の関数とするとき、N∈Nを固定して、

ω=ωN := exp µ2πi

N

さらに、j Zに対して

tj :=jT

N, xj :=x(tj)

とおく。xjは周期Nの数列である。フーリエ係数cnを台形公式で近似したものを離散フーリ エ係数Cnとすると、

Cn = 1 T

N−1X

j=0

x(tj) exp

µ2πin T tj

T (5.3) N

= 1 N

N−1X

j=0

ω−jnxj (5.4)

が成り立つ。Cnnについて周期N の数列である。

写像{xj} 7→ {Cn} を、離散フーリエ変換(DFT(Discrete Fourier Transform))という。

逆に

xj =

N−1X

j=0

Cnωjn (5.5)

も成り立つ。写像 {Cn} 7→ {xj}を逆離散フーリエ変換と呼ぶ。

5.2.1 台形公式

Z T

0

U(t)dt;(1

2U(0) +

NX1

j=1

U(tj) + 1

2U(T))T N

と近似するものを台形公式を呼ぶ。これは小区間[tj, tj+1]で次の近似をしたものである。

Z tj+1

tj

U(t)dt; 1

2(U(tj) +U(tj+1))T N 周期関数ではU(0) =U(T)なので、台形公式は、

Z T

0

U(t)dt;

NX1

j=0

U(tj)T N

周期関数の1周期の積分は台形公式で非常に高精度に求まることが知られている。

(15)

5.2.2 高速フーリエ変換 (Fast Fourier Transform)

高速フーリエ変換(FFT(Fast Fourier Transform))とは、離散フーリエ変換の計算をより速 く計算させるためのアルゴリズムである。

(16)

第 6 Wave ファイルの波形

WaveGraphics3.javaによって音データの再生、音データの波形及びまたそれをFFTしたグラ

フを描画する。これによって、何番目にピークに達するのかを調べることで、基本周波数及 び、倍音周波数の解析が行えるだろう。

WaveGraphics3.javaによって得られる音データの波形は1秒後の波形である。また、FFT

した図は0〜1000番目の図である。

6.1 分析したデータ

・扱った音データはpiano.wav

 ・今回扱ったピアノの音はドの音で、約261Hzである。

 ・サンプリング周波数は44100Hz  ・量子化ビット数は16ビット

6.2 解説

piano.wavの波形は図6.1のようになる。

FFTした図6.2の1回目のピークは261番目、2回目のピークは521番目、3回目のピーク は782番目にきている。今回扱ったピアノの音の周波数は約261Hzである。つまり、一回目の ピークが何番目か分かれば音程も分かるということである。なぜピークの最大が何番目か分か れば、周波数が求まるのか、次に考える。

6.3 基本周波数の求め方の裏づけ

正弦波

u(t) = exp(2πif t) (6.1)

を考える。ただし、fは周波数とする。

(17)

時間T で記録して、Fourier級数展開する。

Cn= 1 T

Z T

0

u(t) exp(2πint)dt

= 1 T

Z T

0

exp(2πif t) exp(2πint)dt

= 1 T

Z T

0

exp

³

2πit(f n T)

´ dt ここで

A=An = 2π(f− n T) (6.2)

とおくと、

Cn = 1 T

Z T

0

u(t) exp(iAnt)dt

= 1 T

1

iAn[exp(iAnt)]T0

= 1

iAnT (exp(iAnT)1) したがって、

|Cn|= 1

|An|T|exp(iAnT)1|

= 1

|An|T|cosAnT +isinAnT 1|

= 1

|An|T q

(1cosAnT2) + sin2AnT

= 1

|An|T

p2(1cosAn)

ところで、

(1cosAnT) = 2 sin2AnT 2 より、

|Cn|= 1

|An|T ·2

¯¯

¯¯sinAnT 2

¯¯

¯¯=

¯¯

¯¯

¯¯

¯

sinAnT AnT2

2

¯¯

¯¯

¯¯

¯

ここで、y = sinx

x を考えるとき、x= 0で最大となる。

したがって(6.2)のAnつまり|f− Tn|がもっとも小さくなるとき、Cnが最大となる。

f ; n T

(18)

図 6.1: piano.wavの波形

図 6.2: piano.wavをFFTしたグラフ

(19)

第 7 章 その他の Wave ファイルの波形

ギターのドの音(周波数は131Hz)(波形は図7.1)(FFTした図は図7.2)。1回目のピークは131 番目、2回目のピークは262番目、3回目のピークは393番目であった。

図 7.1: guitar.wavの波形

ヴァイオリンのドの音(周波数は261Hz)(波形は図7.3)(FFTした図は図7.4)1回目のピー クは261番目、2回目のピークは523番目、3回目のピークは784番目であった。

7.1 考察

以上のデータから何番目にピークを迎えるかが分かった。第3倍音までのピークを測った が、第1倍音の約2倍、3倍の番号で次のピークを迎えることが予想できる。これらの倍音成 分を分析してみたかったが、時間がなかったため出来なかったことを後悔する。

(20)

図 7.2: guitar.wavをFFTした図

(21)

図 7.3: violin.wavの波形

(22)

図 7.4: violin.wavをFFTした図

(23)

付 録 A ソースプログラム

A.1 sinCanvas.java

3ページの図を出力するプログラムについて。図の関数はsin(x) + sin(2x)である。Canvas クラスを用いたプログラムで、関数値を変えれば様々なグラフが描けるので一応ここに載せて おく。

コンパイルはコマンドプロンプトから javac sinCanvas.java

java sinCanvas によってできる。

A.2 WaveGraphics3.java

・FFT変換のプログラムには、jfftpackを使用した。P. N. Swartztaruber の FFTPACK(

http://www.netlib.org/fftpack/ )は古くからあるライブラリィだが、Java への移植であ る jfftpack (byBaosheZhang) がある。

このプログラムは前述したが、音データの再生、音データの波形及びまたそれをFFTした グラフを描画する、といった事が出来るプログラムである。しかし、一応その機能は使えるも のの、使い勝手はまだまだ悪く改良の余地がたくさんある。

コンパイルはコマンドプロンプトから

javac -cp jfftpack.jar WaveGraphics3.java java -cp jfftpack.jar;. WaveGraphics3

によってできる。

A.3 非線形の差分方程式のプログラム

あまり、今回の卒業論文とは関係ないが(本当はこちらも深くやりたかったが)、非線形の 差分方程式のプログラムをMitsuiWorldを使って作ったのでここに載せておく。

(24)

線形の波動方程式と、非線形の波動方程式では、最初こそ違いは見られにくいが、時間が経 つと明らかな違いがみえてくる。この違いは安定条件から来るか等いろいろと研究できそうだ が、今回はこの感想までとしておく。

MitsuiWorldはhttp://www.math.meiji.ac.jp/~ee88010/ においてある。

(25)

参考文献

[1]  松山 周五郎, 音のFourier解析, 2003年度桂田研卒業研究

[2]  三井 康之, Javaによる波動方程式の数値解析, 2001年度桂田研卒業研究 [3]  高橋 信,入門 信号処理のための数学,オーム社(2007)

[4]  N・H・フレッチャー、T・D・ロッシング[著]、岸 憲史、久保田 秀美[訳], 楽器 の物理学, シュプリンガー・フェアラーク東京(2002)

[5]  河西 朝雄, Java言語, ナツメ社(2003)

[6]  小国 力、三井 栄慶, 理工系のJava, 朝倉書店(2004)

Referensi

Dokumen terkait

騒音は、 気持ちの持ち方や考え方によって, 自 分自身が騒音に悩ませる側にも悩まされる側にも すぐに入れ替わってしまう。 この論文では, 騒音 問題が今の社会にどのような影響を与えているの かを考えてみたい。 第1章 騒音とは 騒音とは, 身の周りの様々な音のうち, 人に好 ましくない影響を及ぼす音, 不必要な音, 邪魔な 音である。

白金イリジウム線の交流電解研磨における周波数依存性 青 山 宜 樹*1,高 見 知 秀*2 Frequency dependence of alternate current electrochemical etching of platinum/iridium wire Yoshiki AOYAMA*1 and Tomohide TAKAMI*2

誘導と紫外線照射時の反応 第53回日本臨床分子形態学会総会・学術集会, 2021年10月22日〜24日(Web 開催) マイクロバイオーム解析による歯周炎の病因の 解明 研究代表者 石原和幸(微生物学講座・教授) 研究分担者 齋藤 淳(歯周病学講座・教授),喜 田大智(歯周病学講座・助教),新谷 誠康(小児歯科学講座・教授),櫻井

を入れ換える演算子である。σ1,σ2が等しい場合どちらも上向きか下向きと異なる場合 どちらかが下向きで他方が上向きについて、Aを作用させた波動関数を書き下し、実際に 反対称になっているかどうか確かめよ。 注意─σ1,σ2が異なる場合、Aによって生成された波動関数のスピン状態は、全スピンの固

宇宙地球物理学実験(地形データの解析) 1.はじめに たとえば、日本の本州の海岸線の長さは何 km であろうか。線分の長さであれば、誰がどのよう に測っても同じような結果が得られるであろう。では、海岸線のように複雑に入り組んだ曲線だ ったら、どうなるであろうか。本実験では、地形図に描かれている等高線を題材にして、自然界

気象観測データの解析 2 高層気象観測データの解析 今回は、AMeDASデータと同様にして、自分でFORTRANまたはCでプログラムを作成し、CD-ROMに入 った気象観測データ(気象庁による高層気象観測データ)を読みこんで解析します。今回もデータを読みこむ ためのサブルーチンや関数はあらかじめ作成してあります。まず、サンプルプログラムを実行してみます。具

宇宙地球物理学実験(気象データの解析)(時系列データの解析) 1.はじめに 本実験では、気象庁による地上気圧の観測値の日変化を解析する。電子ファイルとして、2001年8月の東京、 銚子、甲府の気圧の時別値データが与えられている。データファイルはCSV形式である。基本的にはエクセルで 解析することを想定しているが、それ以外の方法を用いてもかまわない。

真⾙ 寿明 ⼤阪⼯⼤ 2019/09/20 物理学会 @ ⼭形⼤学 ⾃⼰回帰モデルを⽤いた重⼒波データ解析:LV O2までのカタログデータ解析 4 ringdown search 60 mockdata matched filtering Hilbert-Huan Transformation Auto-Regression Method Neural