Banerjee PLL相位噪声建模
本文基于 Dean Banerjee PLL Performance Simulation and Design 深度解析 第 14-15 章提炼。Banerjee 的相位噪声模型涵盖 PFD/参考/VCO/分频器各噪声源、带内/带外噪声贡献、闪烁噪声以及集成相位噪声量的计算方法。
前后关系
前置知识:
- Banerjee 环路滤波器系数与传递函数 — Ch.9 传递函数框架是相位噪声建模的基础
- 相位噪声对PLL影响 — 相位噪声的基本概念
- Jitter与Phase Noise关系 — 相位噪声与抖动的转换关系
本书内部链条:
- Ch.14-15(本文)← Ch.8-9 (传递函数决定噪声传播)
- → Ch.26 (滤波器参数对相位噪声的影响)
- Ch.16 (锁定时间) 与相位噪声存在环路带宽上的权衡设计
Ch.14: PLL Phase Noise Modeling and Behavior
相位噪声模型结构
PLL 相位噪声模型按噪声源分类,每个源通过相应的传递函数影响输出:
| 噪声源 | 物理来源 | 传递函数特性 |
|---|---|---|
| 晶体参考噪声 | 参考振荡器 | 低通 × 1/R |
| PFD/电荷泵噪声 | PFD/CP 电路 | 低通 × 1/Kφ |
| R 分频器噪声 | R 计数器 | 低通 |
| N 分频器噪声 | N 计数器 | 低通 |
| VCO 噪声 | VCO 自身 | 高通 |
各噪声源定量贡献公式
假设各噪声源不相关,输出相位噪声功率谱密度为各源贡献之和:
其中 为闭环传递函数, 为误差传递函数。
带内近似():
- 参考路径总贡献:
- PFD 路径总贡献:
- VCO 贡献可忽略(被环路抑制)
带外近似():
- VCO 噪声直接传递:
- 参考/PFD 路径被环路滤波衰减
带内噪声(In-Band Noise)
所有参考路径相关噪声(参考、PFD、R/N 分频器)在 带内 占主导。环路带宽内这些噪声被乘以 N(开环增益的倒数):
因此 N 值越小,带内相位噪声越低——这是分数 N PLL 的重要优势。
带外噪声(Out-of-Band Noise)
VCO 噪声在 带外 占主导。环路带宽外 VCO 噪声直接传递到输出(传递函数 ≈ 1):
PFD 噪声的特殊性
PFD 噪声与比较频率相关:更高的比较频率意味着单位时间内更多次校正 → 更多噪声:
这是 PFD 噪声随 Fcomp 增加而增加的原因。
闪烁噪声(1/f Noise)
PFD/CP 的闪烁噪声在低频偏移处显著,表现为相位噪声谱的 1/f 区域。VCO 也存在闪烁噪声,但在闭环内被抑制。
闪烁噪声建模
PFD/CP 的闪烁噪声贡献可建模为:
其中 为闪烁噪声系数(由工艺决定,典型值 )。
1/f 拐角频率:闪烁噪声与白噪声功率相等时的偏移频率:
在 Banerjee 模型中,PFD/CP 的 通常在 kHz 范围内。当 时,闪烁噪声会在带内占主导。
各频段噪声主导源
| 频率偏移范围 | 主导噪声源 | 典型斜率 |
|---|---|---|
| 闪烁噪声(PFD/CP/VCO) | dB/dec | |
| PFD/CP 白噪声 + 参考噪声 | dB/dec(带内平底) | |
| VCO 噪声 | dB/dec(高通) | |
| 采样噪声基底 | 平底 |
VCO 相位噪声的 Leeson 模型与 Banerjee 工程模型
| 模型 | 数学表达 | 适用场景 |
|---|---|---|
| Leeson 模型 | 物理级精确建模 | |
| Banerjee 工程模型 | 工程快速估算(数据手册参数驱动) | |
| Gardner 简化模型 | 系统级分析 |
相位噪声合成总图
总输出相位噪声为各源噪声的功率和(假设各源不相关):
其中 为各源的传递函数。
系统噪声预算分配模板
在 PLL 设计初期,需要将系统级相位噪声指标分解到各模块的噪声预算中。以下是一个系统化的噪声预算分配方法。
噪声预算分配流程
规格输入:L_total(f) @ 各偏移频率
│
├─ 1. 确定目标集成相噪 σ_ϕ_target (rad RMS)
│ 从通信标准推导(如 GSM: σ_ϕ < 1°, WCDMA: σ_ϕ < 0.5°)
│
├─ 2. 初步分配噪声权重
│ 带内(< Fc):参考 60%, PFD/CP 30%, 分频器 10%
│ 带外(> Fc):VCO 90%, 其他 10%
│
├─ 3. 计算各源分配的噪声密度
│ 反向推导:从比例 ➔ L_source(f)
│
├─ 4. 对比数据手册与分配值
│ 芯片手册值 ≤ 分配值?→ OK
│ 芯片手册值 > 分配值?→ 调整设计或重新分配
│
└─ 5. 迭代收敛(通常 2-3 轮)
噪声预算分配模板表
| 噪声源 | 分配比例(带内) | 分配比例(带外) | 典型值(10kHz偏移) | 数据手册对比 | 设计控制参数 |
|---|---|---|---|---|---|
| 参考晶振 | dBc/Hz | 晶振数据表 | 晶振类型(OCXO/TCXO) | ||
| PFD/CP | dBc/Hz(归一化) | LMX 数据表 | , | ||
| R 分频器 | dBc/Hz | 忽略(通常很低) | R 计数器架构 | ||
| N 分频器 | dBc/Hz | 芯片数据表 | N 值大小 | ||
| VCO | (环路抑制) | dBc/Hz | VCO 数据表 | VCO 拓扑、 | |
| 运放(有源滤波器) | (仅设计有源) | dBc/Hz(@1kHz) | 运放 规格 | 运放噪声、滤波器拓扑 | |
| 合计 | 100% | 100% | — | — |
噪声预算迭代示例
设计要求: dBc/Hz, GHz, kHz
| 迭代 | 参考分配 | PFD 分配 | VCO 分配 | 计算总相噪 | 结果 | 调整 |
|---|---|---|---|---|---|---|
| 1 | dBc/Hz(50%) | dBc/Hz(30%) | dBc/Hz(20%) | dBc/Hz | ✅ 满足 | 无需调整 |
| 2 | dBc/Hz(60%) | dBc/Hz(25%) | dBc/Hz(15%) | dBc/Hz | ❌ 不满足 | 需降低参考噪声 dB 或增大 |
| 3 | dBc/Hz(50%) | dBc/Hz(30%) | dBc/Hz(20%) | dBc/Hz | ✅ 满足 | 使用 OCXO + 增大 |
关键结论:
- 带内噪声预算中参考晶振通常占最大份额(),改善晶振是降低带内相噪的最直接手段
- VCO 在带外占绝对主导, 的选择是带内/带外噪声权衡的核心
- 噪声预算应在设计初期完成(Phase 1),作为芯片选型和环路带宽选择的依据
Ch.15: Integrated Phase Noise Quantities
积分相位噪声
相位噪声谱密度在频率偏移区间上的积分:
在实际工程中,使用带限积分(从 到 ,取决于应用带宽)。
RMS 相位误差
通信系统中用于评估本振信号质量的指标。
RMS 频率误差
由于频率是相位的微分,频率误差可通过相位噪声的加权积分获得:
Jitter 计算
根据 RMS 相位误差和载波频率可计算周期抖动和累积抖动:
从集成相噪到系统级指标转换
RMS 相位误差 / Jitter 是 PLL 作为本振时的核心指标,直接影响通信系统的 EVM 和 BER。以下搭建设计桥接。
EVM 转换公式
对于不同调制格式,RMS 相位误差 对 EVM 的贡献为:
实际系统中,EVM 还受幅度误差、滤波器失真等因素影响,PLL 相位噪声贡献通常占总 EVM 预算的 。
| 调制格式 | 公式 | 典型 要求( EVM 预算) | 等效 (°) |
|---|---|---|---|
| QPSK | rad | ||
| 16QAM | rad | ||
| 64QAM | rad | ||
| 256QAM | rad | ||
| OFDM (802.11ac) | dB rad |
BER 估计
对于无记忆调制(如 M-PSK, M-QAM),相位噪声导致的 BER 退化可近似为:
当 时,BER 退化的 dB 值为:
实例: rad → SNR 退化 dB(可忽略); rad → SNR 退化 dB(需纳入链路预算)。
通信标准对本振的相噪要求
| 标准 | 频段 | 相噪要求(典型) | 等效 | 关键偏移频率 |
|---|---|---|---|---|
| GSM | 900/1800 MHz | dBc/Hz @ 400kHz | 信道间隔相关 | |
| WCDMA | 2.1 GHz | dBc/Hz @ 15MHz | 相邻信道泄漏 | |
| LTE | 700-2600 MHz | dBc/Hz @ 100MHz | 宽频集成 | |
| 802.11ac | 5 GHz | dBc/Hz @ 1MHz | OFDM 子载波间隔 | |
| Bluetooth LE | 2.4 GHz | dBc/Hz @ 500kHz | 宽松(GFSK 调制) | |
| 5G NR | 3.5/28 GHz | dBc/Hz @ 100MHz | 极严格(256QAM) |
设计流程桥接:
示例计算(书中实例)
Banerjee 给出完整的相位噪声合成示例:
- 确定各源噪声谱密度(从数据手册提取)
- 按传递函数加权
- 叠加得总输出相位噪声
- 在指定频带内积分 → RMS 相位误差
完整数值实例
设计规格: MHz, kHz, kHz, mA,
步骤 1:数据手册提取各源噪声
| 噪声源 | 指标 | 数值 | 来源 |
|---|---|---|---|
| 参考晶振 | dBc/Hz | 晶振数据表 | |
| PFD/CP 本底 | dBc/Hz(归一化) | LMX2315 数据表 | |
| VCO | dBc/Hz | VCO 数据表 | |
| VCO | dBc/Hz | VCO 数据表 |
步骤 2:按传递函数加权
- 带内参考贡献:(假设 )
- 带内 PFD/CP 贡献:
- 带外 VCO 贡献:(带外直接传递)
步骤 3:功率叠加
| 偏移频率 | 参考贡献 | PFD 贡献 | VCO 贡献 | 总和 | 主导源 |
|---|---|---|---|---|---|
| 1 kHz | 参考 | ||||
| 10 kHz | 参考 | ||||
| 100 kHz | 参考外噪声抬高 | ||||
| 1 MHz | VCO 主导 |
交叉频率:带内噪声(参考主导)与 VCO 噪声相等处的偏移频率,约 kHz。
步骤 4:积分得 RMS 相位误差 在 积分:
RMS Jitter:
相位噪声/杂散/锁定时间的权衡
- 宽环路带宽 → 锁定时间短、VCO 噪声抑制好,但参考杂散和 PFD 噪声恶化
- 窄环路带宽 → 杂散低、带内噪声低,但锁定时间长、VCO 噪声恶化
关键设计参数对相位噪声的影响汇总
| 设计参数 | 增大该参数的影响 | 适用场景 |
|---|---|---|
| ↑ | 带内 PFD 噪声 ↑,VCO 噪声 ↓ | VCO 噪声主导的系统 |
| ↑ | PFD 噪声 ↓(参考路径增益改善) | 高杂散容限系统 |
| ↓ | 带内噪声 ↓ | 分数-N 架构的优势 |
| ↑ | PFD 噪声 ↑, ↓(综合效果取决于架构) | 需仔细权衡 |
PLL 相位噪声仿真设置
Banerjee 的相位噪声解析公式提供快速趋势预估,但精确的相位噪声验证必须通过电路仿真。以下给出基于 SpectreRF PSS+PNOISE 分析的系统化仿真设置方法。
PSS+PNOISE 分析基础
PSS(Periodic Steady-State)设置
PSS 分析计算 PLL 锁定后的周期性稳态工作点,是 PNOISE 分析的前置条件:
| 参数 | 整数 N PLL | 分数 N PLL |
|---|---|---|
| Beat Frequency() | (比较频率) | (分数周期) |
| (谐波数) | (需包含 ΔΣ 噪声折叠频率) | |
| (稳定时间) | (分数 N 收敛更慢) | |
精度设置(tstab/maxstep) | conservative | conservative |
关键规则:
- 整数 N:,因为 PLL 输出的稳态周期等于参考周期
- 分数 N:,因为分数分频器的输出周期是 个参考周期的公倍数
- 若 PSS 不收敛,增大
tstab至 ,或使用homotopy=gear方法
PNOISE(Periodic Noise)设置
PNOISE 分析在 PSS 工作点基础上计算各噪声源的传递和谐波折叠效应:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| Sweep Type | relative | 相对于载波的偏移频率 |
| Frequency Range | Hz | 覆盖 区域到噪底 |
| (整数 N),(分数 N) | 包含噪声折叠的边带数 | |
maxsideband | 为最大关心的偏移频率 | |
| Output Probe | VCO 输出节点(电压)或相位端口 | 推荐使用相位端口(phout)输出 |
精度与速度的折衷选择:
| 目标 | Sweep Resolution | 仿真时间(典型) | |
|---|---|---|---|
| 快速评估 | 5 points/decade | 10 | hr |
| 标准验证 | 10 points/decade | 20 | hr |
| 精确签核 | 20 points/decade | 30 | hr |
各噪声源的仿真分离方法
PNOISE 分析默认将所有噪声源一并贡献到输出。为诊断主导噪声源,需进行噪声贡献分解(Noise Contribution):
SpectreRF 噪声贡献设置
// 噪声贡献分解设置(Spectre netlist)
pnoise noise_start=1 noise_stop=10G \
proj_scale=1 \
\% 噪声贡献列表
noise_contributions=[
vp.vco_osc_device % VCO 噪声
Iphi.pfd_device % PFD/CP 噪声
V1.ref_osc % 参考晶振噪声
H1.R_counter % R 分频器噪声
H2.N_counter % N 分频器噪声
]
\% 指定输出端口
out_device=VCO
out_probe_type=voltage各噪声源仿真模型的参数提取
| 噪声源 | SpectreRF 模型 | 关键参数 | 典型数据来源 |
|---|---|---|---|
| 参考晶振 | veriloga 或 xo_osc 模型 | 曲线或 参数 | 晶振数据手册 |
| PFD/CP | BSIM4 + 瞬态噪声 | (归一化噪底) | 芯片数据手册或 SPICE 仿真 |
| VCO | BSIM4 + PSS+PNOISE | 、、 | 独立 VCO 仿真 |
| R/N 分频器 | 数字行为模型 | (分频器噪底) | 数字仿真或近似 dBc/Hz |
| 环路滤波器电阻 | resistor 模型 + noise=yes | 热噪声 | 自动计入 |
噪声源隔离技巧
技巧1:逐一使能法
在一次 PNOISE 分析中只有使能一个噪声源,其他源设为 noise=no,依次运行 次仿真即可分离各源贡献:
// 示例:仅 VCO 噪声
pnoise ...
noise_contributions=[
vp.vco_osc_device % VCO 噪声
Iphi.pfd_device % 禁用
V1.ref_osc % 禁用
]技巧2:pnoise_contributions 后处理
在 Ocean 脚本中直接提取各源贡献(无需修改 netlist):
; 提取 PNOISE 结果中特定噪声源的贡献
pn = pnoiseResult(?resultDir "./pnoise")
% 提取 VCO 贡献
L_vco = pn->getContrib("vp.vco_osc_device")
% 提取 PFD 贡献
L_pfd = pn->getContrib("Iphi.pfd_device")
% 总噪声
L_total = pn->getNoise("output")
% 绘制对比图
plot(L_vco L_pfd L_total ?xlog t ?ylog nil)闪烁噪声(Flicker Noise)的仿真建模
闪烁噪声是 PLL 近载波相噪( kHz 偏移)的主导来源。在仿真中需根据各模块的工艺特性正确建模。
PFD/CP 闪烁噪声模型
PFD 和 CP 的闪烁噪声通过 flickerNoise 参数在器件模型中定义,或使用 Verilog-A 行为模型显式注入:
// PFD/CP 闪烁噪声注入模型片段
analog begin
// 热噪声(白噪声)
I(iout) <+ white_noise(4*`P_K*$temperature*Kphi, "thermal");
// 闪烁噪声(1/f 噪声),注入到 PFD 输入
V(phi_err) <+ flicker_noise(Kf_pfd, 1.0, "flicker");
// Kf_pfd 为闪烁噪声系数,从测量或工艺文档提取
// 典型值范围:1e-12 ~ 1e-14 rad²/Hz
endVCO 闪烁噪声建模
VCO 的闪烁噪声通过 upconversion(上变频)机制出现在载波附近,建模最为复杂:
| 建模方法 | 复杂度 | 精度 | 适用阶段 |
|---|---|---|---|
| PSS+PNOISE(SpectreRF 直接计算) | 低 | dB | 最终验证 |
| 相位域宏模型(Verilog-A 注入 噪声) | 中 | dB | 早期设计 |
瞬态噪声(tran noise + FFT 后处理) | 高 | dB | 后仿签核 |
Verilog-A VCO 闪烁噪声宏模型:
// VCO 相位域宏模型(含闪烁噪声上变频)
module vco_phasenoise (vtune, phi_out);
input vtune; electrical vtune;
output phi_out; phase phi_out;
parameter real Kvco = 30e6; // VCO 增益 (Hz/V)
parameter real f0 = 2e9; // 中心频率 (Hz)
parameter real L_1k = -80; // @1kHz 相噪 (dBc/Hz)
real freq_dev;
real flicker_power;
analog begin
// 频率调制
freq_dev = V(vtune) * Kvco;
// 闪烁噪声注入(1/f 噪声上变频后表现为 1/f³)
flicker_power = pow(10, L_1k/10) * `P_T;
// 通过频率调制实现 1/f³ 噪声谱形
freq_dev = freq_dev + flicker_noise(flicker_power, 1.0, "vco_1f3");
// 相位积分:phi = 2π ∫ (f0 + freq_dev) dt
phi_out <+ 2 * `M_PI * (f0 * $realtime() + idtmod(freq_dev, 0, 1.0));
end
endmodule噪声预算的仿真验证流程
完整的相位噪声仿真验证应按以下步骤闭环执行:
Step 1: 构建各模块独立仿真 testbench
├─ 参考晶振:PNOISE 验证 @ 1kHz/10kHz/100kHz
├─ PFD/CP:瞬态噪声仿真 → 提取归一化噪底
├─ VCO:PSS+PNOISE 独立仿真 → L_vco(f) 曲线
└─ 分频器:数字仿真 → 输出抖动 RMS 值
↓
Step 2: 搭建整体 PLL testbench
├─ 整数 N:PSS(f_beat=Fcomp) + PNOISE
├─ 分数 N:PSS(f_beat=Fcomp/FDEN) + PNOISE(Nsidebands=40)
└─ 使能 PSS `tstab` 确保稳态收敛
↓
Step 3: 提取噪声贡献分解
├─ pnoise_contributions → 绘制各源贡献曲线
├─ 标记主导噪声源及其频段
└─ 对比解析公式预测(偏差应 $< 5$ dB)
↓
Step 4: 计算集成 RMS 抖动
├─ 设置积分带宽(典型 $100$ Hz 到 $F_{out}/2$)
├─ pnoise → jitter → 提取 RMS 相位误差
└─ 对比规格并更新噪声预算表
↓
Step 5: 偏差分析与迭代
├─ 仿真 VS 解析偏差 $< 3$ dB → 仿真置信度高
├─ 偏差 $3\!-\!6$ dB → 检查仿真设置(tstab不足/Nsidebands不够)
└─ 偏差 $> 6$ dB → 检查噪声模型参数是否与数据手册一致
仿真与解析公式偏差检查表
| 仿真设置问题 | 典型症状 | 修复措施 |
|---|---|---|
tstab 过短 | 带内噪声偏低 dB | 增大至 |
| 不足(分数 N) | 带外噪声偏高 dB | 增大至 |
| VCO 闪烁噪声未建模 | 近载波( kHz)偏差 dB | 添加 flicker_noise 注入 |
| PFD 归一化噪底参数错误 | 全频段偏差 dB | 核对数据手册或重新提取 |
| 分频器噪声被忽略 | 带内偏差 dB | 添加分频器噪声模型 |
与现有知识的联系
- 相位噪声对PLL影响 — 相位噪声的基本物理模型,Banerjee 提供具体的工程计算方法
- Jitter与Phase Noise关系 — 从相位噪声到 Jitter 的转换公式
- Dean Banerjee PLL Performance Simulation and Design 深度解析 — 来源页
- 无线系统中Phase Noise影响 — 系统级相位噪声影响补充
关键公式
| 概念 | 公式 | 说明 |
|---|---|---|
| 总相位噪声 | $S_{total}(f) = \sum | T_i(f) |
| RMS 相位误差 | 频带内积分 | |
| PFD 噪声趋势 | 随比较频率升高 | |
| Jitter 转换 | 周期抖动 | |
| 带内 VCO 抑制 | 环路带宽以下 dB/dec | |
| 闪烁噪声贡献 | $S_{\phi,flicker} = K_f/f \cdot | 2\pi/K_\phi \cdot H(s) |
| 带内参考贡献 |
参考文献
- Banerjee, D. (2006). PLL Performance, Simulation, and Design (4th ed.), Ch.14-15.