我有一个 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
并得到以下结果:

