为什么说这个是6dB de-emphasis”(即“6dB去加重”)--Con‘t
来自通义AI:
当然可以!我们可以使用 Python 来绘制这个 **3抽头 FIR 滤波器**的频率响应曲线,并验证它确实实现了 **约 6dB 的去加重(de-emphasis)**。
---
## ✅ 给定 FIR 系数(用于 6dB de-emphasis):
\[
h[n] = [C_{-1}, C_0, C_1] = [0.075, 0.75, 0.175]
\]
注意:虽然索引是 -1, 0, +1,但在 `scipy` 或 `numpy` 中我们通常以 **因果顺序** 表示为 `[0.075, 0.75, 0.175]`,即:
- `h[0] = 0.075` → 前一个比特(延迟1)
- `h[1] = 0.75` → 当前比特
- `h[2] = 0.175` → 后一个比特(超前1)
但由于系统是线性时不变(LTI),我们可以将其视为对称滤波器来分析频率响应。
---
## 📌 Python 代码:绘制 FIR 滤波器频率响应
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import freqz, group_delay
import math
# FIR 滤波器系数 (C_{-1}, C_0, C_1)
h = [0.075, 0.75, 0.175]
# 计算频率响应: H(e^{jω})
w, H = freqz(h, worN=512, whole=False) # w: 0 到 π, H: 复数响应
# 转换为频率单位:f / fs (归一化频率)
f_normalized = w / (2 * math.pi) # 归一化频率 [0, 0.5]
# 幅度响应 (线性)
magnitude = np.abs(H)
# 幅度响应 (dB)
magnitude_dB = 20 * np.log10(magnitude)
# 功率响应 (dB)
power_dB = 10 * np.log10(magnitude**2)
# 直流增益 (f=0)
dc_gain = magnitude[0]
dc_gain_dB = 20 * np.log10(dc_gain)
# 高频增益 (f = fs/2, 即最后一个点)
hf_gain = magnitude[-1]
hf_gain_dB = 20 * np.log10(hf_gain)
hf_power_ratio_dB = 10 * np.log10(hf_gain**2)
# 打印关键值
print(f"DC Gain (linear): {dc_gain:.3f}")
print(f"DC Gain (dB): {dc_gain_dB:.2f} dB")
print(f"HF Gain (linear): {hf_gain:.3f}")
print(f"HF Gain (dB): {hf_gain_dB:.2f} dB")
print(f"Power attenuation at HF: {hf_power_ratio_dB:.2f} dB")
# 绘图
plt.figure(figsize=(12, 8))
# 子图1:幅度响应 (dB)
plt.subplot(2, 1, 1)
plt.plot(f_normalized, magnitude_dB, 'b', linewidth=2)
plt.grid(True)
plt.title('Frequency Response of 6dB De-emphasis FIR Filter\n$h[n] = [0.075, 0.75, 0.175]$')
plt.xlabel('Normalized Frequency (× $f_s$)')
plt.ylabel('Magnitude (dB)')
plt.ylim(-10, 2)
plt.axhline(0, color='k', linewidth=0.8)
plt.axhline(hf_gain_dB, color='r', linestyle='--', label=f'Highest Freq: {hf_gain_dB:.2f} dB')
plt.legend()
# 子图2:功率响应 (dB)
plt.subplot(2, 1, 2)
plt.plot(f_normalized, power_dB, 'r', linewidth=2)
plt.grid(True)
plt.title('Power Spectral Response')
plt.xlabel('Normalized Frequency (× $f_s$)')
plt.ylabel('Power (dB)')
plt.ylim(-15, 2)
plt.axhline(0, color='k', linewidth=0.8)
plt.axhline(hf_power_ratio_dB, color='m', linestyle='--',
label=f'High-freq attenuation: {hf_power_ratio_dB:.2f} dB')
plt.legend()
plt.tight_layout()
plt.show()
```
---
## 🔍 输出结果说明
运行上述代码后,你会看到:
### ✅ 控制台输出示例:
```
DC Gain (linear): 1.000
DC Gain (dB): 0.00 dB
HF Gain (linear): 0.500
HF Gain (dB): -6.02 dB
Power attenuation at HF: -6.02 dB
```
> ✅ **完美验证:高频增益为 -6.02 dB,即“6dB de-emphasis”!**
---
## 📈 图形解释
### 上图:幅度响应(dB)
- 在 \( f = 0 \)(直流)处:0 dB(无衰减)
- 在 \( f = f_s/2 \)(最高频率,即跳变最频繁)处:**-6.02 dB**
- 表示高频边沿被削弱了 6dB
### 下图:功率响应(dB)
- 因为功率 ∝ 幅度²,所以:
- -6.02 dB 幅度衰减 → **-6.02 dB 功率衰减**
- 与理论完全一致
---
## 🧩 为什么这个 FIR 实现了 6dB de-emphasis?
回顾:
- 高频信号(如 1010...)相邻比特反相
- 滤波器输出 ≈ \( C_0 - C_{-1} - C_1 = 0.75 - 0.075 - 0.175 = 0.5 \)
- 电压减半 → 功率变为 1/4 → 衰减 6dB
✅ 所以这个设计正是为了**补偿信道对高频的衰减**:发送端先压低高频,接收端再通过信道自然衰减后恢复平衡。
---
## ✅ 应用场景
这种 6dB de-emphasis 常见于:
- PCIe Gen3/Gen4
- SATA III
- USB 3.x
- Ethernet (1000BASE-T, 10GBASE-KR)
用于对抗 PCB 走线、连接器、电缆造成的高频损耗。
---
如果你想进一步模拟眼图或与信道卷积,我也可以提供完整链路仿真代码。需要的话请告诉我!