作业辅导视频 SS2023-HW8:信号脉冲编码

信号脉冲编码位数

01 第八次作业


一、习题简介

  对于信号进行脉冲编码调制, 也被称为 PCM。 首先需要对信号进行采样, 然后对采样值进行量化,形成数字信号。 由于量化,  就会在编码值与实际数值之间出现误差。 这个误差最大不超过量化间隔。 也就是每个相邻两个量化值之间的差别。 如果我们知道了信号的变化范围, 比如在第十八次作业中, 所描述信号为 8 加上 A 乘以 sine omega t。 直流分量为 8V, 交流分量幅值为 7V, 这样信号变化范围就不超过 15V。 
  如果量化所使用的比特数位为 N 位,  对应量化编码个数为 2 的 N 次方。   量化电压间隔是 15V 除以 2 的 N 次方。 题目中要求量化误差不超过 10mV, 求所需要编码位数。
GM1682153419_1280_800.MPG|_-20

▲ 图1.1.1 采样量化的结果

▲ 图1.1.1 采样量化的结果

from headm import *

t = linspace(0, 2*pi, 10000)
ft = sin(t)+1.2

sn = 16
ts = linspace(0, 2*pi, sn)

fts = sin(ts)+1.2
ftsq = [int(s*16)/16 for s in fts]

ts = [s for t in ts for s in [t,t]][1:]

printf(ts)
ftsq = [ftsq[0]] + [s for v in zip(ftsq[:-1], ftsq[1:]) for s in v]
printf(ftsq)

plt.plot(ts, ftsq, lw=3, label='PCM')
plt.plot(t, ft, 'r--', lw=0.5, label='f(t)')

for n in range(int(sn*2.3)):
    y = (n+1)/16

    plt.plot([0, 2*pi], [y,y], 'b--', lw=0.5)

plt.xlabel("t")
plt.ylabel("f(t)")
plt.axis([min(t)-(max(t)-min(t))/20, max(t)+(max(t)-min(t))/20, -.50, 2.50])
plt.grid(False)
plt.tight_layout()
plt.show()

二、习题求解

  既然已经分析到这里了,  习题中的问题的答案几乎呼之欲出了。  将刚才的不等式进行整理一下,   两边取 log 2,  便可以求解出量化比特 N 的不等式, 根据实际数值, 可以计算出 N 需要大于 10.551, 去整之后, 得到量化比特位数需要超过 11 位。 下面对此进行验证, 根据前面所得到的公式, 量化误差等于电压范围, 除以量化间隔数量, 这样得到量化误差为 7.32mV, 所以它满足习题中 要求量化误差不超过 10mV 的要求。
GM1682154627_1280_800.MPG|_-19

  结 ※


  文对于第八次作业中对信号进行量化编码习题的讨论。  习题的最终答案为 11 。
GM1682155269_1280_800.MPG|_-3


■ 相关文献链接:

● 相关图表链接:

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/130306323