audio - 调频(FM)

标签 audio signal-processing

我正在尝试对音频信号进行频率调制。我可以使用以下方程式y = cos(Fc + sin(Fm))与另一个正弦波(载波)成功调频一个正弦波(载波),但是我不确定如何调频音频信号因为显然我不能使用上述公式。我的问题是:如何将输入数据与调制信号合并以获得FM信号?

最佳答案

不幸的是,我无法让Paul的方法起作用,但是我有一个有效的解决方案,用于音频信号的FM合成。我在Excel中做了很多测试,并意识到了如何做。这是算法

    for (i = 0; i < N; i++)     {
    // increase the frequency with increasing amlitudes (fc + fm)
    if (input[i] < input[i+1])
        out[i] =   cos(acos(input[i]) + A * sin(2 * pi * mf * i));
    else  //decrease the frequency with decreasing amplitudes (fc - fm)
        out[i] =  cos(acos(input[i]) - A *  sin(2 * pi * mf * i));
                } 

它运作良好,但确实会产生一些不良谐波(可能是由于舍入误差所致),因此您可能必须使用某种滤波器(移动平均值可能会很好地减少这些不良谐波)。当应用于音频信号时,您可能必须获取音频的包络,然后将其与调制信号相乘,以免在音频的安静部分等应用FM。

关于audio - 调频(FM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8655121/

相关文章:

algorithm - 与FFT算法混淆

java - 如何获得一定频率的音频信号幅度的实时android

c++ - 我如何从WAV文件中获取时域频率?

image - 为什么我得到一个空白图像作为我的输出?

iphone - 是否有用于在 iPhone 上执行 FFT 的开源库?

matlab - 音频.wav文件的SNR和评估过滤技术的客观措施

matlab - 将.mat转换为.wav

javascript - MTURK : Hide an object in preview, 当您接受 HIT 时显示(预览中的 URL 发生变化,根据 URL 隐藏)

javascript - 使用 renderBuffer 作为 HTML5 音频标签

javascript - 在移动 Chrome 中启动 HTML5 音频播放可以接受哪些事件