Snack Sound Toolkitの例を見ると、dbPowerSpectrum関数があるようです。基準からの
:
dBPowerSpectrum()
は(開始オプションで指定されたサンプル数での)音の対数FFTパワースペクトルを計算し、デシベル値のリストを返します。残りのオプションの説明については、section itemを参照してください。オプションで、終了オプションを使用して終了ポイントを与えることができます。この場合、結果は指定された範囲内の連続するFFTの平均です。デフォルトの間隔はfftlengthから取られますが、これはスキップオプションを使用して変更することができます。スキップオプションは、各ステップでFFTウィンドウを何ポイント移動するかを指示します。オプション:
EDIT:私はあなたが振幅と言うとき、あなたは音が人間にどのように「大音量」であり、時間領域の電圧ではないかを意味すると仮定しています(積分から全長にわたって0例えば、10 * sin(t)は5 * sin(t)よりも大きくなりますが、時間の経過とともにその平均値は0になります。(AC以外の電圧をスピーカーに送信したくないいずれかの方法))。
音の大きさを知るには、各周波数成分の振幅を決定する必要があります。これは、フーリエ変換(FFT)で行われ、サウンドを周波数成分に分解します。 dbPowerSpectrum関数は、各周波数の大きさ(パワースペクトルの正確な定義と異なる場合、私には容認してください)のリストを提供するようです。総音量を得るには、リスト全体を合計するだけです(これは近いですが、人間の耳は周波数応答そのものを持っているので、それは依然として知覚された音量とは異なる可能性があります)。
ライブラリにはRMS機能がありませんでした。私は、すべての周波数でのパワースペクトルの積分は、RMSと数学的に比例していなければならないと考えています。 (パワースペクトラムはW/hzで、RMSはWで、すべてのhzに積分してWを残します)。 – CookieOfFortune
あなたは間違っていません。ディスクリート信号のパワーを得るためにFFTを実行することは、ショットガンでイエバエを撃つようなものです。それは機能しますが、むしろ無駄です。 – kent