Python将音频信号转换为频域

2025-05-07 22:22:54

1、创建一个python文件,并导入库文件: import numpy as np from scipy.io import wavfile import matplotlib.pyplot as plt

2、读取音频文件: sampling_freq, audio = wavfile.read('data/input_freq.wav')

Python将音频信号转换为频域

3、对信号进行标准化: audio = audio / (2. ** 15) # 提取数组长度 len_audio = len(audio)

Python将音频信号转换为频域

4、接下来旅邯佤践进行傅里叶变化,我们的最终目标是提取功率信号,因此需要先将信 号的值平方: transformed_si爿讥旌护gnal = np.fft.fft(audio) half_length = np.ceil((len_audio + 1) / 2.0) transformed_signal = abs(transformed_signal[0:int(half_length)]) transformed_signal /= float(len_audio) transformed_signal **= 2 # 提取转化信号的长度 len_ts = len(transformed_signal)

Python将音频信号转换为频域

5、根据信号的长度将信号乘以2: if len_audio % 2: transformed_signal[1:len_ts] *= 2 else: transformed_signal[1:len_ts - 1] *= 2

Python将音频信号转换为频域

6、计算功率信摒蛲照燔号,并创建X轴: power = -10 * np.log10(transformed_signal) x_values = np.arange(0, hal熠硒勘唏f_length, 1) * (sampling_freq / len_audio) / 1000.0

Python将音频信号转换为频域

7、绘制频率信号: plt.figure() plt.plot(x_values, power, color='black') plt.xlabel('Freq (in kHz)') plt.ylabel('Power (in dB)') plt.show()

Python将音频信号转换为频域
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢