现代直接数字频率合成器(DDS)一般运用累加器和数字频率调谐字(FTW)在累加器输出端发生周期性的N位数字斜坡(见图1)。 此数字斜坡可依据公式1界说DDS的输出频率(fO),其间fS为DDS采样速率(或体系时钟频率)。
(1)
DDS给守时,组成FTW的位数(N)界说了fO的最小或许改变,这发生在FTW值仅更改最低有用位(LSB)时。 也便是说,FTW中的1 LSB改变界说了DDS的调谐分辨率。 例如,N = 32的DDS的调谐分辨率高于N = 24的DDS。为了证明DDS的极佳调谐才干,以AD9912为例,N = 48发生的调谐分辨率为1/248(即1/281,474,976,710,656)。 事实上,fS = 1 GHz时,AD9912发生的频率调谐分辨率约为3.6 µHz (0.0000036 Hz)。
若DDS的FTW为N位,细看图1可知,累加器输出端的位数(N)和视点转起伏模块输入端的位数(P)之间存在显着的差异,即P ≤ N。这种差异会导致DDS输出频谱中呈现相位切断杂散。
知道给定DDS的P值对猜测相位切断杂散非常重要。 本运用笔记介绍了一种用于核算特定相位切断杂散的频率和起伏的办法,特别合适给定FTW的主相位切断(PPT)。
图1. DDS功用框图
相位切断
累加器和FTW组成DDS的频率操控元件。 可是,除了频率操控元件外,DDS还具有将N位累加器输出从相位值转化为起伏值的视点转起伏模块。 视点转起伏模块占有了DDS数字电路的很大一部分。 因而,经过增大N来进步DDS的调谐分辨率会大幅添加视点转起伏模块所需的电路数。 相同,将一切N位相位信息转化为起伏不太实践。 如图1所示,实践DDS运用累加器位的子集进行相位起伏转化,即P最高有用位(MSB)。 这种位切断会大幅削减视点转起伏模块所需的电路数。 但价值是需求在DDS输出端引进或许的频谱伪像(详细而言便是相位切断杂散)。
相位切断杂散
依据界说,按P = N规划的DDS没有相位切断。 因而,其输出频谱中没有相位切断杂散。 可是在实践DDS中,P N,这会发生相位切断。
有三类相位切断杂散: 一阶、二阶和三阶。 这几个分类源于DDS中相位起伏转化器和数模转化器(DAC)的级联组合的频谱特性。 图2结合图形说明将傅里叶变换技能运用于视点转起伏模块(带P位相位输入)和呈现谐波失真的非抱负DAC所发生的谱线。 一般来说,频谱由2P个频率构成,指数规模为0至2P − 1,分类概况如表1。
图2. 视点转起伏模块和DAC的频谱特性
主相位切断(PPT)杂散
每阶(一阶、二阶和三阶)的许多相位切断杂散或许在DDS的输出频谱中呈现,详细取决于FTW的特定值。 本运用笔记要点介绍最大的一阶杂散,即PPT杂散。
由于DDS输出是从相位采样生成波形的成果(即累加器输出),因而DDS输出频谱遵从奈奎斯特采样理论的规矩。 输出频谱显现为两个彻底相同的频谱,每个频谱跨过采样频率(fS)一半的频率规模。 这两个频谱是互相的镜像,反映奈奎斯特频率(fS/2)。 相同,PPT杂散将其自身表明为两个杂散。 一个PPT杂散呈现在0 Hz和fS/2之间,另一个作为其镜像呈现在fS/2和fS之间。
请注意,虽然两个PPT杂散是最大的一阶相位切断杂散,但整体而言,这些杂散或许不是最大的相位切断杂散。 由于相位切断杂散在DDS输出频谱中的分配机制,部分二阶相位切断杂散的起伏或许大于PPT杂散。
咱们无法猜测二阶或三阶相位切断杂散的起伏。 二阶相位切断杂散起伏取决于DAC的谐波失真特性,这些特性因器材而异。 三阶相位切断杂散起伏与量化差错相关,而量化差错基本上是随机的。
表1. 图2中显现的频率分类
最右侧的非零位
核算PPT杂散的起伏和频率方位需求知道以下参数:
•DDS采样速率(fS)
•两个DDS参数:N和P
•FTW的特定值
关于给定运用,N和P固定,fS一般为稳定值。 相反,FTW彻底可变,操控fO的值(详见公式1)。FTW的值不只操控DDS输出频谱中fO的方位,而且操控相位切断杂散的方位。 事实上,关于DDS输出频谱,给定FTW的最重要特性是以二进制方法表明时的跟随零数量。 跟随零数量界说了重要参数L,即FTW最右侧非零位的方位。
FTW中的L位方位取决于FTW的特定值(牢记,FTW的值依据所需DDS输出频率而改变,详见公式1)。 这种依赖性非常大,由于恣意给定FTW的L位方位决议相位切断杂散在DDS输出频谱中的分配方法。
关于恣意给定FTW,图3演示了怎么找到L的值。首要,将FTW转化为二进制。 然后,将指数值分配给FTW位,MSB的开始指数值为1。图3为一个32位FTW的示例;因而,指数规模为1至32。L值是值为1的最终一位的指数(从MSB向LSB读)。 图3中的FTW值为0x0036e580(十六进制),因而,选用本协议时,此特定FTW的L的值为25。
给定FTW的L的值最为重要。 首要,L决议相位切断杂散是否呈现在DDS输出频谱中。 若L ≤ P,则没有相位切断杂散。 若L > P,则包含PPT杂散在内的相位切断杂散呈现在DDS输出频谱中。 其次,L和P的值可确认PPT杂散的起伏和频率(假定L > P)。
PPT起伏
两个PPT杂散具有相同的起伏(见公式2)。 若已知特定FTW的值和给定DDS规划的P值,两个PPT杂散的起伏为:
其间,PPT起伏的值以dBc为单位: 与频率为fO时主DDS输出信号的起伏相关的分贝。
请注意,公式2中的两个正弦函数的参数以弧度为单位。 例如,假定DDS的P = 19,FTW如图3所示,则运用公式2得到的PPT杂散起伏为−114.38789 dBc。
PPT频率
需求多个过程才干确认这两个PPT频率。 第一步,得出K的值,FTW的十进制值切断为L位。 要得到K,在FTW为二进制方法的情况下,消除跟随0并将得到的L位FTW转化为相应的十进制值。 例如,图3中的FTW可得到K = 28,107(经过将二进制数字0000000000110110111001011转化为相应的十进制数字得出)。
运用K核算两个PPT杂散的频谱指数方位(R1和R2),如下面的公式3和公式4所示:
例如,在DDS的P = 19且FTW如图3所示的情况下,公式3中括号内的数字为14,736,134,709,公式4中括号内的数字为928,378,285,515。将225模数运用于这些值可得到
R1 = 5,739,061
R2 = 27,815,371
依据下面的公式5和公式6,运用R1和R2确认DDS输出频谱中的两个PPT频率方位(fPPT1和fPPT2)。
例如,若fS = 250 MHz,FTW如图3所示,且R1和R2的值已在前面的比如中核算出,则两个PPT杂散频率如下:
定论
虽然本运用笔记介绍了一种相对简略的方法来猜测两个PPT杂散的频率和起伏,但公式3和公式4或许引起核算问题。 详细而言,括号内的数字由一个整数界说,或许非常大。
为了解说这些核算中较大整数引起的问题,试重新考虑AD9912,其间N = 48,P = 19。假定FTW为0x400000000001(十六进制),即70,368,744,177,665(十进制)。 在此例中,L = 48;因而,K的值与FTW相同。
现在考虑公式4中括号内的数字。2L – 2P + 1可得到以下值:
248 – 219 + 1 = 281,474,976,186,369
因而,由公式4中括号内的数字可得到
K × (2L – 2P + 1) = 70,368,744,177,665 × 281,474,976,186,369 = 19,807,040,591,672,948,094,687,248,385
以二进制方法表明此整数需求94位。 大部分核算软件东西无法准确表明这种巨细的整数。 例如,在64位机器上运转的MATLAB将K × (2L – 2P + 1)表明为浮点数:1.980704059167295 × 1028。对应的整数为19,807,040,591,672,950,000,000,000,000。此值与实在值误差较大,因而得到的R2并不正确。
事实上,不只大部分软件东西无法处理极大整数,而且大部分核算机内部的处理器芯片也无法处理极大整数。 例如,一台带64位处理器的核算机无法处理94位整数。 这个问题至关重要,由于核算R1和R2值需求极大整数核算,这超出了大部分核算机的才干。
除了正确表明公式3和公式4中括号内的数字,还需求核算括号内数字的2L模数。 在前面的比如中,L = 48,这意味着模数达48位。 大部分核算机不支撑超越32位的模数核算。
总而言之,公式3和公式4发生的难题在运用软件东西完成PPT杂散核算时需求特别注意。 用户必须将括号内的数字作为一个整数进行正确核算(无切断或四舍五入),而且应在不丢失精度的情况下正确处理模数核算。
虽然大部分软件东西和处理器无法直接处理极大整数,但也有破例。 例如,软件东西Python自身支撑极大整数核算。 虽然MATLAB®自身无法处理极大整数,但支撑极大整数核算的可变精度整数(VPI)东西箱可在MATLAB Central的Math Works网站上免费下载。