[連載]    Mathematica 入門

マテマティカで信号処理(4)

情報工学科 教授 幹    康
ymiki@cs.takushoku-u.ac.jp

© 2002-4  Yasushi Miki

第4回 音声分析(歌手KKの場合)

•ケプストラム分析

•TSUNAMI
•母音/a/
•母音/e/
•母音/i/
•母音/o/
•母音/a/ (2)
•フォルマント図
線形予測分析
•TSUNAMI
•母音/a/
•母音/e/
•母音/i/
•母音/o/

spec4 = Join[Take[spec, {1, 128}], Take[spec, {1024 - 128, 1024}]] ; y4 = InverseFourier[spec4 ... gt; {1, -1}] ; ListPlot[Re[y4], PlotJoined -> True, PlotRange -> All, AspectRatio -> .2]

a _ (0, p) = 1 ; err = Table[Sum[a _ (i, p) * y4[[Mod[j - i, 256] + 1]], {i, 0, p}], {j, 256}] ; ListPlot[Re[err], PlotJoined -> True, PlotRange -> All, AspectRatio -> .2]

specerr = Fourier[err, FourierParameters -> {1, -1}] ; ListPlot[20 Log[10, Abs[specerr]], PlotRange -> {All, {60, 120}}, PlotJoined -> True]

specy4 = Fourier[y4, FourierParameters -> {1, -1}] ; ListPlot[20 Log[10, Abs[specy4]], PlotRange -> All, PlotJoined -> True]

ListPlot[20 Log[10, Abs[spec4]], PlotRange -> All, PlotJoined -> True]

a _ (0, p) = 1 ; h = PadRight[Table[a _ (i, p), {i, 0, p}], 256] ; ListPlot[h, AspectRatio -> .2, PlotRange -> {{0, 32}, {-2, 2}}, PlotStyle -> PointSize[.016]]

H = Fourier[h, FourierParameters -> {1, -1}] ; ListPlot[-20 Log[10, Abs[H]], PlotJoined -> True]

Do[Print[-20 Log[10, Abs[H[[i]]]]], {i, 1, 20}]


Converted by Mathematica  (November 22, 2006)