• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Matlab
  • 标签: matlab  

资源简介

这是一个关于在MATLAB的基础上上实现的对pcm编码的理解,相信会有较大的帮助

资源截图

代码片段和文件信息

function [ERRO EIGHT ELVE]=encoder(S)
z=sign(S);               %判断正负s为输入数组
MAX=max(abs(S)); 
ee=MAX/2048;
S=(abs(S/MAX));          %归一化,s数组为归一化以后的值数组
Q=2048*S;                %量化
EIGHT=zeros(length(S)8);    %EIGHT向量用于存放量化后得到的八位二进制码
ERRO=zeros(1length(S));       %用于存放量化误差
ELVE=zeros(length(S)11);       %用于存放量化后得到的11位二进制码
%判断符号位和段落码,一位一位挨着判断
for m=1:length(S)
    if (Q(m)>=128 & Q(m)<=2048)
        EIGHT(m2)=1;
    end
    if (Q(m)>=32 & Q(m)<128)||(Q(m)>=512 & Q(m)<=2048)
        EIGHT(m3)=1;
    end
    if(Q(m)>=16 & Q(m)<32)||(Q(m)>=64 & Q(m)<128)||(Q(m)>=256 & Q(m)<512)||(Q(m)>=1024 & Q(m)<=2048)
        EIGHT(m4)=1;
    end
    if z(m)>0
        EIGHT(m1)=1;
    elseif z(m)<0
         EIGHT(m1)=0;
    end
end
%判断段内码
N=zeros(length(S));%每个元素的段落值,初始化
for m=1:length(S)
    N(m)=EIGHT(m2)*4+EIGHT(m3)*2+E

评论

共有 条评论