脉冲编码调制(PCM)

1. 脉冲编码调制(Pulse Code Modulation, PCM)

PCM 是一种将模拟信号(例如语音信号)转换为数字脉冲序列的技术,使得信号可以通过数字信道进行传输。它的基本过程包括以下步骤:

  1. 采样:对模拟信号进行离散化处理。
  2. 量化:将采样得到的连续幅度值量化为有限的离散值。
  3. 编码:将量化后的信号转换为二进制代码,每个量化值对应一个固定长度的二进制数。
例子:

假设你有一个语音信号,量化后有 16 个量化级别(即 M = 16 M = 16 M=16),那么这些量化后的信号可以用 4 位二进制数来表示( log ⁡ 2 ( 16 ) = 4 \log_2(16) = 4 log2(16)=4),即二进制范围为 0000 0000 0000 1111 1111 1111

2. PCM 的信号表示

在 PCM 中,量化后的信号被编码成二进制码,而这个二进制码通过**开关键控(On-Off Keying, OOK)**来表示。

  • 0:表示关闭(无脉冲)。
  • 1:表示打开(有脉冲)。

这种编码方式类似于摩尔斯电码,通过将“开”和“关”作为信号的两种状态,PCM 信号传输时更加抗噪,因为接收机只需要区分两个状态(0和1)。

3. PCM 与 PAM 的对比

  • PAM(脉冲幅度调制):每个采样点通过单个脉冲的幅度来表示信号。接收机需要精确解读不同幅度的脉冲,这使得 PAM 容易受噪声干扰。
  • PCM(脉冲编码调制):每个采样点通过多个脉冲的二进制码来表示。这使得 PCM 更加抗噪,因为只需要区分“开”和“关”两种状态。
例子:

假设 PAM 传输一个量化值为 8 的信号,它会通过一个幅度为 8 的单个脉冲传输。PCM 则会通过传输“1000”这个 4 位二进制码来代表这个值,并通过4个脉冲进行传输。PCM 传输时即使受噪声影响,依然可以通过“开/关”的状态区分出信号,抗噪能力更强。

然而,PCM 的缺点是需要更多的带宽,因为一个量化值需要通过多个脉冲来表示,而 PAM 只需一个脉冲。

4. PCM 中的失真

在无噪声的信道中,PCM 信号的失真主要来源于量化失真,即由于采样值被舍入到最接近的量化值而产生的误差。为了衡量这种失真,使用了信噪比(SNqR)

5. 量化级别与二进制码的关系

量化级别 M M M 和 PCM 编码长度 n n n 之间有以下关系:
n = log ⁡ 2 ( M ) n = \log_2(M) n=log2(M)
其中, M M M 是量化级别的数量, n n n 是表示量化值所需的二进制位数。例如,如果 M = 16 M = 16 M=16,那么 n = 4 n = 4 n=4 位。

6. 峰值信噪比(Peak SNqR)

根据之前的推导,峰值信噪比可以用来衡量量化失真。对于 M M M 个量化级别,峰值信噪比可以表示为:
( S N q R ) p = 3 ( M − 1 ) 2 ≈ 3 M 2 (SNqR)_p = 3(M-1)^2 \approx 3M^2 (SNqR)p=3(M1)23M2
利用 n = log ⁡ 2 ( M ) n = \log_2(M) n=log2(M),可以将峰值 SNqR 表示为:
( S N q R ) p = 3 × ( 2 n ) 2 = 3 × 2 2 n (SNqR)_p = 3 \times (2^n)^2 = 3 \times 2^{2n} (SNqR)p=3×(2n)2=3×22n

7. 平均信噪比(Average SNqR)

对于具有任意分布的信号(例如语音信号),我们可以通过 a a a 系数将峰值 SNqR 转换为平均 SNqR。公式如下:
( S N q R ) d B = 10 log ⁡ 10 ( 3 × 2 2 n a ) (SNqR)_{dB} = 10 \log_{10} \left( \frac{3 \times 2^{2n}}{a} \right) (SNqR)dB=10log10(a3×22n)
可以进一步简化为:
( S N q R ) d B = 10 log ⁡ 10 ( 3 ) + 20 n log ⁡ 10 ( 2 ) − 10 log ⁡ 10 ( a ) (SNqR)_{dB} = 10 \log_{10}(3) + 20n \log_{10}(2) - 10 \log_{10}(a) (SNqR)dB=10log10(3)+20nlog10(2)10log10(a)
由于 log ⁡ 10 ( 3 ) ≈ 0.48 \log_{10}(3) \approx 0.48 log10(3)0.48 log ⁡ 10 ( 2 ) ≈ 0.3 \log_{10}(2) \approx 0.3 log10(2)0.3,所以我们得到:
( S N q R ) d B ≈ 4.8 + 6 n − 10 log ⁡ 10 ( a ) (SNqR)_{dB} \approx 4.8 + 6n - 10 \log_{10}(a) (SNqR)dB4.8+6n10log10(a)

8. 语音信号的SNqR估算

对于语音信号, a ≈ 10  dB a \approx 10 \text{ dB} a10 dB。我们可以用经验公式估算语音信号的 SNqR:
S N q R ≈ 6 ( n − 1 ) SNqR \approx 6(n-1) SNqR6(n1)
这意味着如果 PCM 编码使用了 8 位(即 n = 8 n = 8 n=8),那么 SNqR 可以估算为:
S N q R ≈ 6 ( 8 − 1 ) = 42  dB SNqR \approx 6(8-1) = 42 \text{ dB} SNqR6(81)=42 dB

9. 总结概念之间的逻辑关系

  • PCM 是将模拟信号转换为数字信号的过程,经过采样、量化和编码。
  • 量化的过程会引入失真,失真通过 SNqR(信号量化噪声比) 来衡量。
  • 峰值 SNqR 是基于最大信号功率的量化噪声比,可以通过量化级别 M M M 或编码位数 n n n 计算。
  • 平均 SNqR 则是通过引入系数 a a a 来修正峰值 SNqR,使其适应信号的实际概率分布。

10. 例子帮助理解

例子1:PCM 对语音信号的编码

假设我们用 PCM 编码一个语音信号,使用了 8 位二进制码( n = 8 n = 8 n=8),量化级别 M = 256 M = 256 M=256

  • 峰值 SNqR 可以表示为:
    ( S N q R ) p = 3 × 2 2 × 8 = 3 × 65536 = 196608 (SNqR)_p = 3 \times 2^{2 \times 8} = 3 \times 65536 = 196608 (SNqR)p=3×22×8=3×65536=196608
    转换为 dB:
    ( S N q R ) p ( d B ) = 10 log ⁡ 10 ( 196608 ) ≈ 52.9  dB (SNqR)_{p(dB)} = 10 \log_{10}(196608) \approx 52.9 \text{ dB} (SNqR)p(dB)=10log10(196608)52.9 dB

  • 对于语音信号, a ≈ 10  dB a \approx 10 \text{ dB} a10 dB,对应 a = 10 a = 10 a=10

  • 平均 SNqR 为:
    S N q R ≈ 52.9 − 10 = 42.9  dB SNqR \approx 52.9 - 10 = 42.9 \text{ dB} SNqR52.910=42.9 dB

例子2:不同编码位数下的 SNqR

如果我们将 PCM 编码从 8 位减少到 4 位( n = 4 n = 4 n=4),我们可以再次估算 SNqR:
S N q R ≈ 6 ( n − 1 ) = 6 ( 4 − 1 ) = 18  dB SNqR \approx 6(n-1) = 6(4-1) = 18 \text{ dB} SNqR6(n1)=6(41)=18 dB

因此,编码位数的增加可以显著提高信号的信噪比,减少量化失真。


量化PCMPAM、和TDM之间的关系

1. 量化(Quantization)

  • 量化是将连续的模拟信号的幅度映射到有限的离散值集合的过程。量化后,信号不再是连续的幅度,而是离散的幅度级别(这些级别可以是多个,不仅仅是1或0)。

  • 在量化过程中,量化增量 q q q 决定了信号幅度的精度。量化并不会直接将信号变为二进制,而是将连续信号幅度离散化成多个级别。

    总结:量化并不是变成1或0,而是将信号的连续幅度分割成有限的离散级别。

例子:

如果信号的幅度范围是0到10,量化器可以将信号分成5个级别:0, 2.5, 5, 7.5, 10。这些离散的幅度值是量化的结果。

2. 脉冲幅度调制(PAM)

  • PAM(脉冲幅度调制)是在量化之后进行的。它将量化后的信号幅度值通过**脉冲的高度(幅度)**来传输。例如,如果量化后的信号幅度为5,PAM将通过发送一个振幅为5的脉冲来传输这个量化值。

  • PAM 主要用于将量化后的离散信号值编码成可通过传输通道传送的脉冲序列。在此阶段,信号的时间已经被离散化,幅度也已经被量化。

    总结:PAM是量化之后进行的,它用脉冲的幅度来表示量化后的值。

例子:

假设量化后的信号有5个离散值 0 , 2.5 , 5 , 7.5 , 10 0, 2.5, 5, 7.5, 10 0,2.5,5,7.5,10。PAM会根据这些量化值,生成对应高度的脉冲,比如发送高度为2.5、5、7.5的脉冲。

3. 脉冲编码调制(PCM)

  • PCM(脉冲编码调制)是在量化后将信号表示为二进制代码的过程。PCM的目标是将量化后的信号转换为一系列的二进制码(即0和1),这样信号就可以在数字系统中传输和处理。

  • PCM 将每个量化后的信号幅度值用固定长度的二进制代码表示。例如,如果量化级别为16(即 M = 16 M = 16 M=16),那么每个量化值可以用 4位二进制数 表示(因为 log ⁡ 2 ( 16 ) = 4 \log_2(16) = 4 log2(16)=4)。

    总结:PCM 是将量化后的信号幅度值转换为二进制代码,而不是直接进行量化。量化后的信号通过PCM被编码为多个二进制位。

例子:

如果量化后的信号幅度值是8,PCM会将这个值转换为二进制代码“1000”,并通过一系列的0和1来传输。

4. 时分复用(TDM)

  • TDM(时分复用) 是一种用于多个信号共享同一传输通道的技术。它将多个信号按时间顺序分段,每个信号在其特定的时间片内进行传输。

  • TDM 通常是在信号调制后(无论是 PAM 还是 PCM 之后)进行的,用来让多个信号共享同一个传输信道。TDM 的作用是管理信号的传输时间,而不是参与信号的量化或编码

    总结:TDM 是在信号量化和调制之后进行的,用于在多个信号间共享传输通道。

例子:

假设你有两个信号 A A A B B B,通过 TDM,它们可以在不同的时间段轮流发送。首先,发送信号 A A A 的第一个脉冲,然后在下一个时间片发送信号 B B B 的第一个脉冲。接着再轮回到信号 A A A,如此反复。


5. 步骤总结:量化、PAM、PCM 和 TDM 的顺序

  • 量化:将模拟信号的连续幅度值离散化成有限的级别。
  • PAM:量化之后,将离散的幅度值通过脉冲的高度来表示。
  • PCM:量化之后,将离散的幅度值编码为二进制代码,传输时只需判断是“开”还是“关”(即0或1)。
  • TDM:无论是 PAM 还是 PCM,TDM 都是在调制之后进行,用来管理多个信号在同一通道上的传输时间。
过程示例:
  1. 量化:假设语音信号的幅度范围是0到10伏特,量化后有4个级别,分别为0伏、2.5伏、5伏、7.5伏。
  2. PAM:量化后的值被调制为脉冲,发送高度为0伏、2.5伏、5伏、7.5伏的脉冲。
  3. PCM:每个量化后的值被编码为二进制码,比如7.5伏编码为“111”。
  4. TDM:如果有多个信号共享同一通道,TDM将为每个信号分配不同的时间片,按顺序传输。

“把模拟信号转换成脉冲信号再转换成电子信号”的过程不准确

1. 模拟信号与电子信号

首先,模拟信号本身就是一种电子信号。模拟信号是连续变化的,像声音、光强度、温度等,都是自然界中的物理量,能够以电压、电流等电子信号的形式表示。通过麦克风、传感器等设备,这些物理信号可以直接转换为连续的电压或电流,构成模拟电子信号。

2. 脉冲信号

脉冲信号是离散的信号,通常以一系列脉冲(电压高低变化)表示。脉冲调制方法(如 PAM、PPM、PWM)会把连续的模拟信号变成一系列脉冲信号,以便进行传输或处理。脉冲信号和模拟信号都是电子信号的一种表示方式。

因此,并不需要先将模拟信号转换成脉冲信号再转换成电子信号,因为它们本质上都是电子信号的不同形式

3. 信号转换的基本过程

1. 模拟信号的直接传输

模拟信号(如声音)可以直接通过模拟电子信号传输。举例来说:

  • 模拟信号被麦克风转换为电压变化,然后通过电线传输,最后在扬声器中重新变为声音。

这种情况下,不涉及脉冲调制,信号直接以模拟的形式传输。

2. 脉冲调制(如 PAM、PPM、PWM)

在某些通信系统中,模拟信号需要被转换成脉冲信号。这个过程通常是为了更好地在特定的通信环境中传输信号。例如,在无线通信或电子控制系统中使用的脉冲调制方法:

  • PAM(脉冲幅度调制):模拟信号被采样后,每个采样值被表示为一个脉冲,脉冲的幅度代表信号的大小。
  • PPM(脉冲位置调制):通过调整脉冲的位置来表示信号值。
  • PWM(脉冲宽度调制):通过调整脉冲的宽度来表示信号值。

这些调制方法适合在模拟系统中通过电缆或无线电波传输信号。在这些情况下,脉冲信号仍然是一种电子信号

3. 模拟信号转换为数字信号(如 PCM)

对于数字通信系统,模拟信号需要被转换为数字信号。这个过程称为脉冲编码调制(PCM)

  • 模拟信号通过采样、量化,得到一系列离散的数值。
  • 这些数值被编码成二进制的数字信号,便于在数字系统中传输和存储。

在 PCM 的过程中,模拟信号首先被采样(类似于 PAM 产生的脉冲信号),然后被量化和编码,转换为数字信号。数字信号通常通过逻辑电路或光纤传输,是一种数字形式的电子信号。

4. 信号传输链的完整过程

综上所述,信号的传输通常包括以下步骤:

  1. 模拟信号生成:信号可以是声音、光强、温度等物理量,通过传感器转换为连续的模拟电子信号(例如电压变化)。
  2. 调制(如果需要)
    • 如果需要使用脉冲调制(如 PAM、PPM、PWM),模拟信号会被转换成脉冲信号,方便在模拟系统中传输。
  3. 数字化(如果需要)
    • 如果需要使用数字通信,模拟信号通过采样、量化、编码,转换为数字信号(如 PCM)。
  4. 信号传输:信号以模拟、脉冲或数字形式通过电缆、无线电波或光纤传输。

总结:

  • 模拟信号本身就是一种电子信号,它可以直接传输,也可以被调制成脉冲信号,或者被数字化。
  • 脉冲信号(PAM、PPM、PWM)是一种调制技术,它仍然是一种电子信号的形式,用于特定场景下的信号传输。
  • 数字信号(如 PCM)通过将模拟信号编码为二进制数值,用于数字通信系统中传输。
在Matlab中进行脉冲编码调制PCM)可以按照以下步骤进行: 1. 生成需要传输的模拟信号(如语音信号)。 2. 对模拟信号进行采样,将其转换成数字信号。 3. 对数字信号进行量化,将其转换成离散的取值。 4. 将量化后的数字信号进行编码,将每个取值对应一个固定长度的二进制码字。 5. 将编码后的数字信号进行调制,如使用脉冲编码调制PCM)将二进制码字映射成脉冲序列。 以下是一个简单的 Matlab 代码示例,演示如何进行 PCM 编码: ```matlab % 生成需要传输的模拟信号 Fs = 8000; % 采样率 t = 0:1/Fs:1; % 时间向量 f = 100; % 信号频率 x = sin(2*pi*f*t); % 生成正弦波信号 % 对模拟信号进行采样,将其转换成数字信号 Fs_new = 1000; % 新的采样率 n = 0:1/Fs_new:1; % 新时间向量 x_new = interp1(t,x,n); % 插值得到新的采样信号 % 对数字信号进行量化,将其转换成离散的取值 bits = 8; % 量化位数 levels = 2^bits; % 量化水平数 x_quant = round(x_new * (levels-1)) / (levels-1); % 量化 % 将量化后的数字信号进行编码,将每个取值对应一个固定长度的二进制码字 code = de2bi(x_quant * (levels-1), bits, 'left-msb'); % 转换为二进制编码,左对齐 % 将编码后的数字信号进行调制,如使用脉冲编码调制PCM)将二进制码字映射成脉冲序列 pulse = reshape(repmat(code',1,1,2), bits, [])'; % 将每个二进制码字扩展成两个脉冲 tx = reshape(pulse',1,[]); % 将脉冲序列展开成一维向量 % 绘制原始信号和调制后的信号 subplot(211) plot(n,x_new) title('原始信号') subplot(212) plot(tx) title('PCM调制后的信号') ``` 在上述代码中,我们首先生成了一个正弦波信号,然后对其进行采样和量化,得到离散的数字信号。接着,我们将数字信号进行编码,将每个取值对应一个固定长度的二进制码字。最后,我们将编码后的数字信号进行调制,使用脉冲编码调制PCM)将二进制码字映射成脉冲序列。最终,我们绘制了原始信号和调制后的信号,可以看到调制后的信号是由一系列脉冲组成的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值