什么类型的存储在传感器中的音频信号转换成数字(ADC)

问题描述:

请原谅我的知识缺乏,但我试图寻找了几天的答案,我无法想出解决办法后的数据。什么类型的存储在传感器中的音频信号转换成数字(ADC)

我试图做声传感器(mica2),感应音频信号和做一些特征提取等模拟。 在matlab中,当我读取一个音频文件(例如使用readaudio)它会给我表示信号幅度的-1和1之间的归一化值,然后使用这些值进行特征提取。

不过,现在我想用AVRORA和用C实现模拟传感器,所以,我所代表的样本值作为浮点数,但我不知道这是正确的。

所以,基本上,我的问题是:

  • 如何传感器信号存储经过A/d转换?我的意思是数字信号采样值(浮点数或整数数?),它们是否表示信号的幅度?
  • 我可以直接对数字信号进行特征提取吗?
  • 我假定我有大小4000的阵列(因为传感器具有4KB RAM)存储表示所述信号采样的浮点数。那是对的吗?
+2

尚未浮动的2000个样品!硬件真的不喜欢花车。 – ThingyWotsit

+0

那他们是代表信号幅度的整数值吗? –

+0

ADC通常:将指定范围内的信号电压转换为指定数字范围内的数字。如果结果中有12位,则分辨率会从输入电压的无穷大中提供4096个离散值。您可以将它们转换为信号范围的浮点表示形式,但请注意,即使输入电压可能为负值,数字值也可能是无符号的,具体取决于电路和配置。或者你可以将它们归一化到-1到+1的范围。我对“幅度”的理解是一般的数值范围。一个样本就是它的水平。 –

阅读了关于PCM - pulse code modulation这是根本的原始音频格式...音频基本上仅仅是一个曲线通常从-1变化到+1用沉默作为零信号......这数字信号必须得到存储到8位字节......更高的音频保真度意味着音频曲线上每点的字节数量更多......根据定义,一个字节(8位)只能提供2^8个不同的值== 256个不同的值可以从-1扩展到+1 ... CD质量音频使用两个字节(16位),它给你2^16个不同的值,从-1扩展到+1 ... 24位和32位音频存在,但同样的好处在那里...所以是你的数字音频曲线由整数(16个有符号整数,或无符号整数,如果你从-1移动您的数据,以+1至0至+1蔓延)

代表210

特征提取:那么你是在处理一个时间序列曲线但是有当人类感知参与整个子......短暂太多有这么质疑

是什么AVRORA?你拼写正确吗?

你提到了4k的内存......做数学运算:44.1khz采样率这给你一小部分的音频,以便缓冲区被填充,然后立即传输下来,准备下一组采样。 ..音频曲线上的一个点是一个样本...质量取决于两个因素:(1)分配给存储的每秒多少个采样(采样率)通常为44.1khz和(2)分辨率(存储位数)音频曲线高度(比特深度)通常为16位...

任何传感器简单地产生一系列音频曲线的样本测量的...每个样本表示音频曲线的高度随着从变化发言权-1到+1 ...通常每秒钟执行44,100次新样本......所以对于r的一秒钟ECORDING你有44100倍的数字...每个样本是输出一个单一的电话号码通常整数整数的范围由传感器位深度确定的单个测量...

如果曲线变化从-1到+1所以将您的样本值...以数字格式表示这一点,我们必须了解比特存储容量的概念......可以说我们有一个传感器(不是您的10比特传感器)......根据定义,一位传感器只能输出两个不同的值:0或1为什么只有两个值?因为一位有2^1可能的值可用...一个两位传感器可以给你4个不同的值:0 1 2 3,因为2^2 == 4 ...一个3位传感器提供8个不同的值,因为2^3 8 ......现在你有一个10位的传感器,那么它可以输出2^10个不同的值...还记得什么是抵达该处测量:音频曲线的高度...

如果我们有一个10位传感器给定的样本测量值将是2^10个不同的可能值之一,因为2^10 == 1024,因此可能的样本值范围从0,1,2 ...到1023 [从0到(2^n-1 )] ...

为简单起见在多达让坚守无符号整数(一切积极从0)...如果你的音频曲线样品而从-1到+1然后来表示范围为无符号整数只需添加1到示例和div通过2个IDE ...(SAMPLE + 1)/ 2将输出值从0到+1而不是-1到+1 ...

引述您的评论:“如果我的传感器采用10位ADC,我会得到-1和1之间的值的向量,并且我会得到不同的1024个值?“

答案:可能但不太可能...这取决于输入音频信号...一个样品将产生在一个范围从0到1023的可能值中的一个整数...以输出1024个不同的值,这将需要每个1024个样本具有不同的值,这意味着音频曲线高度变化将不得不随着每个新样本在锁定步骤中变化,并且音频曲线必须在-1到+1或0到+1(什么范围实际上可以因为其始终归忽视到一个易于使用的范围-1到+1或0至+1,或任何你喜欢)

即使你有10位传感器,它很可能存储使用两个字节(消耗16位),这使得代码更简单但效率更低的存储使用。可以将10位数据存储到4,000字节的缓冲区中,从而为您提供400个样本,但使用更复杂的代码逻辑会使计算速度变慢。所以,如果它不使用存储的两个字节(16位),每10位采样,你的4000字节的缓冲区将持有单声道音频

+0

非常感谢,非常感谢。是的Avrora是云母传感器的模拟器,可以测量周期,能耗和时间。 –

+0

对不起,但我是音频领域的新手,所以你可以向我解释这一点,所以基本上如果我的传感器使用10位ADC,我会得到-1和1之间的一个向量值,而我会得到不同的1024个值?我认为,因为我有4kb RAM,这意味着在每次传感器将处理一个样本块(4000个样本),所以我认为我有一个4000的大小的数组。再次感谢你从你的时间重新播放我 –