[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[ノート/ノート]]~
訪問者 &counter(); 最終更新 &lastmod();~
*一般化調和解析による音階抽出 [#kc8be1b6]
**ピアノ音源の音階抽出結果1 単音の場合 [#z58abd34]
サンプリング周波数 44100Hz (帯域 22050Hz)~
フレーム標本点数 1024点、 フレーム長 23mS ~
周波数解像度は、一般化調和解析の場合、どうなるだろうか? 窓付きのFFTでは、低い周波数に対して解像度が確保できない問題がある。一般化調和解析ではこれが解決されるという議論があるが、本当か?
楽曲の音階推定の場合、次々と異なる音が鳴るので、どうしてもある時間区間で区切ってその区間内の周波数成分分析を行う必要があるだろう。区間(フレーム)に切る限り、その区間超より周期が長いような波動は、分析しづらいだろう。たとえば、1区間に1周期が入っていればそれなりに分析可能と思うが、もし1区間に1/10周期しか入っていないとその1/10周期から波長を推定することになるわけで、精度が落ちるだろう。
仮に(全く根拠のない仮説だが)、一定精度を保つためには区間(フレーム)内に1/2周期が入っていることが必要だとする。すると、フレーム長が23mSであるから、これが1/2周期に当たる音波の周波数は、1/(23mS×2) = 22Hz程度だろうか?
実際に測定したデータから見てみよう。ソースはRWCのピアノデータ(wavファイル)である。それぞれの音で、最大強度スペクトルから-2.0までの強度範囲を取り、かつ11Hz以上の周波数成分のみを取っている。
51.wav (C, 523.25Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1|523(12.91)|523(12.88)|523(12.83)|523(12.77)|523(12.71)|523(12.63)|
|成分2| | | | | | |
もう少し時間が経つと(第11フレームから)2倍波が-2.0より大きくなる。
39.wav (C, 261.62Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1|260(16.50) |260(16.35) |260(16.13) |262(15.94) |264(15.82) |522(15.71)|
|成分2|523(16.13) |522(16.08) |522(15.99) |522(15.92) |523(15.77) |261(15.62)|
|成分3|1048(14.73)|1050(14.59)|1051(14.49)|1050(14.42)|1049(14.30)|1047(14.24)|
27.wav (C, 130.81Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1|263(15.73)|264(15.64)|127(15.50)|126(15.41)|125(15.32)|126(15.25)|
|成分2|131(15.56)|130(15.48)|260(15.41)|261(15.23)|261(15.08)|261(14.98)|
|成分3| | | | | | |
22.wav (G, 98Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1| 97(16.60)| 97(16.64)| 98(16.53)| 98(16.61)| 98(16.55)| 98(16.51)|
|成分2|394(15.28)|390(15.10)|392(14.98)|394(15.08)|393(15.01)|388(14.76)|
|成分3| | | | | | |
21.wav (F#, 92.5Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1| 92(16.39)| 91(16.25)| 92(16.24)| 92(16.24)| 92(16.09)| 93(16.05)|
|成分2|370(15.46)|370(15.42)|372(15.27)|372(15.33)|370(15.12)|371(15.06)|
|成分3| | | | | | |
ここから急に分布の形が変わり、さまざまなおかしな点が見られる。
-第1に、基本周波数であるべき周波数がパワー上トップになっていない
-第2に、ものによるが、周波数の値が不安定になっている(特に19や18の基本周波数)
-同じ高調波成分を横に見る時、パワー値が単純に減衰していない
20.wav (F, 87.31Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1|354(14.40)|356(14.31)|355(14.33)|354(14.20)|354(14.05)|352(13.83)|
|成分2|876(14.44)|875(14.28)|877(14.30)|877(14.22)|878(14.06)|879(14.13)|
|成分3|263(13.81)|265(13.80)|268(13.82)|270(13.80)|270(13.74)|268(13.73)|
|成分4| 85(13.66)| 85(13.45)| 85(13.22)| 85(12.94)| 84(12.72)| 83(12.71)|
|成分5|610(13.32)|610(13.17)|611(13.00)|610(13.83)|434(12.27)|434(12.39)|
|成分6|435(12.75)|437(12.48)| |435(12.26)|608(12.49)|610(12.29)|
19.wav (E, 82.41Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1|253(15.81)|244(15.91)|241(15.94)|241(15.83)|244(15.83)|246(15.62)|
|成分2| 79(15.46)| 77(15.26)| 78(15.32)| 78(15.24)| 79(15.20)| 81(15.10)|
|成分3|162(14.62)|163(14.27)|166(14.26)|171(14.19)|165(14.46)|167(14.58)|
|成分4|327(14.37)|407(14.78)|404(14.78)|406(14.75)|408(14.75)|409(14.62)|
|成分5|414(14.70)|330(14.49)|331(14.41)|329(14.38)|328(14.31)|329(14.40)|
|成分6|825(14.03)|826(14.04)| | | |576(13.64)|
18.wav (D#, 77.78Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1|163(15.57)|160(15.53)|149(15.32)|148(15.18)|156(15.02)|163(15.26)|
|成分2|227(14.88)|234(14.68)|235(15.00)|234(14.77)|235(14.74)|229(14.82)|
|成分3| 85(13.69)| 75(13.66)| 90(13.66)| 80(13.60)| 77(13.62)| 89(13.45)|
>念のため、純音でこの周波数領域の分析をしてみると、問題は出ていない。~
正確には、周波数に端数があると、GHA分析では整数周波数を抜き取ろうとするので、残渣が生まれ、それがほかの(もっと高い)周波数生分と認識される傾向がある。しかし、レベルが低いので、足きりをすると出てこなくなる。
>pure82_4Hz.wav (82.4Hz 純音)
| |1 |2 |3 |4 |5 |6 |
|成分1| 82(20.35)| 82(20.35)| 82(20.34)| 82(20.35)| 82(20.35)| 82(20.35)|
>レベルの低い周波数成分も書き出すと(レベル10以下は略)
| |1 |2 |3 |
|成分1| 82(20.35)| 82(20.35)| 82(20.34)|
|成分2| 54(11.61)|112(11.66)|111(11.69)|
|成分3|108(11.14)| 55(10.78)| 55(10.78)|
>pure87_3Hz.wav (87.3Hz 純音)
| |1 |2 |3 |4 |5 |6 |
|成分1| 87(20.35)| 87(20.35)| 87(20.34)| 87(20.35)| 87(20.35)| 87(20.35)|
これらから、ピアノの単音については、
-比較的パワーの大きい成分のみを採用することと、数Hzといった考えにくい程度に低い周波数成分(としてパワーが抽出された成分)を除外すれば、ほぼ倍音が得られる。
-基本波と倍音は、パワーで比較すると逆転している(基本波の方がパワーが小さい)ことがある。だから、最大パワーの成分を基本波とすると、誤ることがある。
ここまで分かったところで、次に2つ以上の音が鳴らされたときの音程抽出を試みる。
**ピアノ音源の音階抽出結果2 単音を2個重畳した場合 [#j83c6e6c]
単純に単音を2つ加算しただけのデータを用いると、何が起こるか。
51_58.wav (ピアノ単音 C 523.25Hz G 786Hz を重畳して合成)
| |1 |2 |3 |4 |5 |6 |
|成分1| 523(13.71)| 523(13.80)| 523(13.85)| 521(13.95)| 521(14.04)| 522(14.09)|
|成分2| 786(13.67)| 785(13.56)| 785(13.46)| 785(13.37)| 785(13.30)| 785(13.26)|
|成分3|1047(11.39)|1048(11.02)| | | | |
成分3はフレーム1、2で見えているが、3以降はレベルが3.0以上下回っている。出ている場合もレベルが明らかに(2.5程度以上)低いので、区別できるだろう。~
成分1のパワーが徐々に増えているのが気になる。2つの音の先頭位置がずれているのかも知れない。
51_63,wav (ピアノ単音 C 523.25Hz C 1050Hz を重畳して合成)
| |1 |2 |3 |4 |5 |6 |
|成分1| 522(10.67)| 522(10.75)| 522(10.80)| 523(10.86)| 522(10.97)| 522(11.09)|
|成分2|1049(10.38)|1049(10.27)|1049(10.13)|1050(10.00)|1050( 9.82)| 785( 9.69)|
|成分3|1576( 7.89)|1576( 7.81)|2109( 7.85)|2110( 8.21)| | |
| | | | | 19( 8.14)| | |
オクターブ違いの音なので、高調波が重なるはずだが、レベル差を見る限りは成分1と2はほぼ同じパワーレベルになっている。重なるはずの成分2がことさら大きいことはないし、他方で成分3やそれ以下のレベルの高調波はレベルが十分に低い。
>>> [[一般化調和解析(2)へ>ノート/一般化調和解析(2)]]
終了行:
[[ノート/ノート]]~
訪問者 &counter(); 最終更新 &lastmod();~
*一般化調和解析による音階抽出 [#kc8be1b6]
**ピアノ音源の音階抽出結果1 単音の場合 [#z58abd34]
サンプリング周波数 44100Hz (帯域 22050Hz)~
フレーム標本点数 1024点、 フレーム長 23mS ~
周波数解像度は、一般化調和解析の場合、どうなるだろうか? 窓付きのFFTでは、低い周波数に対して解像度が確保できない問題がある。一般化調和解析ではこれが解決されるという議論があるが、本当か?
楽曲の音階推定の場合、次々と異なる音が鳴るので、どうしてもある時間区間で区切ってその区間内の周波数成分分析を行う必要があるだろう。区間(フレーム)に切る限り、その区間超より周期が長いような波動は、分析しづらいだろう。たとえば、1区間に1周期が入っていればそれなりに分析可能と思うが、もし1区間に1/10周期しか入っていないとその1/10周期から波長を推定することになるわけで、精度が落ちるだろう。
仮に(全く根拠のない仮説だが)、一定精度を保つためには区間(フレーム)内に1/2周期が入っていることが必要だとする。すると、フレーム長が23mSであるから、これが1/2周期に当たる音波の周波数は、1/(23mS×2) = 22Hz程度だろうか?
実際に測定したデータから見てみよう。ソースはRWCのピアノデータ(wavファイル)である。それぞれの音で、最大強度スペクトルから-2.0までの強度範囲を取り、かつ11Hz以上の周波数成分のみを取っている。
51.wav (C, 523.25Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1|523(12.91)|523(12.88)|523(12.83)|523(12.77)|523(12.71)|523(12.63)|
|成分2| | | | | | |
もう少し時間が経つと(第11フレームから)2倍波が-2.0より大きくなる。
39.wav (C, 261.62Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1|260(16.50) |260(16.35) |260(16.13) |262(15.94) |264(15.82) |522(15.71)|
|成分2|523(16.13) |522(16.08) |522(15.99) |522(15.92) |523(15.77) |261(15.62)|
|成分3|1048(14.73)|1050(14.59)|1051(14.49)|1050(14.42)|1049(14.30)|1047(14.24)|
27.wav (C, 130.81Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1|263(15.73)|264(15.64)|127(15.50)|126(15.41)|125(15.32)|126(15.25)|
|成分2|131(15.56)|130(15.48)|260(15.41)|261(15.23)|261(15.08)|261(14.98)|
|成分3| | | | | | |
22.wav (G, 98Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1| 97(16.60)| 97(16.64)| 98(16.53)| 98(16.61)| 98(16.55)| 98(16.51)|
|成分2|394(15.28)|390(15.10)|392(14.98)|394(15.08)|393(15.01)|388(14.76)|
|成分3| | | | | | |
21.wav (F#, 92.5Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1| 92(16.39)| 91(16.25)| 92(16.24)| 92(16.24)| 92(16.09)| 93(16.05)|
|成分2|370(15.46)|370(15.42)|372(15.27)|372(15.33)|370(15.12)|371(15.06)|
|成分3| | | | | | |
ここから急に分布の形が変わり、さまざまなおかしな点が見られる。
-第1に、基本周波数であるべき周波数がパワー上トップになっていない
-第2に、ものによるが、周波数の値が不安定になっている(特に19や18の基本周波数)
-同じ高調波成分を横に見る時、パワー値が単純に減衰していない
20.wav (F, 87.31Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1|354(14.40)|356(14.31)|355(14.33)|354(14.20)|354(14.05)|352(13.83)|
|成分2|876(14.44)|875(14.28)|877(14.30)|877(14.22)|878(14.06)|879(14.13)|
|成分3|263(13.81)|265(13.80)|268(13.82)|270(13.80)|270(13.74)|268(13.73)|
|成分4| 85(13.66)| 85(13.45)| 85(13.22)| 85(12.94)| 84(12.72)| 83(12.71)|
|成分5|610(13.32)|610(13.17)|611(13.00)|610(13.83)|434(12.27)|434(12.39)|
|成分6|435(12.75)|437(12.48)| |435(12.26)|608(12.49)|610(12.29)|
19.wav (E, 82.41Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1|253(15.81)|244(15.91)|241(15.94)|241(15.83)|244(15.83)|246(15.62)|
|成分2| 79(15.46)| 77(15.26)| 78(15.32)| 78(15.24)| 79(15.20)| 81(15.10)|
|成分3|162(14.62)|163(14.27)|166(14.26)|171(14.19)|165(14.46)|167(14.58)|
|成分4|327(14.37)|407(14.78)|404(14.78)|406(14.75)|408(14.75)|409(14.62)|
|成分5|414(14.70)|330(14.49)|331(14.41)|329(14.38)|328(14.31)|329(14.40)|
|成分6|825(14.03)|826(14.04)| | | |576(13.64)|
18.wav (D#, 77.78Hz)
| |1 |2 |3 |4 |5 |6 |
|成分1|163(15.57)|160(15.53)|149(15.32)|148(15.18)|156(15.02)|163(15.26)|
|成分2|227(14.88)|234(14.68)|235(15.00)|234(14.77)|235(14.74)|229(14.82)|
|成分3| 85(13.69)| 75(13.66)| 90(13.66)| 80(13.60)| 77(13.62)| 89(13.45)|
>念のため、純音でこの周波数領域の分析をしてみると、問題は出ていない。~
正確には、周波数に端数があると、GHA分析では整数周波数を抜き取ろうとするので、残渣が生まれ、それがほかの(もっと高い)周波数生分と認識される傾向がある。しかし、レベルが低いので、足きりをすると出てこなくなる。
>pure82_4Hz.wav (82.4Hz 純音)
| |1 |2 |3 |4 |5 |6 |
|成分1| 82(20.35)| 82(20.35)| 82(20.34)| 82(20.35)| 82(20.35)| 82(20.35)|
>レベルの低い周波数成分も書き出すと(レベル10以下は略)
| |1 |2 |3 |
|成分1| 82(20.35)| 82(20.35)| 82(20.34)|
|成分2| 54(11.61)|112(11.66)|111(11.69)|
|成分3|108(11.14)| 55(10.78)| 55(10.78)|
>pure87_3Hz.wav (87.3Hz 純音)
| |1 |2 |3 |4 |5 |6 |
|成分1| 87(20.35)| 87(20.35)| 87(20.34)| 87(20.35)| 87(20.35)| 87(20.35)|
これらから、ピアノの単音については、
-比較的パワーの大きい成分のみを採用することと、数Hzといった考えにくい程度に低い周波数成分(としてパワーが抽出された成分)を除外すれば、ほぼ倍音が得られる。
-基本波と倍音は、パワーで比較すると逆転している(基本波の方がパワーが小さい)ことがある。だから、最大パワーの成分を基本波とすると、誤ることがある。
ここまで分かったところで、次に2つ以上の音が鳴らされたときの音程抽出を試みる。
**ピアノ音源の音階抽出結果2 単音を2個重畳した場合 [#j83c6e6c]
単純に単音を2つ加算しただけのデータを用いると、何が起こるか。
51_58.wav (ピアノ単音 C 523.25Hz G 786Hz を重畳して合成)
| |1 |2 |3 |4 |5 |6 |
|成分1| 523(13.71)| 523(13.80)| 523(13.85)| 521(13.95)| 521(14.04)| 522(14.09)|
|成分2| 786(13.67)| 785(13.56)| 785(13.46)| 785(13.37)| 785(13.30)| 785(13.26)|
|成分3|1047(11.39)|1048(11.02)| | | | |
成分3はフレーム1、2で見えているが、3以降はレベルが3.0以上下回っている。出ている場合もレベルが明らかに(2.5程度以上)低いので、区別できるだろう。~
成分1のパワーが徐々に増えているのが気になる。2つの音の先頭位置がずれているのかも知れない。
51_63,wav (ピアノ単音 C 523.25Hz C 1050Hz を重畳して合成)
| |1 |2 |3 |4 |5 |6 |
|成分1| 522(10.67)| 522(10.75)| 522(10.80)| 523(10.86)| 522(10.97)| 522(11.09)|
|成分2|1049(10.38)|1049(10.27)|1049(10.13)|1050(10.00)|1050( 9.82)| 785( 9.69)|
|成分3|1576( 7.89)|1576( 7.81)|2109( 7.85)|2110( 8.21)| | |
| | | | | 19( 8.14)| | |
オクターブ違いの音なので、高調波が重なるはずだが、レベル差を見る限りは成分1と2はほぼ同じパワーレベルになっている。重なるはずの成分2がことさら大きいことはないし、他方で成分3やそれ以下のレベルの高調波はレベルが十分に低い。
>>> [[一般化調和解析(2)へ>ノート/一般化調和解析(2)]]
ページ名: