1.请你通过图片中的内容计算并验证交织后数据和未交织数据同时加连续两个误码的纠错能力,要求全部用文字...
Erstellt am: 22. Mai 2025
Erstellt am: 22. Mai 2025
pythonfrom PIL import Image import matplotlib.pyplot as plt img = Image.open('/mnt/data/微信图片_20250522204007.jpg') plt.imshow(img) plt.axis('off') (-0.5, 1705.5, 1278.5, -0.5)
pythonimg2 = Image.open('/mnt/data/微信图片_20250522204015.jpg') plt.imshow(img2) plt.axis('off') (-0.5, 1919.5, 1079.5, -0.5)
pythonimg3 = Image.open('/mnt/data/微信图片_20250522204026.jpg') plt.imshow(img3) plt.axis('off') (-0.5, 1919.5, 1079.5, -0.5)
pythonimg4 = Image.open('/mnt/data/微信图片_20250522204035.jpg') plt.imshow(img4) plt.axis('off') (-0.5, 1919.5, 1079.5, -0.5)
pythonimg5 = Image.open('/mnt/data/微信图片_20250522204046.jpg') plt.imshow(img5) plt.axis('off') (-0.5, 1919.5, 1079.5, -0.5)
pythonimg6 = Image.open('/mnt/data/微信图片_20250522204052.jpg') plt.imshow(img6) plt.axis('off') (-0.5, 1919.5, 1079.5, -0.5)
pythonplt.figure(figsize=(8,4)) plt.imshow(img5.crop((200,150,1200,650))) plt.axis('off') (-0.5, 999.5, 499.5, -0.5)
pythonplt.figure(figsize=(8,4)) plt.imshow(img.crop((200,150,1200,650))) plt.axis('off') (-0.5, 999.5, 499.5, -0.5)
pythonplt.figure(figsize=(10,3)) plt.imshow(img.crop((0,300,1000,450))) plt.axis('off') (-0.5, 999.5, 149.5, -0.5)
pythonplt.figure(figsize=(10,4)) plt.imshow(img.crop((0,450,1000,650))) plt.axis('off') (-0.5, 999.5, 199.5, -0.5)
pythonplt.figure(figsize=(6,3)) plt.imshow(img.crop((30,150,330,290))) plt.axis('off') (-0.5, 299.5, 139.5, -0.5)
python# Let's crop to region of blue pulses between first and second yellow spike plt.figure(figsize=(10,3)) plt.imshow(img.crop((400,460,900,650))) plt.axis('off') (-0.5, 499.5, 189.5, -0.5)
pythonplt.figure(figsize=(10,3)) plt.imshow(img.crop((400,550,900,750))) plt.axis('off') (-0.5, 499.5, 199.5, -0.5)
pythonplt.figure(figsize=(4,3)) plt.imshow(img5.crop((850,600,1100,720))) plt.axis('off') (-0.5, 249.5, 119.5, -0.5)
pythonplt.figure(figsize=(4,3)) plt.imshow(img5.crop((850,500,1100,600))) plt.axis('off') (-0.5, 249.5, 99.5, -0.5)
pythonplt.figure(figsize=(4,3)) plt.imshow(img5.crop((1100,580,1310,730))) plt.axis('off') (-0.5, 209.5, 149.5, -0.5)
示波器读数 | 含义 | 计算 | 结论 |
---|---|---|---|
F = 3.304 kHz(右下角) | 比特速率 Rb | Tb = 1/Rb ≈ 302 µs/bit | |
F = 660 Hz(未交织组图右下角) | 码字重复频率 Rf | Tf = 1/Rf ≈ 1.515 ms | |
Tf / Tb ≈ 5 | 每帧(=每个 FEC 码字)含 5 bit | ||
光标 ① = 435 µs | 单个长脉冲宽度 | 435 µs / 302 µs ≈ 1.4 bit ≈ ≈1 bit(因门控延时略宽) | |
光标 ② = 1.90 ms | 两个长脉冲包络宽度 | 包含两帧(≈ 2 × Tf) |
由此可知:
- 发送端使用 (5, k) 单比特纠错码(典型如 Hamming/奇偶码),单码字最多 t = 1 bit 可纠。
- 故连续 2 bit 误码若落在 同一 5-bit 码字 内就会超出能力;若被分散到 两个不同码字,则各码字各 1 bit,可全部修正。
理论对应:同一 5-bit 码字里出现 e = 2 bit 错误,而 t = 1,故无法纠正。
理论对应:去交织后每个码字只含 e = 1 bit,满足 t = 1 的校正条件。
场景 | 码字内错误数 e | 是否 ≤ t (= 1) | 结果 | 示波器验证 |
---|---|---|---|---|
未交织 + 连续 2 bit 误码 | e = 2 | 否 | 译码失败,输出严重畸变 | 图 1–4:黄线拉平 |
交织 (D = 2) + 连续 2 bit 误码 | 每码字 e = 1 | 是 | 译码成功,数据完全恢复 | 图 5–6:黄线正常 |
⌈B / D⌉ = 1
bit/码字,全部落在纠错能力范围内,从而 将失效场景转化为可纠场景。因此,交织显著提高了系统对连续双比特误码的纠错能力,实现了 100 % 的恢复,而未交织场景下同样的误码将导致彻底失效。
不要用表格,全部用文字表示
下面全部用文字说明交织前后在同时发生连续两个比特误码时的纠错能力计算与示波器验证过程。
一、关键参数与码字结构
发送端采用的是每帧包含 5 个比特的单比特纠错码(能力 t=1)。
从示波器读到的比特速率 F≈3.304 kHz,对应每比特时长约 1/3.304 kHz≈302 µs;
码字发送频率约 660 Hz,对应每帧时长约 1/660 Hz≈1.515 ms;
由此每帧(一个 FEC 码字)恰好包含 1.515 ms/302 µs≈5 个比特。
二、未交织情况下的实验与分析
三、交织深度 D=2 情况下的实验与分析
四、理论与实验结论对比
由此证明:交织能够显著提升系统对连续双比特突发误码的纠错能力,使原本不可纠的错误分散到不同码字后均可修复。
在这组截图里,你使用 PC↔GSM 短信软件对模块发出了几条典型的 AT 命令,并观察了它们的响应。下面是具体的实验结果和分析。
1. 检查 AT 通信
AT
OK
2. 拨打电话(ATD)
ATD13865563385;
0
(通常表示模块已向网络发送了呼叫请求,或当前网络状态下无法拨通)ATD<number>;
带分号是发起语音呼叫的标准格式。0
并不等同于通话接通,更多是运行状态码。ATH
或 AT+CHUP
;3. 切换到短信文本模式
AT+CMGF=1
OK
,进入文本 SMS 模式。4. 读取短信(AT+CMGR)
AT+CMGR=1
+CMGR: "REC UNREAD",...
并显示了短信内容(截图中粉色框暂时空白)。+CMGR
报头中 "REC UNREAD"
表示短信 1 号槽里有一条未读短信。5. 删除短信(AT+CMGD)
AT+CMGD=1
OK
,历史记录里没有再出现该条短信。AT+CMGD=1
会删除存储槽 1 里的短信;OK
说明删除操作成功,消息存储已被清空或覆盖。6. (可选)发送短信(AT+CMGS)
AT+CMGF=1
确保在文本模式AT+CMGS="13865563385"
,收到 >
提示后输入短信内容+CMGS: <msg_id>
然后 OK
,表示短信提交到网络。AT → OK
验证了串口连通。ATD...;
可发起语音呼叫,返回状态码但未必接通。AT+CMGF=1
) 是执行读/删/发短信命令的前提。+CMGR
能把存储的短信内容拉出来。AT+CMGD
能清理掉已读或未读消息。AT+CMGS
流程操作并以 Ctrl+Z 结束。通过这一系列命令,你已经完成了模块的基本通话测试、短信收发(读取、删除)验证;下一步可以按上述流程补齐“发送”环节,验证整个收发闭环。