练习题

练习题

通过以下练习题来巩固物理层的相关知识。

1. 基础概念题

1.1 选择题

  1. 信道是( ) A. 传输数据的物理通路 B. 传输数据的逻辑通路 C. 传输数据的虚拟通路 D. 传输数据的软件通路

  2. 带宽的单位是( ) A. bps B. Hz C. dB D. m

  3. 码元是( ) A. 信号的最小单位 B. 数据的最小单位 C. 传输的最小单位 D. 网络的最小单位

  4. 波特是( ) A. 每秒传输的比特数 B. 每秒传输的码元数 C. 每秒传输的字节数 D. 每秒传输的数据包数

1.2 填空题

  1. 信号可以分为( )和( )两种类型。

  2. 信源是信息的( ),信宿是信息的( )。

  3. 通信系统的基本组成包括( )、( )、( )、( )、( )和( )。

  4. 带宽越大,传输速率越( )。

信道带宽码元波特率

解题思路:

选择题逐个确认术语真正指代的定义:信道是物理通路、带宽以赫兹计、码元是信号的单位、波特是每秒的码元数;填空题则回忆两种信号类型、信源与信宿的职责、通信系统的六个环节以及带宽与速率的因果方向。

详细步骤:

1.1 选择题答案

  1. A - 信道是传输数据的物理通路
  2. B - 带宽的单位是 Hz
  3. A - 码元是信号的最小单位
  4. B - 波特是每秒传输的码元数

1.2 填空题答案

  1. 模拟信号、数字信号
  2. 发送方、接收方
  3. 信源、发送设备、信道、接收设备、信宿、噪声源
  4. 高

最终答案:

物理层基础概念题的答案如上:信道、带宽、码元、波特各有所指,信号分模拟与数字两类,通信系统含信源、发送设备、信道、接收设备、信宿与噪声源。

2. 传输理论题

2.1 计算题

  1. 奈奎斯特定理计算

    假设有一个带宽为 4000 Hz 的无噪声信道,使用四进制信号传输,求最大码元传输速率。

  2. 香农定理计算

    假设有一个带宽为 3000 Hz,信噪比为 30 dB 的信道,求最大数据传输速率。

  3. 实际传输速率计算

    如果理论传输速率为 10000 bps,编码效率为 80%,协议开销为 10%,求实际传输速率。

2.2 分析题

  1. 比较奈奎斯特定理和香农定理的适用场景。

  2. 分析影响信道容量的主要因素。

  3. 解释为什么实际传输速率通常小于理论极限。

奈奎斯特定理香农定理信道容量信噪比

解题思路:

把每个定理用在它所描述的场景上:奈奎斯特定理给出理想无噪声信道的符号率,香农定理给出有噪声信道的数据率;分析题则要把路径固定的量与随负载变化的量分开,再补上两个定理忽略的开销。

详细步骤:

2.1 计算题答案

  1. 奈奎斯特定理计算: C=2Wlog⁡2M=2×4000×log⁡24=16000 波特C = 2W \log_2 M = 2 \times 4000 \times \log_2 4 = 16000 \text{ 波特}

  2. 香农定理计算: SN=1030/10=1000\frac{S}{N} = 10^{30/10} = 1000 C=Wlog⁡2(1+SN)=3000×log⁡2(1+1000)≈29910 bpsC = W \log_2(1 + \frac{S}{N}) = 3000 \times \log_2(1 + 1000) \approx 29910 \text{ bps}

  3. 实际传输速率计算: 实际速率=10000×0.8×(1−0.1)=7200 bps\text{实际速率} = 10000 \times 0.8 \times (1 - 0.1) = 7200 \text{ bps}

最终答案:

奈奎斯特定理定无噪声信道的符号率上限,香农定理定有噪声信道的数据率上限,实际速率还要扣除协议开销。

3. 编码调制题

3.1 选择题

  1. 曼彻斯特编码的特点是( ) A. 每个比特周期中间有一次跳变 B. 每个比特周期开始有一次跳变 C. 每个比特周期结束有一次跳变 D. 每个比特周期没有跳变

  2. ASK 调制是( ) A. 幅移键控 B. 频移键控 C. 相移键控 D. 正交幅度调制

  3. QPSK 调制每个码元传输( )位数据 A. 1 B. 2 C. 4 D. 8

3.2 填空题

  1. 编码的主要目的是提高传输的( )和( )。

  2. 调制是将( )信号转换为( )信号的过程。

  3. BPSK 调制用( )度相位表示 0,( )度相位表示 1。

  4. QAM 同时调制载波的( )和( )。

曼彻斯特编码ASKQPSKQAM

解题思路:

把每种编码方式对应到它所改变的物理量:曼彻斯特编码由跳变位置定义,ASK 改幅度、FSK 改频率、PSK 改相位、QAM 同时改幅度和相位;每符号比特数由 n=log⁡2Mn = \log_2 M 得出。

详细步骤:

3.1 选择题答案

  1. A - 每个比特周期中间有一次跳变
  2. A - 幅移键控
  3. B - 2 位数据

3.2 填空题答案

  1. 可靠性、效率
  2. 数字、模拟
  3. 0、180
  4. 幅度、相位

最终答案:

各种调制方式靠改变幅度、频率、相位或二者组合来承载信息,每符号比特数为 log⁡2M\log_2 M。

4. 交换技术题

4.1 选择题

  1. 电路交换的特点是( ) A. 资源利用率高 B. 传输时延小 C. 适合突发性数据 D. 建立连接时间短

  2. 分组交换的优点是( ) A. 传输时延小 B. 资源利用率高 C. 传输质量高 D. 建立连接时间短

  3. 数据报的特点是( ) A. 每个分组走相同路径 B. 分组按序到达 C. 每个分组独立选择路由 D. 需要建立连接

4.2 填空题

  1. 电路交换适合( )业务,分组交换适合( )数据传输。

  2. 虚电路需要( )和( )连接。

  3. 数据报不需要( ),分组可能( )到达。

电路交换分组交换数据报虚电路

解题思路:

从「路径怎么获得、代价是什么」来对比三种交换技术:电路交换为整个会话预留路径,时延小但资源利用率差;分组交换共享网络,资源利用高效但时延不可预测;数据报与虚电路是分组交换的两种方式。

详细步骤:

4.1 选择题答案

  1. B - 传输时延小
  2. B - 资源利用率高
  3. C - 每个分组独立选择路由

4.2 填空题答案

  1. 实时、突发性
  2. 建立、释放
  3. 建立连接、乱序

最终答案:

电路交换预留路径时延小而资源浪费,分组交换共享资源高效但时延不确定,数据报与虚电路是它的两种实现方式。

5. 传输介质题

5.1 选择题

  1. 双绞线的传输距离约为( ) A. 50 米 B. 100 米 C. 500 米 D. 1000 米

  2. 光纤的带宽( ) A. 较低 B. 中等 C. 较高 D. 极高

  3. 无线传输的特点是( ) A. 传输距离短 B. 易受干扰 C. 成本低 D. 安装复杂

5.2 填空题

  1. 双绞线按屏蔽方式分为( )和( )。

  2. 光纤按传输模式分为( )和( )。

  3. 传输介质的性能指标包括( )、( )、( )和( )。

双绞线光纤同轴电缆衰减

解题思路:

回忆每种介质的指标与分类:双绞线长度约 100 米,光纤带宽最高,无线是最容易受干扰的介质。

详细步骤:

5.1 选择题答案

  1. B - 100 米
  2. D - 极高
  3. B - 易受干扰

5.2 填空题答案

  1. UTP、STP
  2. 单模光纤、多模光纤
  3. 带宽、衰减、时延、抗干扰性

最终答案:

双绞线传输距离约 100 米、光纤带宽最高、同轴电缆抗干扰较好、无线介质最易受干扰。

6. 物理层设备题

6.1 选择题

  1. 中继器工作在( )层 A. 物理层 B. 数据链路层 C. 网络层 D. 传输层

  2. 集线器是( ) A. 多端口中继器 B. 多端口交换机 C. 多端口路由器 D. 多端口网关

  3. 物理层设备不能( ) A. 放大信号 B. 转发信号 C. 过滤数据 D. 延长距离

6.2 填空题

  1. 中继器的主要功能是( )和( )。

  2. 集线器实现( )拓扑结构。

  3. 物理层设备的局限性包括不能( )、不能( )、不能( )。

中继器集线器物理层设备

解题思路:

先确认每个设备工作在第几层,再套用物理层设备的能力边界:它处理的是信号而不是数据。

详细步骤:

6.1 选择题答案

  1. A - 物理层
  2. A - 多端口中继器
  3. C - 过滤数据

6.2 填空题答案

  1. 放大信号、转发信号
  2. 星型
  3. 过滤数据、路由数据、转换数据

最终答案:

中继器与集线器工作在物理层,只处理信号、再生与广播转发,不解析任何数据内容。

7. 综合应用题

7.1 网络设计题

题目: 设计一个办公室网络,要求:

  • 连接 10 台计算机
  • 传输距离不超过 100 米
  • 成本较低
  • 性能稳定

问题:

  1. 选择什么传输介质?
  2. 选择什么网络设备?
  3. 采用什么拓扑结构?
  4. 如何保证网络性能?

7.2 故障诊断题

题目: 某网络出现以下问题:

  • 传输速率下降
  • 经常出现连接中断
  • 信号质量差

问题:

  1. 可能的原因有哪些?
  2. 如何诊断问题?
  3. 如何解决问题?
  4. 如何预防类似问题?
网络设计故障诊断双绞线信号质量

解题思路:

从需求推到设计:距离上限排除了光纤、选走双绞线,设备数量和低预算指向集线器或交换机,星型拓扑让单条链路故障不至于拖垮网络;故障诊断则把每个现象转成候选原因集合,再依次检测、修复和预防。

详细步骤:

7.1 网络设计题答案

  1. 传输介质: 双绞线(Cat5e 或 Cat6)
  2. 网络设备: 集线器或交换机
  3. 拓扑结构: 星型拓扑
  4. 性能保证: 使用高质量线缆,合理布线,避免干扰

7.2 故障诊断题答案

  1. 可能原因: 线缆损坏、连接器松动、电磁干扰、设备故障
  2. 诊断方法: 使用测试仪检测、检查连接状态、监控信号质量
  3. 解决方法: 更换损坏线缆、重新连接、消除干扰源、更换设备
  4. 预防措施: 定期检查、合理布线、使用屏蔽线缆、定期维护

最终答案:

该设计以双绞线加星型拓扑配合集线器或交换机,既满足距离与预算约束,又让单链路故障不至于影响全网。

8. 编程实践题

8.1 信号处理程序

题目: 编写一个简单的信号处理程序,实现:

  1. 模拟信号的生成
  2. 信号的放大
  3. 信号的整形
  4. 信号的转发

要求:

  • 使用 Python 或 C 语言
  • 包含基本的信号处理功能
  • 提供测试用例

8.2 网络模拟程序

题目: 编写一个简单的网络模拟程序,模拟:

  1. 数据包的传输
  2. 信号的衰减
  3. 噪声的影响
  4. 错误检测

要求:

  • 使用面向对象编程
  • 包含多种传输介质
  • 提供性能分析功能
信号处理网络仿真衰减噪声

解题思路:

把信号路径的每一级建模成独立方法以便逐一测试,把每种传输介质建模成一张参数表,使同一套仿真可以跑在不同介质上。

详细步骤:

8.1 信号处理程序示例

import numpy as np
import matplotlib.pyplot as plt

class SignalProcessor:
    def __init__(self):
        self.signal = None
        self.amplified_signal = None
        self.reshaped_signal = None

    def generate_signal(self, frequency, duration, sample_rate):
        """生成模拟信号"""
        t = np.linspace(0, duration, int(sample_rate * duration))
        self.signal = np.sin(2 * np.pi * frequency * t)
        return self.signal

    def amplify_signal(self, gain):
        """放大信号"""
        if self.signal is not None:
            self.amplified_signal = self.signal * gain
            return self.amplified_signal
        return None

    def reshape_signal(self, noise_level=0.1):
        """整形信号"""
        if self.amplified_signal is not None:
            noise = np.random.normal(0, noise_level, len(self.amplified_signal))
            self.reshaped_signal = self.amplified_signal + noise
            return self.reshaped_signal
        return None

    def forward_signal(self):
        """转发信号"""
        if self.reshaped_signal is not None:
            return self.reshaped_signal
        return None

# 测试代码
processor = SignalProcessor()
signal = processor.generate_signal(10, 1, 1000)
amplified = processor.amplify_signal(2)
reshaped = processor.reshape_signal(0.05)
forwarded = processor.forward_signal()

# 绘制结果
plt.figure(figsize=(12, 8))
plt.subplot(4, 1, 1)
plt.plot(signal)
plt.title('原始信号')
plt.subplot(4, 1, 2)
plt.plot(amplified)
plt.title('放大信号')
plt.subplot(4, 1, 3)
plt.plot(reshaped)
plt.title('整形信号')
plt.subplot(4, 1, 4)
plt.plot(forwarded)
plt.title('转发信号')
plt.tight_layout()
plt.show()

8.2 网络模拟程序示例

import random
import time

class NetworkSimulator:
    def __init__(self):
        self.transmission_media = {
            'twisted_pair': {'attenuation': 0.1, 'noise': 0.05},
            'fiber': {'attenuation': 0.01, 'noise': 0.01},
            'wireless': {'attenuation': 0.3, 'noise': 0.2}
        }

    def transmit_packet(self, packet, medium, distance):
        """传输数据包"""
        if medium not in self.transmission_media:
            return None

        # 计算衰减
        attenuation = self.transmission_media[medium]['attenuation'] * distance
        attenuated_packet = packet * (1 - attenuation)

        # 添加噪声
        noise = self.transmission_media[medium]['noise'] * random.random()
        noisy_packet = attenuated_packet + noise

        # 错误检测
        if random.random() < 0.1:  # 10%的错误率
            return None

        return noisy_packet

    def analyze_performance(self, packets, medium, distance):
        """分析性能"""
        successful_transmissions = 0
        total_packets = len(packets)

        for packet in packets:
            result = self.transmit_packet(packet, medium, distance)
            if result is not None:
                successful_transmissions += 1

        success_rate = successful_transmissions / total_packets
        return {
            'success_rate': success_rate,
            'total_packets': total_packets,
            'successful_packets': successful_transmissions
        }

# 测试代码
simulator = NetworkSimulator()
packets = [random.random() for _ in range(100)]

# 测试不同传输介质
for medium in ['twisted_pair', 'fiber', 'wireless']:
    performance = simulator.analyze_performance(packets, medium, 100)
    print(f"{medium}: 成功率 {performance['success_rate']:.2%}")

最终答案:

两个程序分别以逐级方法和介质参数表建模信号处理与网络仿真,可在多种介质上重复测量并输出成功率等指标。


物理层信道容量编码调制交换技术

解题思路:

本块汇总物理层全部练习的答案,按基础概念、传输理论、编码调制、交换技术、传输介质、物理层设备、综合应用与编程实践八组逐题给出结论。

详细步骤:

1. 基础概念题答案

1.1 选择题答案

  1. A - 信道是传输数据的物理通路
  2. B - 带宽的单位是 Hz
  3. A - 码元是信号的最小单位
  4. B - 波特是每秒传输的码元数

1.2 填空题答案

  1. 模拟信号、数字信号
  2. 发送方、接收方
  3. 信源、发送设备、信道、接收设备、信宿、噪声源
  4. 高

2. 传输理论题答案

2.1 计算题答案

  1. 奈奎斯特定理计算: C=2Wlog⁡2M=2×4000×log⁡24=16000 波特C = 2W \log_2 M = 2 \times 4000 \times \log_2 4 = 16000 \text{ 波特}

  2. 香农定理计算: SN=1030/10=1000\frac{S}{N} = 10^{30/10} = 1000 C=Wlog⁡2(1+SN)=3000×log⁡2(1+1000)≈29910 bpsC = W \log_2(1 + \frac{S}{N}) = 3000 \times \log_2(1 + 1000) \approx 29910 \text{ bps}

  3. 实际传输速率计算: 实际速率=10000×0.8×(1−0.1)=7200 bps\text{实际速率} = 10000 \times 0.8 \times (1 - 0.1) = 7200 \text{ bps}

3. 编码调制题答案

3.1 选择题答案

  1. A - 每个比特周期中间有一次跳变
  2. A - 幅移键控
  3. B - 2 位数据

3.2 填空题答案

  1. 可靠性、效率
  2. 数字、模拟
  3. 0、180
  4. 幅度、相位

4. 交换技术题答案

4.1 选择题答案

  1. B - 传输时延小
  2. B - 资源利用率高
  3. C - 每个分组独立选择路由

4.2 填空题答案

  1. 实时、突发性
  2. 建立、释放
  3. 建立连接、乱序

5. 传输介质题答案

5.1 选择题答案

  1. B - 100 米
  2. D - 极高
  3. B - 易受干扰

5.2 填空题答案

  1. UTP、STP
  2. 单模光纤、多模光纤
  3. 带宽、衰减、时延、抗干扰性

6. 物理层设备题答案

6.1 选择题答案

  1. A - 物理层
  2. A - 多端口中继器
  3. C - 过滤数据

6.2 填空题答案

  1. 放大信号、转发信号
  2. 星型
  3. 过滤数据、路由数据、转换数据

7. 综合应用题答案

7.1 网络设计题答案

  1. 传输介质: 双绞线(Cat5e 或 Cat6)
  2. 网络设备: 集线器或交换机
  3. 拓扑结构: 星型拓扑
  4. 性能保证: 使用高质量线缆,合理布线,避免干扰

7.2 故障诊断题答案

  1. 可能原因: 线缆损坏、连接器松动、电磁干扰、设备故障
  2. 诊断方法: 使用测试仪检测、检查连接状态、监控信号质量
  3. 解决方法: 更换损坏线缆、重新连接、消除干扰源、更换设备
  4. 预防措施: 定期检查、合理布线、使用屏蔽线缆、定期维护

8. 编程实践题答案

8.1 信号处理程序示例

import numpy as np
import matplotlib.pyplot as plt

class SignalProcessor:
    def __init__(self):
        self.signal = None
        self.amplified_signal = None
        self.reshaped_signal = None

    def generate_signal(self, frequency, duration, sample_rate):
        """生成模拟信号"""
        t = np.linspace(0, duration, int(sample_rate * duration))
        self.signal = np.sin(2 * np.pi * frequency * t)
        return self.signal

    def amplify_signal(self, gain):
        """放大信号"""
        if self.signal is not None:
            self.amplified_signal = self.signal * gain
            return self.amplified_signal
        return None

    def reshape_signal(self, noise_level=0.1):
        """整形信号"""
        if self.amplified_signal is not None:
            noise = np.random.normal(0, noise_level, len(self.amplified_signal))
            self.reshaped_signal = self.amplified_signal + noise
            return self.reshaped_signal
        return None

    def forward_signal(self):
        """转发信号"""
        if self.reshaped_signal is not None:
            return self.reshaped_signal
        return None

# 测试代码
processor = SignalProcessor()
signal = processor.generate_signal(10, 1, 1000)
amplified = processor.amplify_signal(2)
reshaped = processor.reshape_signal(0.05)
forwarded = processor.forward_signal()

# 绘制结果
plt.figure(figsize=(12, 8))
plt.subplot(4, 1, 1)
plt.plot(signal)
plt.title('原始信号')
plt.subplot(4, 1, 2)
plt.plot(amplified)
plt.title('放大信号')
plt.subplot(4, 1, 3)
plt.plot(reshaped)
plt.title('整形信号')
plt.subplot(4, 1, 4)
plt.plot(forwarded)
plt.title('转发信号')
plt.tight_layout()
plt.show()

8.2 网络模拟程序示例

import random
import time

class NetworkSimulator:
    def __init__(self):
        self.transmission_media = {
            'twisted_pair': {'attenuation': 0.1, 'noise': 0.05},
            'fiber': {'attenuation': 0.01, 'noise': 0.01},
            'wireless': {'attenuation': 0.3, 'noise': 0.2}
        }

    def transmit_packet(self, packet, medium, distance):
        """传输数据包"""
        if medium not in self.transmission_media:
            return None

        # 计算衰减
        attenuation = self.transmission_media[medium]['attenuation'] * distance
        attenuated_packet = packet * (1 - attenuation)

        # 添加噪声
        noise = self.transmission_media[medium]['noise'] * random.random()
        noisy_packet = attenuated_packet + noise

        # 错误检测
        if random.random() < 0.1:  # 10%的错误率
            return None

        return noisy_packet

    def analyze_performance(self, packets, medium, distance):
        """分析性能"""
        successful_transmissions = 0
        total_packets = len(packets)

        for packet in packets:
            result = self.transmit_packet(packet, medium, distance)
            if result is not None:
                successful_transmissions += 1

        success_rate = successful_transmissions / total_packets
        return {
            'success_rate': success_rate,
            'total_packets': total_packets,
            'successful_packets': successful_transmissions
        }

# 测试代码
simulator = NetworkSimulator()
packets = [random.random() for _ in range(100)]

# 测试不同传输介质
for medium in ['twisted_pair', 'fiber', 'wireless']:
    performance = simulator.analyze_performance(packets, medium, 100)
    print(f"{medium}: 成功率 {performance['success_rate']:.2%}")

最终答案:

物理层练习答案如上各节所列,覆盖概念辨析、容量计算、编码调制、交换与介质选型、设备原理、综合设计和代码示例。

发现内容有问题?

告诉我们哪里需要改进。