文章目录固定采样率下的正弦波数组I2S 输出 USB 麦克风AP 仪器测试
I2S 输出正弦波PC 端 C 语言生成正弦波数组 原理
三角函数的公式y = A s i n w x y =y=
【八音频——C语言生成正弦波并用 I2S 输出】代码实现 源码
#include #include
编译
gcc generate_sin_data.c -lm
需要用到数学库中的函数 sin,所以链接的时候需要加上 lm 参数
运行结果
0 50 99 148 195 241 284 324 362 395 425 451 473 489 502 509 512 509 502 489 473 451 425 395 362 324 284 241 195 148 99 50 0 -50 -99 -148 -195 -241 -284 -324 -362 -395 -425 -451 -473 -489 -502 -509 -512 -509 -502 -489 -473 -451 -425 -395 -362 -324 -284 -241 -195 -148 -99 -50
从生成的数据中可以看出,数据的最大最小值分别为 512 和 -512
波形
将上述数据用散点图绘制出来如下图
固定采样率下的正弦波数组
上一节生成的正弦波数组 幅值 及 step 步长并没有考虑实际频率
实际音频输出是需要考虑:采样位数,采样频率,声道数详见音频(一)——基本概念及硬件拓扑
采样位数对应到正弦波中即为幅值
采样频率对应到正弦波中即为频率
基本思路:
源码实现
#include #include
编译
gcc generate_sin_data.c -lm
需要用到数学库中的函数 sin,所以链接的时候需要加上 lm 参数
运行结果
0, 4276, 8480, 12539, 16383, 19947, 23169, 25995, 28377, 30272, 31650, 32486, 32767, 32486, 31650, 30272, 28377, 25995, 23169, 19947, 16383, 12539, 8480, 4276, 0, -4276, -8480, -12539, -16383, -19947, -23169, -25995, -28377, -30272, -31650, -32486, -32767, -32486, -31650, -30272, -28377, -25995, -23169, -19947, -16383, -12539, -8480, -4276,
从生成的数据中可以看出,数据的最大最小值分别为 32767 和 -32767,16 位音频数据的取值范围为? 2 31 —— 2 31 ? 1 -2^{31}——2^{31}-1 ?231——231?1
- 1 Linux内核4.14版本——drm框架分析——drm简介
- Citesapace作图结果部分——文章整体思路简单分析
- 【分享】html5 开发工具——WeX5中的各种绑定方式
- 部分整体模式 设计模式——组合模式
- 猪八戒喜欢的竟然不是嫦娥仙子而是霓裳仙子!
- 清朝时期满洲八旗少年时代的野外训练如何?
- 旧手机利用 第二弹 ——网络摄像头
- Python数据分析案例20——我国家庭资产影响因素分析
- 猪八戒的两项绝世神通都是啥?一贯装傻充愣
- 西游记要行走十万八千里竟与郑和下西洋有关