基于MATLAB的PCM编解码

(一)13 折线法编码的 Matlab 实现
(a)编程思想
“模拟信号的抽样”已经得到了时间离散、幅度连续的抽样信号。若将对抽样信号非均匀量化编码编出的 8 位码组用 C1 C2 C3 C4 C5 C6 C7 C8 表示。
(1)抽样信号是 1×n 的矩阵,例如采样周期 T=0.0015; n=0:1:1/T; 则有667个抽样值, 13 折现法编码后得到的则是 667×8 的矩阵,一行对应一个抽样值的 8 位 PCM码组。每个抽样值的编码思想都是一样的, 若要进行多个抽样值的编码,进行 for 循环即可。下面阐述单个抽样值的编码思路。
(2)确定极性码 C1 :利用 matlab 的符号函数 sign(x) :x<0 时,sign(x)=-1;x=0 时,sign(x)=0;x>0 时,sign(x)=1。所以,若 sign (x)大于等于 0, C1 =1;否则 C1=0。
例如: +1000,sign (1000)=1,所以C1 =1。
(3)确定段落码 C2 C3 C4 :PCM13折线编码的动态范围为 -2048–2048 ,而上一步骤中已经求出了各抽样信号极性,于是只要对抽样信号的绝对值分析即可。故对抽样值依次进行取模、归一、乘以 2048、取整的操作,可以将抽样值转化为 0–2048 之间的整数。根据段落码与段落范围的关系,使用 if 语句即可确定C2 C3 C4 。
例如: +1000,因为 1000≥128,故 C2

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值