use*_*764 3 c loops for-loop increment
我有这个代码
for (k=0; k<BUFFER_LEN; k++){
buffer[k] = sin(2*pi*f/fs*k); //sine generation
Run Code Online (Sandbox Code Playgroud)
我的循环每次递增1 - 因此每次计算时k将为1,2,3,4,5 ......等
我想循环每次增加0.1,所以我的正弦计算更准确?实现这一目标的最简单方法是什么?我尝试在for循环中递增0.1,但不要认为这是允许的,因为程序超时
编辑:这是一个解决方案
int i, k;
float z=0.1;
for(i = 0; i < BUFFER_LEN; i++){ // fill the buffer
buffer[k] = sin(2*pi*f/fs*z); // sine wave value generation
z = z + 0.1;
}
Run Code Online (Sandbox Code Playgroud)
如果您想要做的只是递增.1,那么您的k值必须是浮点数.在那之后,它就像这样简单:
for(double k = 0; k < limit; k += 0.1)
Run Code Online (Sandbox Code Playgroud)
但过度使用十进制值可能会导致舍入错误,并且您的代码需要k为整数.这可能是一个更好的解决方案:
for(int k = 0; k < limit * 10; k++){
//Now, in your equation, use k/10.0
buffer[k] = sin(2 * pi * f / fs * (k / 10.0));
}
Run Code Online (Sandbox Code Playgroud)
确保尺寸buffer是需要的十倍!