0

信号処理は私にとって新しい分野であり、問​​題の解決策をどこから探し始めればよいのかよくわかりません。

純音だけで構成されるオーディオ ファイルに変換された折れ線グラフがあります。言語は関係ないと思いますが、Processing を使用して折れ線グラフに変換しようとしています。フーリエ変換を使用する必要があるかもしれないことを漠然と認識していますが、それは私が慣れているものではありません.

Minim を使用した処理とそのスペクトル分析機能で提供されているすべての例を見てきましたが、どのように進めればよいのか、何を探すべきなのかさえまだわかりません。

モデムやファックス機はシリアル化されたデータを音声形式に変換し、ほぼ同じ方法で戻すと思いますが、データを音声形式から変換する方法はわかりません。

4

1 に答える 1

2

これを行う基本的な方法は、描画先の領域の各ピクセルに対して、計算された高さでピクセルを描画することによって、どのデータ サンプルまたはサンプルを表すかを決定することです。

悲惨な詳細:

圧縮されたオーディオの複雑さを無視すると、オーディオ ファイルはサンプルのセットです。サンプルは固定レートで記録されます。オーディオの一般的なサンプル レートは、1 秒あたり 44100、48000、または 96000 サンプルです。通常、オーディオ ファイルはこのレートを指定します。このデータを描画するには、オーディオ サンプルをピクセルにマップします。

簡単な例として、毎秒 48000 サンプルで記録された 1 秒間の ECG データがあるとします。これは、ファイル内の 48000 サンプルです。多くの場合、整数サンプルですが、サンプルを 0 から 1 の範囲の浮動小数点値にします。そして、高さ 10 ピクセル、幅 100 ピクセルの長方形に描画しているとします。

以上のことから、各ピクセルがデータの 480 サンプルを表すことになります。これらの 480 サンプルを平均して、最初のピクセルに描画する値を取得できます。ピクセルのどこに塗りつぶすかを決定するには、サンプルの範囲 0 ~ 1 を高さ 0 ~ 10 の描画長方形にマップします。0 サンプルは長方形の下部に描画し、1 サンプルは上部に描画します。 0.5 のサンプルが真ん中に描画されます。最初の 480 サンプルの平均が 0.1 であるとします。次に、描画領域の左端のピクセル (描画四角形の下部に対して (0,1)) で、下から 1 ピクセル上にドットを描画します。

表示領域内の各ピクセルのピクセルをどこに描画するかが決まるまで、これを繰り返します。

表示するピクセルよりもサンプルが少ない場合は、各ピクセルの値を補間します。同じ 10 x 100 の描画領域で、データ サンプルが 10 個しかない場合、データ サンプルごとに 9 つのピクセル位置を補間します。

于 2012-11-21T19:57:41.597 に答える