pcmzu.asv
来自「本程序可以对一个模拟信号进行数字化」· ASV 代码 · 共 87 行
ASV
87 行
clc
clear
dianping=4;
V=5;
daierta=2*V/2048;
M=fix(4/daierta);
if M>0
p1=1;
else
p1=0;
end
%---------------
if abs(M)>=128;
p2=1;
else
p2=0;
end
if(abs(M)>=128)&(abs(M)<256);
p3=0;
p4=0;
end
if(abs(M)>=256)&(abs(M)<512);
p3=0;
p4=1;
end
if(abs(M)>=512)&(abs(M)<1024);
p3=1;
p4=0;
end
if abs(M)>=1024;
p3=1;
p4=1;
end
%----------------
if(abs(M)>=0)&(abs(M)<16);
p3=0;
p4=0;
end
if(abs(M)>=16)&(abs(M)<32);
p3=0;
p4=1;
end
if(abs(M)>=32)&(abs(M)<64);
p3=1;
p4=0;
end
if(abs(M)>=64)&(abs(M)<128);
p3=1;
p4=1;
end
duanluo=[p1 p2 p3 p4];
%------------------ 以上计算的是段落码
duan=p2*4+p3*2+p4*1+1;
switch duan
case {1}
duannei=dec2bin(abs(M),4);
case {2}
duannei=dec2bin(abs(M)-16,4);
case(3)
delta=(64-32)/16;
y=floor((abs(M)-32)/delta);
duannei=dec2bin(abs(y),4);
case(4)
delta=(128-64)/16;
y=floor((abs(M)-64)/delta);
duannei=dec2bin(abs(y),4);
case(5)
delta=(256-128)/16;
y=floor((abs(M)-128)/delta);
duannei=dec2bin(abs(y),4);
case(6)
delta=(512-256)/16;
y=floor((abs(M)-256)/delta);
duannei=dec2bin(abs(y),4);
case(7)
delta=(1024-512)/16;
y=floor((abs(M)-512)/delta);
duannei=dec2bin(abs(y),4);
case(8)
delta=(2048-1024)/16;
y=floor((abs(M)-1024)/delta);
duannei=dec2bin(abs(y),4);
end
duanluom=[p1 p2 p3 p4]
duanneim=duannei
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?