1

Matlabで.wavファイルを読んでいます。次に、指定したサンプリング周波数44100Hzで読み取りファイルを再生します。しかし、低いサンプリング周波数でサンプリングされたファイルを再生しようとすると、早送りmodで再生しているように再生されます。これは、再生しているサンプリング周波数がファイルのサンプリング周波数よりも高いためです。

だから私の質問は、Matlabでwavread()を使用して読んだファイルのサンプリング頻度をどのように見つけることができるかです。読み取り信号を周波数スペクトルに変換してから、fft()信号の大きさを渡そうとしましたが、機能しませんでした。

助言がありますか?

4

2 に答える 2

4

wavread次のようにサンプリング頻度を返すことができることを確認Fsします。

[y, Fs] = wavread(filename)
于 2012-11-28T15:24:10.827 に答える
0

まず、次の関数を使用してサンプル周波数を見つけることができます。

def read_samplepoints(file_name):

    sampFreq, snd1 = wavfile.read(file_name)

    samp_points = len(snd1)

    data_type = snd1.dtype

    return samp_points, data_type, sampFreq

'folder_name'。'class_name'.read_samplepoints(file_name)を使用してターミナルで実行します。返されるシーケンスの最後の数値は、サンプルの頻度になります。

曲の低音を強調するには、低帯域フィルターを使用して低周波数のみをキャプチャし、高周波数を維持する必要があります。ただし、これにより、ファイル内のすべての周波数が発生する可能性がありますが、これは望ましくない場合があります。もう1つの方法は、ファイルを大胆(または同様のプログラム)に取り込み、エフェクトセクションに移動して、低音と高音のレベルを調整することです(iTunesのイコライザーと同様)。これらは2つのオプションであり、さらにいくつかあるかもしれませんが、最初にそれらを試して、それらがどこにつながるかを確認してください。

于 2015-07-28T15:20:42.797 に答える