您的位置:首页 > 移动开发 > Android开发

音频,PCM,采样率及android的AudioRecord与AudioTrack 资料整理

2016-12-02 11:02 411 查看
采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。通俗的讲采样频率是指计算机每秒钟采集多少个信号样本。

 

音频重采样分为上采样和下采样,即插值和抽取。在实现有理数级重采样时,则是将上采样和下采样做结合(例如48kHz 转 44.1kHz时,将44.1kHz近似为44kHz,将48kHz下采样到4kHz,再上采样至44kHz来实现)。

由数字信号处理中,时域信号和频域信号的时-频对偶特性可知:时域的抽取,对应频域的延拓;时域的插值,对应频域的压缩。如果对信号的频率成分不做限制的话,频域的延拓可能会引发频谱混迭;频域的压缩来引起频谱镜像相应。因此在下采样前,要经过滤波器滤波来防止混迭,即抗混迭(antialiasing filter)滤波;上采样后也要经过滤波处理,即抗镜像(anti-image filter)滤波。

 

MATLAB中如何使用resample函数降低采样率

补充资料

现在有一个txt文件中的一维数组X,X中有大约4千个点,采样率为250hz,如何将它降到90hz.B=resample(X,25,9),还是
B=resample(X,9,25)?

resample为信号降采样处理,理解如下:

B=resample(x,90,250);  %

采样从250Hz降到90Hz,如果250在前,就是插值从90到250,可以看B的长度,250Hz采样4000个数据等于90hz采样1440个数据,这就是降采样。

resample是抽取decimate和插值interp的两个结合

具体完成如下操作,

先插值90变成 250*9Hz

然后抽取250变成速率 90Hz

 

 

ffmpeg实现音频resample(重采样) http://blog.csdn.net/zhuweigangzwg/article/details/43733673  
 
我对上下采样是这样理解的。上采样就是在奇数点插入零值。频率变高一倍。下采样就是抽取偶数点的值,奇数点的值不要。频率降低一倍。
如果我的理解没有问题的话,那么44KHz的下采样可以到11KHz,至于达到8KHz,应该是没有办法的。
44kHz,上采样到88kHz,即,采样频率是原采样频率的两倍,这个本身可以有interp函数来实现,interp函数完成了第一和第二步骤;下采样,88kHz可以每11个抽取一次,即得到8kHz的采样频率,在matlab里面本身可以使用decimate函数很快实现。

以下摘自http://blog.csdn.net/jiangliloveyou/article/details/11218555
抽样:在音频采集中叫做采样率。

由于声音其实是一种能量波,因此也有频率和振幅的特征,频率对应于时间轴线,振幅对应于电平轴线。波是无限光滑的,弦线可以看成由无数点组成,由于存储空间是相对有限的,数字编码过程中,必须对弦线的点进行采样。采样的过程就是抽取某点的频率值,很显然,在一秒中内抽取的点越多,获取得频率信息更丰富,为了复原波形,一次振动中,必须有2个点的采样,人耳能够感觉到的最高频率为20kHz,因此要满足人耳的听觉要求,则需要至少每秒进行40k次采样,用40kHz表达,这个40kHz就是采样率。我们常见的CD,采样率为44.1kHz。
量化:我们这里的采样大小就是量化的过程,将该频率的能量值并量化,用于表示信号强度。量化电平数为 2的整数次幂,我们常见的CD位16bit的采样大小,即2的16次方。
编码:
根据采样率和采样大小可以得知,相对自然界的信号,音频编码最多只能做到无限接近,至少目前的技术只能这样了,相对自然界的信号,任何数字音频编码方案都是有损的,因为无法完全还原。在计算机应用中,能够达到最高保真水平的就是PCM编码,被广泛用于素材保存及音乐欣赏,CD、DVD以及我们常见的WAV文件中均有应用。因此,PCM约定俗成了无损编码,因为PCM代表了数字音频中最佳的保真水准,并不意味着PCM就能够确保信号绝对保真,PCM也只能做到最大程度的无限接近。我们而习惯性的把MP3列入有损音频编码范畴,是相对PCM编码的。强调编码的相对性的有损和无损,是为了告诉大家,要做到真正的无损是困难的,就像用数字去表达圆周率,不管精度多高,也只是无限接近,而不是真正等于圆周率的值

为什么要使用音频压缩技术 

要算一个PCM音频流的码率是一件很轻松的事情,采样率值×采样大小值×声道数bps。一个采样率为44.1KHz,采样大小为16bit,双声道的PCM编码的WAV文件,它的数据速率则为 44.1K×16×2 =1411.2 Kbps。我们常说128K的MP3,对应的WAV的参数,就是这个1411.2 Kbps,这个参数也被称为数据带宽,它和ADSL中的带宽是一个概念。将码率除以8,就可以得到这个WAV的数据速率,即176.4KB/s。这表示存储一秒钟采样率为44.1KHz,采样大小为16bit,双声道的PCM编码的音频信号,需要176.4KB的空间,1分钟则约为10.34M,这对大部分用户是不可接受的,尤其是喜欢在电脑上听音乐的朋友,要降低磁盘占用,只有2种方法,降低采样指标或者压缩。降低指标是不可取的,因此专家们研发了各种压缩方案。由于用途和针对的目标市场不一样,各种音频压缩编码所达到的音质和压缩比都不一样,在后面的文章中我们都会一一提到。有一点是可以肯定的,他们都压缩过。

频率与采样率的关系

采样率表示了每秒对原始信号采样的次数,我们常见到的音频文件采样率多为44.1KHz,这意味着什么呢?假设我们有2段正弦波信号,分别为20Hz和20KHz,长度均为一秒钟,以对应我们能听到的最低频和最高频,分别对这两段信号进行 40KHz的采样,我们可以得到一个什么样的结果呢?结果是:20Hz的信号每次振动被采样了40K/20=2000次,而20K的信号每次振动只有2次采样。显然,在相同的采样率下,记录低频的信息远比高频的详细。这也是为什么有些音响发烧友指责CD有数码声不够真实的原因,CD的44.1KHz采样也无法保证高频信号被较好记录。要较好的记录高频信号,看来需要更高的采样率,于是有些朋友在捕捉CD音轨的时候使用48KHz的采样率,这是不可取的!这其实对音质没有任何好处,对抓轨软件来说,保持和CD提供的44.1KHz一样的采样率才是最佳音质的保证之一,而不是去提高它。较高的采样率只有相对模拟信号的时候才有用,如果被采样的信号是数字的,请不要去尝试提高采样率。

流特征

随着网络的发展,人们对在线收听音乐提出了要求,因此也要求音频文件能够一边读一边播放,而不需要把这个文件全部读出后然后回放,这样就可以做到不用下载就可以实现收听了。也可以做到一边编码一边播放,正是这种特征,可以实现在线的直播,架设自己的数字广播电台成为了现实。

在实际中使用android的AudioRecord与AudioTrack ,可参考http://blog.sina.com.cn/s/blog_6309e1ed0100j1rw.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐