gpt4 book ai didi

c - 如何使用整数除法降低采样率?

转载 作者:太空宇宙 更新时间:2023-11-04 02:27:36 25 4
gpt4 key购买 nike

我想将我的基频 F (80000 Hz) 降低仅使用整数除法的任意分数

假设以频率 F 调用 new_sample() 函数。然后我可以使用下面的代码将采样率降低到 40000 Hz。

i = 0; // global counter
new_sample(value){
if(i % 2 == 0){
add_sample_to_buffer(value);
}else{
// skip sample
}
i++;
}

如果我想将采样率降低 1.6 倍至 50000 Hz,该怎么办?

正如 Clifford 所指出的:我想在不改变频率的情况下改变采样率。基本上,我想通过实时跳过一些样本来对信号进行欠采样。

附注:我知道预分频器和后分频器通常用于降低频率。我不知道他们是否允许将频率降低一小部分。

最佳答案

试试这个:

unsigned Nanoseconds = 0; // global counter

void new_sample(value){
Nanoseconds += 12500; // interval between calls at 80000
if(Nanoseconds>20000){
Nanoseconds-=20000;
add_sample_to_buffer(value);
}else{
// skip sample
}
}

在一秒内,Nanoseconds 将递增 80000 次,等于 12500,等于 1E9,并且将递减 50000 次,递减 20000。

关于c - 如何使用整数除法降低采样率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48852231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com