我正在尝试对音频信号进行频率调制。我可以使用以下方程式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/