首页 > 编程知识 正文

音频格式pcm,pcm数据格式

时间:2023-05-04 07:21:09 阅读:162419 作者:1848

PCM格式的详细描述:脉冲编码(PCM )、脉冲码调制。 人耳能听到的是模拟信号,而PCM是将声音从模拟信号转换为数字信号的技术。 原理是以一定频率对模拟信号进行采样,被采样的信号就像波形上连续的振幅不同的一系列脉冲(像脉搏一样暂时起伏的电冲击),以一定的精度对这些脉冲的振幅进行量化,这些量化后的数值被连续输出

声音三要素:音调:音频的快慢

音量:振动的幅度

音色:谐波

量化:采样大小:一个采样数据用多少bit存放,8bit、16bit

采样率:采样的频率8K、16k、32k、44.1k、48k

频道数:单声道、双声道、多声道

大小计算:一秒数据大小(码率)=采样大小*采样率*声道数 (Kb/s)

如果采样率为8kHz、通道数量、采样为16位、时间长度为1s,则音频数据的大小将如下所示:

1 * 8000 * 16 *2=256000 bit/8=32000 byte/1024=31.25 kb

数据排列方式:左右声道每个样本点数据交错排列

代码:功能:16位采样双声道的音频,将左声道的数据写入右声道

注:纯数据PCM文件没有44字节的头文件

#include iostreamint main () file*FP=fopen('src.PCM ',' rb ' ); file*fpw=fopen('dst.PCM ',' wb ' ); for(intI=0; i11; I )读过//44字节的报头信息(unsignedchar*buffer=)、unsignedchar* )、malloc )4*8); 读(缓冲器,4,1,fp ); frite (缓冲器,4,1,fpw ); 自由(buffer ); }for(intI=0; i600000; I )//将左通道数据写入右通道(unsignedchar*buffer=)、unsignedchar* )、malloc )4*8); 读(缓冲器,4,1,fp ); buffer[0]=buffer[2]; buffer[1]=buffer[3]; frite (缓冲器,4,1,fpw ); 自由(buffer ); (fflush ) fpw; flose(FP ); fclose(fpw; 返回0; () ) ) ) )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。