我有一个 4 秒的有人说“你好”的音频样本,我设法加载了 wav 文件并在时间幅度谱中显示它,我的下一步是计算这个声音的 AM(幅度调制),我设法在我创建的正弦波上做,但在实际声音上做显然是不同的。
我得到了意想不到的结果,我期待一个 cos 形状,幅度会根据声音而变化,但我得到的声音大致相同!
这是我的完整代码:
def generateSignalAM(t,data):
TWO_PI = 2 * np.pi
fc = 100
ac = 0.5
carrier_wave = np.cos(t * fc * TWO_PI)
am = carrier_wave * (1 + data/ac)
plt.plot(t,am)
plt.plot(time,data)
plt.xlabel("Time(s)")
plt.ylabel("Amplitude")
plt.legend(['AM Signal', 'Original Signal'])
plt.show()
return am
samplerate, data = scipy.io.wavfile.read("hello.wav")
duration = len(data)/samplerate
time = np.arange(0,duration,1/samplerate) #time vector
generateSignalAM(time,data)
这是输出:
在@The Photon 之后,我将代码更改为:
def generateSignalAM(t,data):
#sample rate is 44100 Hz
TWO_PI = 2 * np.pi
fc = 10000
ac = 0.00005
carrier_wave = np.cos(t * fc * TWO_PI)
am = carrier_wave * (1 + data/ac)
plt.plot(t,am)
#plt.plot(time,data)
plt.xlabel("Time(s)")
plt.ylabel("Amplitude")
#plt.legend(['AM Signal', 'Original Signal'])
plt.show()
return am
并得到以下结果: