首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单周期44.1kHz采样1 1kHz正弦波

单周期44.1kHz采样1 1kHz正弦波
EN

Stack Overflow用户
提问于 2019-03-03 19:25:40
回答 1查看 767关注 0票数 0

我试图在c中创建一个单周期正弦波,频率需要大约1 1kHz,采样频率为44.1kHz。这是因为正弦查找表被输入到一个stm32f4微控制器,该微控制器在44.1kHz下采样,然后输出到5个独立的DACs。我一直有问题,弄清楚如何得到准确的一个周期的波。

目前,我得到了大约10-11个周期。

代码语言:javascript
复制
for(int j = 0; j < 45; j++){ 
    arr[j] = MAXVOLUME*((sin(2.0*PI*sineFrequency*j/44100.00)+1.0)/2.0);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-03 20:14:55

你的除数是错的--你想除以样本数,而不是采样频率。这就引出了这个问题--要在44.1KHz采样一个1KHz的周期,你需要44.1个样本,这不是一个整数。所以你有两个选择:

  • 使用更多的样本来获得更多的周期--例如,441个样本在1 KHz时会得到10个周期。 (int= 0;j< 441;j++) arrj =MAXVOLUME*(sin(2.0*PI*j/44.1)+1.0)/2.0;
  • 调整你想要的频率以匹配输出频率--例如,当输出频率为44.1KHz时,一个周期的44个样本将给你1.00227KHz。 (int= 0;j< 44;j++) arrj =MAXVOLUME*(sin(2.0*PI*j/44.0)+1.0)/2.0;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54972794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档