I2S信号个人理解阐述

来源:互联网 发布:js求数组平均值 编辑:程序博客网 时间:2024/06/09 14:29

I2S信号是音频数据传输格式 CLK的意义这里总结下:  先对模拟信号数字化做一个基础了解  对于模拟信号的数字化,需要经过采样和量化两个过程。 1.采样:  这里模拟信号的采样,简单的理解就是在什么时候对模拟信号做一个取样。比如每隔0.001ms做一次采样。这样就有,FS=1/0.001S=1KHZ.FS就是采样频率。  采样决定什么时候对模拟信号进行取值。要多少的采样频率才能完整的还原一个模拟信号?这里涉及到数字信号处理。。满足FS>=2fsMAX,( fsMAX是模拟信号的最高频率)就可以无损失的还原模拟信号了。  人耳的听力频率范围是 20~20K, fsMAX,=20KHZ.因此对人耳听力内的声音做一个没有损失的数字化,FS>=40KHZ.CD的采样率为44.1K,已经是高保真了,它已经涵盖人耳所能听到的所有声音了.  一个周期中,会有一个高一个低电平,为了充分利用资源,I2S协议规定在高电平的时候传输左通道信息,在低电平时候传输右通道信息.当然在DSP里我们可以也可以设置.高低电平传左通道还是右通道  I2S中的LRCLK == FS,就是采样频率了. 2.量化  量化就是对采样到的信号进行数字编码,这时有个采样精度问题.举个例子来说.我的ADC的采样电压是0~5V.采样位数是16位.16位是由ADC的硬件决定.16位的意思是对每一个采样到的数据编码成一个16进制的数据,5V编码为1111 1111 1111 1111 1111,0V编成为0000 0000 0000 0000.采样精度就是(5V-0V)/216 ,通俗地讲就是我能分辨的最小电压间隔.  每次采样到的转化为16位信号,我就要让人知道在什么时候去同步16位数据啊. 取的要够快,不能在下一个数据到来的时候还没有把数据取完啊.还是继续上面的CD的例子,CD在每隔1/44.1KHZ的时候采样一个模拟信号.那么在这么短的时间保存2次16位编码(高电平传输一次,低电平传输一次,也就是一次传输2个通道信号) .需要的脉冲频率高于2*16*44.1 
=1441.2,单位是bps,就是我们说的比特率了,我们说CD的是无损的,因为它对数字信号进行无压缩的PCM编码,,这时的编成是得到上面采样后的数据,要想得到更好的音质就需要更高的采样精度了,比如DVD的24.但是不是说DVD采用48khz的高采样率就会得到比CD更好的音质了.采样率是决定能完整还原模拟信号频率,对于人耳听力范围内的频率,如上面说的
FS>=2fsMAX,理论上只要40KHZ的采样率就可以满足了,但是因为音乐信号有些甚高频的东西,它影响音乐的听觉,所以很多时候我们会追求较高的采样率. 
   对于MP3,比特率64,128,192,256,320bps.因为MP3是一种压缩编码格式,它会损失原来一部分信号来获得,我们常说的高保真,就是模拟信号转为数字信号在还原为模拟信号的损失而言的,CD的音质已经算是高保真,笼统划分是以1441.2Kbps为分界点。所以MP3音乐是不能算作高保真的。这里扯远了.拉回来继续说. BCLK,DATA  I2S信号它会有32.0 format/64.0format.我的理解就是它是最高支持32/64位采样率的, 这样BCLK就是 BCLK = 2*采样位数*FS,拿32.0 format来说, BCLK = 2*44.1HZ*32 =2.8224MHZ.注意CD的采样位数是16位的,(I2S格式的信号无论有多少位有效数据,数据的最高位总是出现在LRCK变化(也就是一帧开始)后的第2个SCLK脉冲处。这就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的












低位数据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位。这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。--出自百度)对于这点,需要补充一点,就是不管你的模拟电压的峰峰值多少,在I2S32.0 format/64.0format.。CD的16位采样,I2S会自动补零,这对实际的16位采样不产生任何影响,但是对于你用32format的I2S信号传送超过32位采样率的音频信号,就会有损失。不过在民用的音频领域很少会看到32位精度的ADC了。 
MCLK,经过上面的说明,我不知道大家对I2S信号的理解怎么样了。MCLK很简单,就是给2个器件传送data时候做一个基准,是一个同步信号。一般是256FS/384FS.  
下面说说在做DSP时候的I2S配置问题。 
如果对上面的东西已经有了理解,那对以下的话可以忽略了。 
DSP的MCLK是既定的,这个样你能配置的就是mclk。Bclk跟LRclk的比值了。MCLK/LRCLK=256/384,BCLK/LRCLK = 64/128/256. 这些都是根据协议来的所以没有什么为什么。 以上I2S信号的个人理解阐述,希望能帮到大家。   
补充下SPDIF。DOLBY。PCM的区别 SPDIF跟I2S信号一样,是一种传输协议。DOLBY是一种数字音频算法,自身也有很多分类。这个可以百度一下,不做具体介绍,因为我也没有太多了解。 PCM(Pulse-code modulation),即脉冲编码调制
  此图也可看出模拟信号时怎么转为数值
信号的。 
原创粉丝点击