标准pcm数据(正弦波、方波、三角波)解读

一年前写了一个demo,用于生成几种标准的波形,如正弦波、方波、三角波。之前写的只有这几个功能:波形/通道/时长/频率的控制选择,这几天抽了些时间又加了增益控制功能。为了避免东西丢失或意外删除,特上传到github,有需要的可以自己下载验证。

在测量板子信号时,我们根据需要生成波形(wav封装),将得到的文件放到板子存储设备中进行播放。记得以前调试时都是找一个同事(一个好耍的憨厚朴实纯真的兄弟,名字叫jiawei)临时要的,然而数量毕竟有限,因为我可能需要不同采样率/通道/增益/频率组合的信号。。。

下面结合git仓库中的CStandardWaveGenerator和Adobe Audition来介绍声音的一些概念。像声道、采样率、增益、频率、时长等概念。以后有时间了再另起博文补充傅里叶变换,利用这个demo生成所需要的信号源。

示例介绍

生成信号:正弦波 + 时长100ms + 周期10ms(频率100Hz) + 单声道 + 8k采样率 + 单声道 + 6dB

执行命令:./StandardWaveGenerator.exe 0 100 10 8000 1 -6

附带信息:get sin.wav with sample_rate=8000, channle=1, duration=100 ms, period=10 ms, gain=-6 dB, pcmLen:1600

得到文件sin.wav,用Audition解读:

信号解读

1.单双声道(channel)

这个通俗讲,你用几个mic去采集信号。如果是双声道,则上图有两个波形。双声道每次采样数据量为:2chn * 16bit(s16le) = 4Bytes

2.采样频率(sample_rate)

这个要与信号频率(周期信号的频率)做下区别。这个是指:每秒钟的采样次数。

就如上面示例图示,采样频率是8k,代表着1s内进行了8000次采样,而只保留了100ms的信号,因此数据量大小:8000 * 2Bytes * (100/1000) = 1600Bytes,从命令输出信息也可看到。

3.时长(duration)

这个文件的时间长度,示例中是100ms

4.信号频率/信号周期(frequence/period)

这个值代表信号多长时间后又开始重复,上面示例中使用了这个“period=10 ms”来控制,即T=10ms,那么f=1/T=100Hz,从图示下半部分可以看出信号的频率是100(明显的一条黄带)。

5.增益(gain)

这个可以表示声音的响度,其具体含义是信号与某一个值对比:20lg(V1/V2),在音频里则与最大值V2=215=32768进行对比,那么-6dB的信号可以算出来其值为:214=16384

例如,如果我们从文件中去找出最大值是多少来确认是否属实,可以按以下这么操作:

step1. 半波最大pcm值采样序号:10ms * (1/4) / 1000ms * 8000 = 20

step2. 在文件中的offset:44 + 20*2 = 84 = 0x54,其中44为wav_header,20*2中的2代表每次采样的2Bytes

step3. 用winhex进行查找(alt+g):得到 25 40

step4. 25 40代表值多少呢?由于存储格式为S16LE,S(signed)代表有符号,LE(little endian)为小端存储(先存低字节,再存高字节),那么这个采样值为0x4025 = 16421,大体上接近理论值16384。

原文地址:https://www.cnblogs.com/Dreaming-in-Gottingen/p/11441842.html

时间: 2024-08-30 09:46:58

标准pcm数据(正弦波、方波、三角波)解读的相关文章

多媒体基础知识之PCM数据

1.什么是PCM音频数据 PCM(Pulse Code Modulation)也被称为脉冲编码调制.PCM音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样.量化.编码转换成的标准的数字音频数据. 2.PCM音频数据是如何存储的 如果是单声道的音频文件,采样数据按时间的先后顺序依次存入(有的时候也会采用LRLRLR方式存储,只是另一个声道的数据为0),如果是双声道的话就按照LRLRLR的方式存储,存储的时候还和机器的大小端有关.大端模式如下图所示: 3.PCM音频数据中常用的专业术语

安卓播放pcm数据

Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的.MediaPlayer在底层是基于OpenCore(PacketVideo)的库实现的,为了构建一个MediaPlayer程序,上层还包含了进程间通讯等内容,这种进程间通讯的基础是Android基本库中的Binder机制. 但是该类只能对完整的音频文件进行操作,而不能直接对纯PCM音频数据操作.假如我们通过解码得到PCM数

Oracle数据块实现原理深入解读(转)

Oracle对数据库数据文件(datafile)中的存储空间进行管理的单位是数据块(data block).数据块是数据库中最小的(逻辑)数据单位.与数据块对应的,所有数据在操作系统级的最小物理存储单位是字节(byte).每种操作系统都有一个被称为块容量(block size)的参数.Oracle每次获取数据时,总是访问整数个(Oracle)数据块,而不是按照操作系统块的容量访问数据. 数据库中标准的数据块(data block)容量是由初始化参数 DB_BLOCK_SIZE指定的.除此之外,用

numpy绘制锯齿波和三角波

锯齿波和三角波 三角波是对锯齿波取绝对值得到的 锯齿波的无穷级数展开: Code import numpy as np import matplotlib.pyplot as plt t = np.linspace(-np.pi, np.pi, 201) k = np.arange(1, 99) f = np.zeros_like(t) for i in range(len(t)): f[i] = np.sum(np.sin(2 * np.pi * k * t[i])/k) f = (-2 /

民生银行十五年的数据体系建设,深入解读阿拉丁大数据生态圈、人人BI 是如何养成的?(转载)

早在今年的上半年我应邀参加了由 Smartbi 主办的一个小型数据分析交流活动,在活动现场第一次了解到了民生银行的阿拉丁项目.由于时间关系,嘉宾现场分享的内容非常有限.凭着多年对行业研究和对解决方案的嗅觉与敏感性,意识到这个阿拉丁项目的完整性和独特性超出了以往我所接触过的所有 BI 领域的项目案例,很值得再次深入的探讨.学习与研究.对于很多公司在建设自身的 BI 或者大数据平台体系上,这个项目案例有很好的参考与借鉴意义.(另外一个我个人比较推崇的大数据建设的案例是美的的大数据平台建设案例.) 在

隧道目标识别实验过程(二)标准VOC数据集和制作后的数据集实验结果对比

VOC标准数据集中一共有20个类别: 'aeroplane', 'bicycle', 'bird', 'boat','bottle', 'bus', 'car', 'cat', 'chair','cow', 'diningtable', 'dog', 'horse','motorbike', 'person', 'pottedplant','sheep', 'sofa', 'train', 'tvmonitor' 可以尝试用其中的红色标注的五个类别来对隧道目标进行识别. 标准数据集中的车和行人的

使用 audioqueue 播放PCM数据

// // MainViewController.h // RawAudioDataPlayer // // Created by SamYou on 12-8-18. // Copyright (c) 2012年 SamYou. All rights reserved. // #import <UIKit/UIKit.h> #import <AudioToolbox/AudioToolbox.h> #define QUEUE_BUFFER_SIZE 4 //队列缓冲个数 #def

【Z-Stack】发送数据函数“afStatus_t AF_DataRequest”参数解读

Z-Stack 中发送数据通过在应用层调用函数 void SampleApp_SendFlashMessage( uint16 flashTime ) 完成,其中flash Time 为发送的数据,这个函数在应用中通过调用 afStatus_t AF_DataRequest( afAddrType_t *dstAddr, endPointDesc_t *srcEP, uint16 cID, uint16 len, uint8 *buf, uint8 *transID, uint8 options

山东鲁南数据中心,标准3T数据中心机房,骨干节点网络,高防三线BGP

山东东鲁南数据中心IDC机房G口.万兆,百兆有需求的朋友请直接联系我山东枣庄鲁南数据中心机房,是山东省直连骨干的数据中心之一,依托山东三大运营商强大的技术力量和网络资源,以万兆级高速物理光纤直接接入骨干网,并以冗余线路结构保证高速可靠.可为用户提供联动的"一站式服务"总出口带宽高达1.4T:NE5000E核心接入设备:600G傲盾万兆集群防护:专业承接大带宽,大流量用户,G口,万兆,百兆独享,高防,三线BGP资源.保证全地区较低价.网通G口服务器租用,万兆口资源.G口服务器托管.机柜租