use*_*339 -1 c signal-processing sound-synthesis
如何制定生成正弦扫频波的方程。我对信号处理很陌生,在网上找不到太多有关生成正弦扫频波的主题。请向我指出一些可用于生成方程式并在代码中使用的来源。谢谢。
最简单的方法是使用相位累加器- 这是一种简单的方法,并且可以确保频率变化时的相位连续性。
生成一个固定的频率的正弦波,您可以这样做(伪代码):
//
// A = sine wave amplitude
// fs = sample rate (Hz)
// f = sine wave frequency (Hz)
//
phi = 0; // phase accumulator
delta = 2 * pi * f / Fs; // phase increment per sample
for each sample
output = A * sin(phi); // output sample value for current sample
phi += delta; // increment phase accumulator
Run Code Online (Sandbox Code Playgroud)
对于扫频正弦波,您可以线性增加频率,即delta线性增加。
//
// A = sine wave amplitude
// fs = sample rate (Hz)
// f0 = initial frequency (Hz)
// f1 = final frequency (Hz)
// T_sweep = duration of sweep (s)
//
phi = 0; // phase accumulator
f = f0; // initial frequency
delta = 2 * pi * f / Fs; // phase increment per sample
f_delta = (f1 - f0) / (Fs * T_sweep);
// instantaneous frequency increment per sample
for each sample
output = A * sin(phi); // output sample value for current sample
phi += delta; // increment phase accumulator
f += f_delta; // increment instantaneous frequency
delta = 2 * pi * f / Fs; // re-calculate phase increment
Run Code Online (Sandbox Code Playgroud)