13折线的PCM编码--python

13折线的PCM编码–python

过几天通信原理线上考试了,先搞点骚操作先(狗头)

#输入值、输入值的绝对值、中点值幂次、加减幂次、标记值
c=eval(input('请输入需要量化的值:'))
a=abs(c)
mid=7
b=2
T=0
if c<0:
    print('极性码,样值{}Δv为负,C7=0;'.format(c),end='')
else:
    print('极性码,样值{}Δv为正,C7=1;'.format(c),end='')
print('取Is={}Δv\n'.format(c))
print('段落码:')
#段落码       
for i in range(3):
    print('      取Iw={}Δv,'.format(2**mid),end='')
    if a<2**mid:
        print('Is.format(6-i))
        mid-=b
        T=0
    else:
        print('Is>Iw,C{}=1\n'.format(6-i))
        mid+=b
        T=1
    b-=1
print('段内码:\n')
value=2**mid                  #端点值
#量化间隔
if T==1:
    jg=int(value/16)
else:
    jg=int(value/32)
#段内码
for i in range(4):
    if T==1:
        print('      Iw=取{}Δv+{}×{}Δv='.format(value,2**(3-i),jg),end='')
        value+=jg*2**(3-i)
        print(value,end='')
        if a<value:
            print(',Is.format(3-i))
            T=0
        else:
            print(',Is>Iw,C{}=1\n'.format(3-i))
            T=1
    else:
        print('      Iw=取{}Δv-{}×{}Δv='.format(value,2**(3-i),jg),end='')
        value-=jg*2**(3-i)
        print(value,end='')
        if a<value:
            print(',Is.format(3-i))
            T=0
        else:
            print(',Is>Iw,C{}=1\n'.format(3-i))
            T=1
print('八位编码为:C7--C0照抄即可\n')
if T==1:
    print('量化电平值为:{}Δv+{}Δv={}Δv\n'.format(value,int(jg/2),value+int(jg/2)))
    value+=int(jg/2)
else:
    print('量化电平值为:{}Δv-{}Δv={}Δv\n'.format(value,int(jg/2),value-int(jg/2)))
    value-=int(jg/2)
print('量化误差为:{}Δv\n'.format(abs(a-value)))
print('除极性码外的七位码所对应均匀量化的11位码为:{}\n***注意0b为二进制的标记,不够11位自己在前面添0***'.format(bin(value)))

你可能感兴趣的:(13折线的PCM编码--python)