Numerically controlled oscillator: Difference between revisions

Content deleted Content added
avoid unnec redierct. sort.
m compound modifier
 
(8 intermediate revisions by 6 users not shown)
Line 1:
{{short description|Digital signal generator}}
A '''numerically-controlled oscillator''' ('''NCO''') is a digital [[signal generator]] which creates a [[Synchronous circuit|synchronous]] (i.e. clocked), discrete-time, discrete-valued representation of a [[waveform]], usually [[sinusoidal]].<ref name="IEEE">{{cite book |last=Radatz |first=J. |title=The IEEE Standard Dictionary of Electrical and Electronics Terms |publisher=IEEE Standards Office |___location=New York, NY |year=1997 }}</ref> NCOs are often used in conjunction with a [[digital-to-analog converter]] (DAC) at the output to create a [[direct digital synthesizer]] (DDS).{{#tag:ref|While some authors use the terms DDS and NCO interchangeably,<ref name="latticeSC" /> by convention an NCO refers to the digital (i.e. the discrete-time, discrete amplitude) portion of a DDS<ref name="IEEE"/>}}
 
A '''numerically- controlled oscillator''' ('''NCO''') is a digital [[signal generator]] which creates a [[Synchronous circuit|synchronous]] (i.e., clocked), discrete-time, discrete-valued representation of a [[waveform]], usually [[sinusoidal]].<ref name="IEEE">{{cite book |last=Radatz |first=J. |title=The IEEE Standard Dictionary of Electrical and Electronics Terms |publisher=IEEE Standards Office |___location=New York, NY |year=1997 }}</ref> NCOs are often used in conjunction with a [[digital-to-analog converter]] (DAC) at the output to create a [[direct digital synthesizer]] (DDS).{{#tag:ref|While some authors use the terms DDS and NCO interchangeably,<ref name="latticeSC" /> by convention an NCO refers to the digital (i.e. the discrete-time, discrete amplitude) portion of a DDS<ref name="IEEE"/>}}
Numerically-controlled oscillators offer several advantages over other types of oscillators in terms of agility, accuracy, stability and reliability.<ref name="latticeSC">{{ cite web | title = Numerically Controlled Oscillator | url = http://www.latticesemi.com/Products/DesignSoftwareAndIP/IntellectualProperty/IPCore/IPCores02/NumericallyControlledOscillator.aspx | publisher = Lattice Semiconductor Corporation | year = 2009 }}</ref> NCOs are used in many communications systems including digital up/down converters used in 3G wireless and software radio systems, digital PLLs, radar systems, drivers for optical or acoustic transmissions, and multilevel [[Frequency-shift keying|FSK]]/[[Phase-shift keying|PSK]] modulators/demodulators.<ref name="latticeSC"/>
 
Numerically- controlled oscillators offer several advantages over other types of oscillators in terms of agility, accuracy, stability and reliability.<ref name="latticeSC">{{ cite web | title = Numerically Controlled Oscillator | url = http://www.latticesemi.com/Products/DesignSoftwareAndIP/IntellectualProperty/IPCore/IPCores02/NumericallyControlledOscillator.aspx | publisher = Lattice Semiconductor Corporation | year = 2009 }}</ref> NCOs are used in many communications systems including digital up/down converters used in 3G wireless and software radio systems, digital PLLs[[phase-locked loop]]s, radar systems, drivers for optical or acoustic transmissions, and multilevel [[Frequency-shift keying|FSK]]/[[Phase-shift keying|PSK]] modulators/demodulators.<ref name="latticeSC"/>
 
==Operation==
Line 10 ⟶ 11:
*A ''phase-to-amplitude converter'' (PAC), which uses the phase accumulator output word (phase word) usually as an index into a waveform [[look-up table]] (LUT) to provide a corresponding amplitude sample. Sometimes [[linear interpolation|interpolation]] 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 [[power series]] can be used, particularly in a software NCO.
 
[[Image:Generic NCO.png|frame|Figure 1: Numerically- controlled oscillator with optional quadrature output]]
 
When clocked, the phase accumulator (PA) creates a [[modulo operation|modulo]]-2<sup>N</sup> [[sawtooth wave]]form 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 [[look-up table]]. If the PAC capacity is 2<sup>M</sup>, 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.<ref name="kroupa">{{cite book |last=Kroupa |first=V. F. |title=Direct Digital Frequency Synthesizers |publisher=IEEE Press |year=1999 |isbn=0-7803-3438-8}}</ref>
Line 21 ⟶ 22:
[[Image:Phase Accum Graph.png|frame|Figure 2: Normalized phase accumulator output]]
 
The adder is designed to overflow when the sum of the [[absolute value]] of its operands exceeds its capacity (2<sup>N</sup>−1). The overflow bit is discarded so the output word width is always equal to its input word width. The remainder <math>\phi _n</math>, called the residual, is stored in the register and the cycle repeats, starting this time from <math>\phi _n</math> (see figure 2).<ref name="Grzeg"/> Since a phase accumulator is a [[finite -state machine]], eventually the residual at some sample K must return to the initial value <math>\phi _0</math>. The interval K is referred to as the grand repetition rate (GRR) given by
:<math>\mbox{GRR}=\frac{2^N}{\mbox{GCD}(\Delta F,2^N)}</math>
 
Line 34 ⟶ 35:
 
==Phase-to-amplitude converter==
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 [[read only memory]] containing 2<sup>M</sup> 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,<ref>{{ cite patent | inventor-last = Miller | inventor-first = B. M. | issue-date = October 14, 2008 | title = Numerically controlled oscillator and method of operation | country-code = US | patent-number = 7437391 }}</ref> trigonometric approximations<ref name="Grzeg">{{ cite web | first1 = G. | last1 = Popek | first2 = M. | last2 = Kampik | title = Low-Spur Numerically Controlled Oscillator Using Taylor Series Approximation | url = http://mechatronika.polsl.pl/owd/pdf2009/030.pdf | date = October 2009 | work = XI International PhD Workshop OWD 2009 | publisher = Silesian University of Technology | ___location = Gliwice, Poland | access-date = 2010-02-12 | archive-date = 2011-08-20 | archive-url = https://web.archive.org/web/20110820213740/http://mechatronika.polsl.pl/owd/pdf2009/030.pdf | url-status = dead }}</ref> and methods which take advantage of the quadrature symmetry exhibited by sinusoids.<ref>{{ cite patent | inventor1-last = McCallister | inventor1-first = R. D. | inventor2-last = Shearer | inventor2-first = D. | publication-date = 12/04/1984 | title = Numerically controlled oscillator using quadrant replication and function decomposition | country-code = US | patent-number = 4486846 }}</ref> Alternatively, the PAC may consist of [[random access memory]] which can be filled as desired to create an [[arbitrary waveform generator]].
 
==Spurious products==
Line 55 ⟶ 56:
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.<ref name="Grzeg"/>
 
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. Address into the truncated 16 MSBs, and that plus 1. Linearly interpolate using the 8 MSBsLSBs 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.
 
===Amplitude truncation spurs===
Line 65 ⟶ 66:
 
==See also==
* [[Direct digital synthesis]] (DDS)
* [[Digital-to-analog converter]] (DAC)
* [[Digitally controlled oscillator]] (DCO)
* [[Direct digital synthesis]] (DDS)
 
==References==
Line 74 ⟶ 75:
{{good article}}
 
{{DEFAULTSORT:Numerically- controlled oscillator}}
[[Category:Digital signal processing]]
[[Category:Synthesizers]]