--- title: 整数边界杂散 updated: 2022-01-11 02:21:09Z created: 2022-01-10 03:35:59Z --- # 产生原因 当$f_{VCO}$不是$f_{PD}$的整数倍时就可能产生此杂散,即$f_{Spur}=f_{VCO}\%f_{PD}$。 杂散靠近整数边界或在两整数边界的中间位置时影响最大。 ![整数边界杂散_clip.png](../../../_resources/整数边界杂散_clip.png) # 抑制原理 > The concept of *Spur-b-Gone* is to put a multiplier after the input frequency so that the phase detector frequency can be dynamically changed to avoid bad integer boundary spurs. ![整数边界杂散_clip_2.png](../../../_resources/整数边界杂散_clip_2.png "传统PLL结构")![整数边界杂散_clip_1.png](../../../_resources/整数边界杂散_clip_1.png "可抑制杂散的PLL结构") > The general concept in using *Spur-b-Gone* is to maximize the distance from the integer boundaries. 简而言之,就是通过改变鉴相频率$f_{Spur}=f_{VCO}\%f_{PD}$的值,以让其远离整数边界。 最简单的方法自然是在参考频率后加入倍频器,因为R是始终存在的。 CodeLoader中抑制整数边界杂散的算法 > 节选自应用笔记《[snaa289](file:///E:\文档\应用笔记\snaa289-Using a Programmable Input Multiplier to Minimize Integer Boundary Spurs.pdf)》 > The general concept in using Spur-b-Gone is to maximize the distance from the integer boundaries. However, it also turns out that if one is close to or at the midpoint of two integer channels, then again the spurs will be higher, although not as bad as being right at the integer boundary. Also, as the multiplier value becomes too large, then it also can add noise. > The Spur-b-Gone button on CodeLoader works by iterating through all valid PLL_R_PRE, PLL_R and MULT values and calculates an index for each one. Then it chooses the highest (best) index. **The index works by putting 40x more weight on the distance to the closest integer channel compared to the midpoint and doing a parallel combination of these. Then it divides by the multiplier value to discourage higher multiplier values unless it provides some benefit.** ```vb IBS = Fvco % Fpd (Distance to closest integer channel) IBS2 = Fvco % (Fpd/2) (Distance to closest midpoint between 2 integer channels If IBS = 0 then Index = Infinite (Ideal to be exactly on an integer channel) Else If IBS2=0 then Index = 0 (Stay away from ½ of integer boundary) Else If IBS