⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 宋柳佳的pcm编码.m

📁 对单个采样点进行PCM编码的matlab源程序
💻 M
字号:
function k=pcm(a)
A=a/max(abs(a));                        %归一化
A=abs(A);
p=[0 1/128 1/64 1/32 1/16 1/8 1/4 1/2 1];%段落比较划分
c=[1 1 2 4 8 16 32 64];                 %每段的最小量化间隔
for i=1:length(a)
  for j=1:length(p)
       if (A(i)<p(j))
            break;
             end;
              end;
         f(i)=j-2;                      %取得段落码
         m(i)=16*(A(i)-p(j-1))/(p(j)-p(j-1));  %取得段内码
    if(a(i)>0)                          %判定极性码 
      d(i)=1;
    else
      d(i)=0;
    end;       
l(i,1)=fix(f(i)/4);f(i)=mod(f(i),4);    %对折线段落进行编码(十进制转化为二进制)
l(i,2)=fix(f(i)/2);f(i)=mod(f(i),2);
l(i,3)=fix(f(i));
m(i)=fix(m(i));
if(m(i)==16)                            %对段落内段进行编码(十进制转化为二进制)
    m(i)=15;
end;
n(i,1)=fix(m(i)/8);m(i)=mod(m(i),8);
n(i,2)=fix(m(i)/4);m(i)=mod(m(i),4);
n(i,3)=fix(m(i)/2);m(i)=mod(m(i),2);
n(i,4)=fix(m(i));
end;
d=d';
k=[d,l,n];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -