Knowledge (XXG)

Numerically controlled oscillator

Source 📝

127:. If the PAC capacity is 2, the PA output word must be truncated to M bits as shown in Figure 1. However, the truncated bits can be used for interpolation. The truncation of the phase output word does not affect the frequency accuracy but produces a time-varying periodic phase error which is a primary source of spurious products. Another spurious product generation mechanism is finite word length effects of the PAC output (amplitude) word. 1041:
noise is summed into the lower W+1 bits of the PA output word to linearize the truncation operation. Often the improvement can be achieved without penalty because the DAC noise floor tends to dominate system performance. Amplitude truncation spurs can not be mitigated in this fashion. Introduction of
667:
The number of phase accumulator bits of an NCO (N) is usually between 16 and 64. If the PA output word were used directly to index the PAC look-up table an untenably high storage capacity in the ROM would be required. As such, the PA output word must be truncated to span a reasonable memory space.
1008:
One way to reduce the truncation in the address lookup is to have several smaller lookup tables in parallel and use the upper bits to index into the tables and the lower bits to weigh them for linear or quadratic interpolation. Ie use a 24-bit phase accumulator to look up into two 16-bit LUTS.
623:
containing 2 contiguous samples of the desired output waveform which typically is a sinusoid. Often though, various tricks are employed to reduce the amount of memory required. This include various trigonometric expansions, trigonometric approximations and methods which take advantage of the
1261: 159:
configured as shown in Figure 1. Each clock cycle produces a new N-bit output consisting of the previous output obtained from the register summed with the frequency control word (FCW) which is constant for a given output frequency. The resulting output waveform is a staircase with step size
54:
Numerically controlled oscillators offer several advantages over other types of oscillators in terms of agility, accuracy, stability and reliability. NCOs are used in many communications systems including digital up/down converters used in 3G wireless and software radio systems, digital
934: 122:
which is then converted by the phase-to-amplitude converter (PAC) to a sampled sinusoid, where N is the number of bits carried in the phase accumulator. N sets the NCO frequency resolution and is normally much larger than the number of bits defining the memory space of the PAC
1009:
Address into the truncated 16 MSBs, and that plus 1. Linearly interpolate using the 8 LSBs as weights. (One could instead use 3 LUTs instead and quadratically interpolate). This can result in decreased distortion for the same amount of memory at the cost of some multipliers.
1242: 1004:
Another related spurious generation method is the slight modulation due to the GRR outlined above. The amplitude of these spurs is low for large N and their frequency is generally too low to be detectable but they may cause issues for some applications.
363: 130:
The frequency accuracy relative to the clock frequency is limited only by the precision of the arithmetic used to compute the phase. NCOs are phase- and frequency-agile, and can be trivially modified to produce a
761: 780: 999: 480: 651:
in the creation of the output waveform due to non-linear numerical effects in the signal processing chain. Only numerical errors are covered here. For other distortion mechanisms created in the
563: 98:
is used with the look-up table to provide better accuracy and reduce phase error noise. Other methods of converting phase to amplitude, including mathematical algorithms such as
609: 1259:, McCallister, R. D. & Shearer, D., "Numerically controlled oscillator using quadrant replication and function decomposition", published 12/04/1984 285: 254: 227: 393: 181: 1122:
While some authors use the terms DDS and NCO interchangeably, by convention an NCO refers to the digital (i.e. the discrete-time, discrete amplitude) portion of a DDS
1109: 1021:
of the sampled waveform contained in the PAC look up table(s). If the number of DAC bits is P, the AM spur level is approximately equal to −6.02 P − 1.76 
1042:
noise into the static values held in the PAC ROMs would not eliminate the cyclicality of the truncation error terms and thus would not achieve the desired effect.
202:
of its operands exceeds its capacity (2−1). The overflow bit is discarded so the output word width is always equal to its input word width. The remainder
183:, the integer value of the FCW. In some configurations, the phase output is taken from the output of the register which introduces a one clock cycle 619:
The phase-amplitude converter creates the sample-domain waveform from the truncated phase output word received from the PA. The PAC can be a simple
293: 929:{\displaystyle \zeta _{max}=2^{-M}{\frac {\pi {\mbox{GCD}}(\Delta F,2^{W})}{\sin \left(\pi \cdot 2^{-P}{\mbox{GCD}}(\Delta F,2^{W})\right)}}} 682: 191: 1300: 945: 1148: 107: 1018: 405: 1310: 1063: 1174: 1315: 629: 496: 676:
in proportion to the number of bits truncated. The number of spurious products created by this distortion is given by:
1057: 774:, we are interested in the spurious product with the largest amplitude relative to the carrier output level given by: 771: 652: 44: 656: 48: 939:
where P is the size of the phase-to-amplitude converter's lookup table in bits, i.e., M in Figure 1. For W >4,
1240:, Miller, B. M., "Numerically controlled oscillator and method of operation", issued October 14, 2008 1051: 369: 60: 1305: 1275: 184: 1215: 1256: 1237: 625: 257: 136: 95: 90:(PAC), which uses the phase accumulator output word (phase word) usually as an index into a waveform 576: 644: 152: 32: 64: 229:, called the residual, is stored in the register and the cycle repeats, starting this time from 83:(PA), which adds to the value held at its output a frequency control value at each clock sample. 263: 232: 205: 1144: 640: 570: 569:
Equation (1) shows that the phase accumulator can be thought of as a programmable non-integer
375: 163: 156: 56: 669: 620: 140: 132: 115: 28: 395:
which for a high resolution NCO can be very long. Usually we are more interested in the
199: 1294: 124: 119: 91: 1185: 99: 624:
quadrature symmetry exhibited by sinusoids. Alternatively, the PAC may consist of
1034: 490:, defined as the smallest possible incremental change in frequency, is given by 190: 59:, radar systems, drivers for optical or acoustic transmissions, and multilevel 1175:"Low-Spur Numerically Controlled Oscillator Using Taylor Series Approximation" 673: 648: 40: 287:. The interval K is referred to as the grand repetition rate (GRR) given by 260:, eventually the residual at some sample K must return to the initial value 1033:
Phase truncation spurs can be reduced substantially by the introduction of
110:
Figure 1: Numerically controlled oscillator with optional quadrature output
358:{\displaystyle {\mbox{GRR}}={\frac {2^{N}}{{\mbox{GCD}}(\Delta F,2^{N})}}} 36: 106: 1038: 756:{\displaystyle n_{W}={\frac {2^{W}}{{\mbox{GCD}}(\Delta F,2^{W})}}-1} 1184:. Gliwice, Poland: Silesian University of Technology. Archived from 35:(i.e., clocked), discrete-time, discrete-valued representation of a 1089:
The IEEE Standard Dictionary of Electrical and Electronics Terms
994:{\displaystyle \zeta _{max}\approx -6.02\cdot P\;{\mbox{dBc}}.} 1022: 372:
function. The GRR represents the true periodicity for a given
94:(LUT) to provide a corresponding amplitude sample. Sometimes 475:{\displaystyle F_{out}={\frac {\Delta F}{2^{N}}}F_{clock}} 187:
but allows the adder to operate at a higher clock rate.
139:
output by summation at the appropriate node, or provide
151:
A binary phase accumulator consists of an N-bit binary
982: 887: 823: 713: 321: 298: 198:
The adder is designed to overflow when the sum of the
1017:
Another source of spurious products is the amplitude
948: 783: 685: 672:
of the output sinusoid which introduces non-harmonic
579: 499: 408: 378: 296: 266: 235: 208: 166: 114:When clocked, the phase accumulator (PA) creates a 993: 928: 755: 603: 558:{\displaystyle F_{res}={\frac {F_{clock}}{2^{N}}}} 557: 474: 399:determined by the average overflow rate, given by 387: 357: 279: 248: 221: 175: 256:(see figure 2). Since a phase accumulator is a 194:Figure 2: Normalized phase accumulator output 8: 763:           (3) 628:which can be filled as desired to create an 102:can be used, particularly in a software NCO. 43:. NCOs are often used in conjunction with a 1276:"The NCO as a Stable, Accurate Synthesizer" 1214:Murphy, Eva; Slattery, Colm (August 2004), 1104: 1102: 1100: 1098: 1112:. Lattice Semiconductor Corporation. 2009. 980: 981: 953: 947: 909: 886: 877: 845: 822: 816: 807: 788: 782: 767:where W is the number of bits truncated. 735: 712: 705: 699: 690: 684: 595: 586: 578: 547: 525: 519: 504: 498: 454: 442: 428: 413: 407: 377: 343: 320: 313: 307: 297: 295: 271: 265: 240: 234: 213: 207: 165: 75:An NCO generally consists of two parts: 1134: 1132: 1130: 1128: 189: 105: 1168: 1166: 1164: 1162: 1160: 1076: 1281:. Intersil Corporation. 1998. TB318.1. 1182:XI International PhD Workshop OWD 2009 1173:Popek, G.; Kampik, M. (October 2009). 1091:. New York, NY: IEEE Standards Office. 1082: 1080: 1209: 1207: 1205: 1141:Direct Digital Frequency Synthesizers 655:see the corresponding section in the 7: 1216:"All About Direct Digital Synthesis" 668:Truncation of the phase word causes 1110:"Numerically Controlled Oscillator" 1037:prior to truncation. The so-called 896: 832: 722: 580: 431: 379: 330: 167: 14: 21:numerically controlled oscillator 143:outputs as shown in the figure. 47:(DAC) at the output to create a 1064:Digitally controlled oscillator 915: 893: 851: 829: 741: 719: 604:{\displaystyle \Delta F/2^{N}} 349: 327: 1: 630:arbitrary waveform generator 615:Phase-to-amplitude converter 88:phase-to-amplitude converter 1058:Digital-to-analog converter 772:spurious-free dynamic range 653:digital-to-analog converter 643:products are the result of 45:digital-to-analog converter 1332: 1013:Amplitude truncation spurs 657:direct-digital synthesizer 49:direct digital synthesizer 1301:Digital signal processing 280:{\displaystyle \phi _{0}} 249:{\displaystyle \phi _{n}} 222:{\displaystyle \phi _{n}} 67:modulators/demodulators. 1052:Direct digital synthesis 388:{\displaystyle \Delta F} 176:{\displaystyle \Delta F} 16:Digital signal generator 565:     (2) 482:     (1) 370:greatest common divisor 1311:Electronic oscillators 1139:Kroupa, V. F. (1999). 995: 930: 757: 663:Phase truncation spurs 605: 559: 476: 389: 359: 281: 250: 223: 195: 177: 111: 1029:Mitigation techniques 996: 931: 758: 606: 560: 477: 390: 360: 282: 251: 224: 193: 178: 109: 1035:white gaussian noise 946: 781: 683: 626:random access memory 577: 497: 488:frequency resolution 406: 376: 294: 264: 258:finite state machine 233: 206: 164: 1316:Digital electronics 1087:Radatz, J. (1997). 770:In calculating the 397:operating frequency 137:frequency-modulated 991: 986: 926: 891: 827: 753: 717: 601: 555: 472: 385: 355: 325: 302: 277: 246: 219: 196: 173: 112: 57:phase-locked loops 985: 924: 890: 826: 745: 716: 636:Spurious products 571:frequency divider 553: 448: 368:where GCD is the 353: 324: 301: 147:Phase accumulator 120:sawtooth waveform 81:phase accumulator 1323: 1283: 1282: 1280: 1272: 1266: 1265: 1264: 1260: 1253: 1247: 1246: 1245: 1241: 1234: 1228: 1227: 1226:, Analog Devices 1211: 1200: 1199: 1197: 1196: 1190: 1179: 1170: 1155: 1154: 1136: 1123: 1120: 1114: 1113: 1106: 1093: 1092: 1084: 1000: 998: 997: 992: 987: 983: 964: 963: 935: 933: 932: 927: 925: 923: 922: 918: 914: 913: 892: 888: 885: 884: 854: 850: 849: 828: 824: 817: 815: 814: 799: 798: 762: 760: 759: 754: 746: 744: 740: 739: 718: 714: 710: 709: 700: 695: 694: 670:phase modulation 647:or non-harmonic 621:read only memory 610: 608: 607: 602: 600: 599: 590: 573:of divide ratio 564: 562: 561: 556: 554: 552: 551: 542: 541: 520: 515: 514: 481: 479: 478: 473: 471: 470: 449: 447: 446: 437: 429: 424: 423: 394: 392: 391: 386: 364: 362: 361: 356: 354: 352: 348: 347: 326: 322: 318: 317: 308: 303: 299: 286: 284: 283: 278: 276: 275: 255: 253: 252: 247: 245: 244: 228: 226: 225: 220: 218: 217: 182: 180: 179: 174: 31:which creates a 29:signal generator 1331: 1330: 1326: 1325: 1324: 1322: 1321: 1320: 1291: 1290: 1287: 1286: 1278: 1274: 1273: 1269: 1262: 1255: 1254: 1250: 1243: 1236: 1235: 1231: 1220:Analog Dialogue 1213: 1212: 1203: 1194: 1192: 1188: 1177: 1172: 1171: 1158: 1151: 1138: 1137: 1126: 1121: 1117: 1108: 1107: 1096: 1086: 1085: 1078: 1073: 1048: 1031: 1015: 949: 944: 943: 905: 873: 866: 862: 855: 841: 818: 803: 784: 779: 778: 731: 711: 701: 686: 681: 680: 665: 638: 617: 591: 575: 574: 543: 521: 500: 495: 494: 450: 438: 430: 409: 404: 403: 374: 373: 339: 319: 309: 292: 291: 267: 262: 261: 236: 231: 230: 209: 204: 203: 162: 161: 149: 133:phase-modulated 73: 27:) is a digital 17: 12: 11: 5: 1329: 1327: 1319: 1318: 1313: 1308: 1303: 1293: 1292: 1285: 1284: 1267: 1248: 1229: 1201: 1156: 1149: 1143:. IEEE Press. 1124: 1115: 1094: 1075: 1074: 1072: 1069: 1068: 1067: 1061: 1055: 1047: 1044: 1030: 1027: 1014: 1011: 1002: 1001: 990: 979: 976: 973: 970: 967: 962: 959: 956: 952: 937: 936: 921: 917: 912: 908: 904: 901: 898: 895: 883: 880: 876: 872: 869: 865: 861: 858: 853: 848: 844: 840: 837: 834: 831: 821: 813: 810: 806: 802: 797: 794: 791: 787: 765: 764: 752: 749: 743: 738: 734: 730: 727: 724: 721: 708: 704: 698: 693: 689: 664: 661: 637: 634: 616: 613: 598: 594: 589: 585: 582: 567: 566: 550: 546: 540: 537: 534: 531: 528: 524: 518: 513: 510: 507: 503: 484: 483: 469: 466: 463: 460: 457: 453: 445: 441: 436: 433: 427: 422: 419: 416: 412: 384: 381: 366: 365: 351: 346: 342: 338: 335: 332: 329: 316: 312: 306: 274: 270: 243: 239: 216: 212: 200:absolute value 172: 169: 148: 145: 104: 103: 84: 72: 69: 15: 13: 10: 9: 6: 4: 3: 2: 1328: 1317: 1314: 1312: 1309: 1307: 1304: 1302: 1299: 1298: 1296: 1289: 1277: 1271: 1268: 1258: 1252: 1249: 1239: 1233: 1230: 1225: 1221: 1217: 1210: 1208: 1206: 1202: 1191:on 2011-08-20 1187: 1183: 1176: 1169: 1167: 1165: 1163: 1161: 1157: 1152: 1150:0-7803-3438-8 1146: 1142: 1135: 1133: 1131: 1129: 1125: 1119: 1116: 1111: 1105: 1103: 1101: 1099: 1095: 1090: 1083: 1081: 1077: 1070: 1065: 1062: 1059: 1056: 1053: 1050: 1049: 1045: 1043: 1040: 1036: 1028: 1026: 1024: 1020: 1012: 1010: 1006: 988: 977: 974: 971: 968: 965: 960: 957: 954: 950: 942: 941: 940: 919: 910: 906: 902: 899: 881: 878: 874: 870: 867: 863: 859: 856: 846: 842: 838: 835: 819: 811: 808: 804: 800: 795: 792: 789: 785: 777: 776: 775: 773: 768: 750: 747: 736: 732: 728: 725: 706: 702: 696: 691: 687: 679: 678: 677: 675: 671: 662: 660: 658: 654: 650: 646: 642: 635: 633: 631: 627: 622: 614: 612: 596: 592: 587: 583: 572: 548: 544: 538: 535: 532: 529: 526: 522: 516: 511: 508: 505: 501: 493: 492: 491: 489: 467: 464: 461: 458: 455: 451: 443: 439: 434: 425: 420: 417: 414: 410: 402: 401: 400: 398: 382: 371: 344: 340: 336: 333: 314: 310: 304: 290: 289: 288: 272: 268: 259: 241: 237: 214: 210: 201: 192: 188: 186: 170: 158: 154: 146: 144: 142: 138: 134: 128: 126: 125:look-up table 121: 117: 108: 101: 97: 96:interpolation 93: 92:look-up table 89: 85: 82: 78: 77: 76: 70: 68: 66: 62: 58: 52: 50: 46: 42: 38: 34: 30: 26: 22: 1306:Synthesizers 1288: 1270: 1251: 1232: 1223: 1219: 1193:. Retrieved 1186:the original 1181: 1140: 1118: 1088: 1032: 1019:quantization 1016: 1007: 1003: 938: 769: 766: 666: 639: 618: 568: 487: 485: 396: 367: 197: 150: 129: 113: 100:power series 87: 80: 74: 53: 24: 20: 18: 33:synchronous 1295:Categories 1257:US 4486846 1238:US 7437391 1195:2010-02-12 1071:References 674:distortion 649:distortion 141:quadrature 41:sinusoidal 39:, usually 975:⋅ 969:− 966:≈ 951:ζ 897:Δ 879:− 871:⋅ 868:π 860:⁡ 833:Δ 820:π 809:− 786:ζ 748:− 723:Δ 659:article. 581:Δ 432:Δ 380:Δ 331:Δ 269:ϕ 238:ϕ 211:ϕ 168:Δ 71:Operation 1046:See also 645:harmonic 641:Spurious 157:register 37:waveform 185:latency 51:(DDS). 1263:  1244:  1147:  1039:dither 155:and a 116:modulo 1279:(PDF) 1189:(PDF) 1178:(PDF) 1066:(DCO) 1060:(DAC) 1054:(DDS) 153:adder 1145:ISBN 972:6.02 486:The 1023:dBc 984:dBc 889:GCD 857:sin 825:GCD 715:GCD 323:GCD 300:GRR 135:or 118:-2 65:PSK 61:FSK 25:NCO 1297:: 1224:38 1222:, 1218:, 1204:^ 1180:. 1159:^ 1127:^ 1097:^ 1079:^ 1025:. 632:. 611:. 86:A 79:A 19:A 1198:. 1153:. 989:. 978:P 961:x 958:a 955:m 920:) 916:) 911:W 907:2 903:, 900:F 894:( 882:P 875:2 864:( 852:) 847:W 843:2 839:, 836:F 830:( 812:M 805:2 801:= 796:x 793:a 790:m 751:1 742:) 737:W 733:2 729:, 726:F 720:( 707:W 703:2 697:= 692:W 688:n 597:N 593:2 588:/ 584:F 549:N 545:2 539:k 536:c 533:o 530:l 527:c 523:F 517:= 512:s 509:e 506:r 502:F 468:k 465:c 462:o 459:l 456:c 452:F 444:N 440:2 435:F 426:= 421:t 418:u 415:o 411:F 383:F 350:) 345:N 341:2 337:, 334:F 328:( 315:N 311:2 305:= 273:0 242:n 215:n 171:F 63:/ 23:(

Index

signal generator
synchronous
waveform
sinusoidal
digital-to-analog converter
direct digital synthesizer
phase-locked loops
FSK
PSK
look-up table
interpolation
power series

modulo
sawtooth waveform
look-up table
phase-modulated
frequency-modulated
quadrature
adder
register
latency

absolute value
finite state machine
greatest common divisor
frequency divider
read only memory
random access memory
arbitrary waveform generator

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.