PracticeVideosBlogFlashcards

4.3 Direct Digital Synthesis (DDS), SDR Architectures, and Digital Filter Topologies

Key Takeaways

  • Direct Digital Synthesis (DDS) generates RF sine waves numerically by incrementing an N-bit phase accumulator by Frequency Tuning Word M at clock rate f_clk, yielding f_out = (M · f_clk) / 2^N with sub-hertz resolution Δf = f_clk / 2^N.

  • Software Defined Radios utilize orthogonal In-phase (I) and Quadrature (Q) baseband processing to separate positive and negative frequencies, eliminating image responses mathematically without analog IF crystal ladder filters.

  • Finite Impulse Response (FIR) filters use a finite set of input samples and are stable for finite coefficients. Symmetric or antisymmetric real coefficients give linear phase; sharp transitions may require many taps.

  • Infinite Impulse Response (IIR) filters are recursive, emulating sharp analog Butterworth/Chebyshev skirts with minimal coefficients, but possess non-linear phase and require all z-plane poles to reside strictly inside the unit circle (|z_p| < 1) for stability.

  • The Convolution Theorem establishes that discrete time-domain convolution (y[n] = x[n] * h[n] = Σ x[k] h[n-k])—evaluated by folding, shifting, multiplying, and summing—is mathematically equivalent to multiplication in the frequency domain (Y(f) = X(f) · H(f)).

Last updated: November 2026

4.3 Direct Digital Synthesis (DDS), SDR Architectures, and Digital Filter Topologies

Digital signal processing (DSP) and high-speed mixed-signal converters have revolutionized modern amateur radio transceiver design. In place of drift-prone analog LC tanks, varactor diodes, and crystal ladder filters, contemporary equipment employs Direct Digital Synthesis (DDS) for agile frequency generation, Software Defined Radio (SDR) front-ends for direct digitisation, and FIR/IIR digital filters operating via discrete convolution.


Sampling, Quantisation and Conversion

An ADC samples voltage at times nTsnT_s, where Ts=1/fsT_s=1/f_s, then assigns each sample an amplitude code. Sampling makes time discrete; quantisation gives a finite set of amplitude levels. An ideal 8-bit converter has 256 codes; over a 1 V input span its nominal step is 1/256=3.906 mV1/256=3.906\text{ mV}. Rounding to the nearest level introduces quantisation error, rather than preserving every possible input voltage.

For ordinary real-valued baseband sampling, keep the highest signal frequency below the Nyquist frequency fs/2f_s/2. Thus 3.4 kHz audio needs a rate greater than 6.8 kS/s; 8 kS/s leaves some transition space for an analogue anti-alias filter. At 8 kS/s, an unwanted 6 kHz tone aliases to 2 kHz and cannot later be distinguished from an original 2 kHz input using those samples alone.

Analogue input --> anti-alias filter --> ADC --> digital processing
Digital output --> DAC --> reconstruction/anti-image filter --> analogue output

The input filter prevents unwanted frequencies from folding into the sampled band. The output filter suppresses DAC spectral images. More bits improve amplitude resolution; they do not replace an adequate sampling rate or filtering.

Direct Digital Synthesis (DDS) Architecture

A Direct Digital Synthesiser—or Numerically Controlled Oscillator (NCO)—synthesizes periodic waveforms mathematically by computing digital phase samples and converting them to analog voltages at a constant master clock rate fclkf_{\text{clk}}.

           +-----------------+     +-----------------+     +---------+     +----------------+
f_clk ---->|  N-bit Phase    |====>|  Phase-to-Amp   |====>|  High-  |====>| Reconstruction |----> f_out
           |  Accumulator    |     |  LUT / CORDIC   |     | Spd DAC |     | Analog LPF     |
M (FTW) -->|  (overflow=f0)  |     |  (P-bit MSBs)   |     +---------+     +----------------+
           +-----------------+     +-----------------+

Functional Pipeline and Tuning Mathematics

  1. Phase Accumulator (NN bits): Acts as an ideal digital integrator of frequency into phase. On each clock edge of fclkf_{\text{clk}}, an NN-bit register increments its content by an NN-bit Frequency Tuning Word (FTW), denoted MM: Φ[n]=(Φ[n−1]+M)(mod2N)\Phi[n] = (\Phi[n-1] + M) \pmod{2^N} Accumulator overflows establish the fundamental output frequency: fout=M⋅fclk2Nf_{\text{out}} = \frac{M \cdot f_{\text{clk}}}{2^N} The minimum frequency resolution (Δf\Delta f, for M=1M = 1) is: Δf=fclk2N\Delta f = \frac{f_{\text{clk}}}{2^N} For a 32-bit accumulator clocked at 100 MHz100\text{ MHz}, Δf≈0.0233 Hz\Delta f \approx 0.0233\text{ Hz}, delivering sub-hertz tuning agility across the Nyquist bandwidth.
  2. Phase-to-Amplitude Converter: Translates instantaneous phase values into sinusoidal amplitude words via a Read-Only Memory lookup table (LUT) or pipelined CORDIC algorithm.
  3. Digital-to-Analog Converter (DAC): Converts discrete digital words into an analog staircase voltage waveform.
  4. Reconstruction Low-Pass Filter: Suppresses DAC staircase sampling harmonics and Nyquist alias images (fimage=fclk−foutf_{\text{image}} = f_{\text{clk}} - f_{\text{out}}). Practical designs restrict fout≤0.40⋅fclkf_{\text{out}} \le 0.40 \cdot f_{\text{clk}} to ensure realizable analog filter cutoff skirts.
  5. Phase Truncation Spurs: Passing only PP MSBs (e.g., 12 to 16 bits) to the sine LUT discards the N−PN - P least significant bits. This periodic truncation error modulates the carrier, generating discrete phase truncation spurs. DAC non-linearity also creates spurs. Spurious-Free Dynamic Range (SFDR) is the carrier-to-largest-spur ratio in the specified bandwidth; bit depth alone does not determine it.

Software Defined Radio (SDR) Front-End Architectures

SDR architectures represent RF signals as complex analytic phasors using In-phase (II) and Quadrature (QQ, 90∘90^\circ offset) baseband components: s(t)=I(t)+jQ(t)=A(t)ejϕ(t)s(t) = I(t) + j Q(t) = A(t) e^{j\phi(t)} Because complex representation separates positive (e+jωte^{+j\omega t}) and negative (e−jωte^{-j\omega t}) frequencies, an SDR mathematically rejects image responses (SUSB=I−H{Q}S_{\text{USB}} = I - \mathcal{H}\{Q\}) without multi-pole analog IF crystal filters.

  • Direct Conversion (Zero-IF / Low-IF): Translates RF directly to baseband using quadrature mixers. The Tayloe detector employs a 4-phase commutating switch clocked at 4fLO4 f_{\text{LO}} into four integrating capacitors (0∘,90∘,180∘,270∘0^\circ, 90^\circ, 180^\circ, 270^\circ). The capacitor outputs are combined to obtain the in-phase and quadrature baseband signals. Conversion loss, noise and intermodulation performance depend on the implemented circuit.
  • Direct RF Sampling: High-speed ADCs (e.g., 16-bit at 122.88 MSPS122.88\text{ MSPS}) directly digitize the entire HF spectrum from the antenna. A Field-Programmable Gate Array (FPGA) Digital Down-Converter (DDC) applies digital quadrature mixing and decimation filtering, generating substantial processing gain: Processing Gain=10log⁡10(fs2B) dB\text{Processing Gain} = 10 \log_{10}\left( \frac{f_s}{2 B} \right)\text{ dB} For approximately white ADC noise, this filtering improves in-band SNR. It does not raise the ADC clipping level or remove distortion spurs.

Digital Filtering: FIR vs. IIR Filter Topologies

Digital filtering in SDR transceivers is achieved through Finite Impulse Response (FIR) or Infinite Impulse Response (IIR) topologies.

Direct Form I, second-order IIR (a0 = 1)

Input delays:   x[n] -> [z^-1] -> x[n-1] -> [z^-1] -> x[n-2]
Output delays:  y[n] -> [z^-1] -> y[n-1] -> [z^-1] -> y[n-2]

Feedforward sum = b0*x[n] + b1*x[n-1] + b2*x[n-2]
Feedback sum    = -a1*y[n-1] - a2*y[n-2]
y[n]           = Feedforward sum + Feedback sum

Each z^-1 is one sample of delay. Both weighted sums feed the output.

Mathematical Difference Equations and z-Plane Stability

  • FIR Filters (Non-Recursive): Output samples depend solely on present and past input samples: y[n]=∑k=0Mbkx[n−k]y[n] = \sum_{k=0}^{M} b_k x[n-k] In the complex zz-plane, all poles reside at origin z=0z = 0. FIR filters with finite coefficients are stable. Real coefficients that are symmetric or antisymmetric about the impulse-response midpoint give linear phase (constant group delay). FIR filters need not have linear phase. Sharp transitions may require many taps, increasing computation and delay.
  • IIR Filters (Recursive): Output samples incorporate feedback from prior output samples: y[n]=∑k=0Mbkx[n−k]−∑k=1Naky[n−k]⟺H(z)=∑k=0Mbkz−k1+∑k=1Nakz−ky[n] = \sum_{k=0}^{M} b_k x[n-k] - \sum_{k=1}^{N} a_k y[n-k] \quad \Longleftrightarrow \quad H(z) = \frac{\sum_{k=0}^{M} b_k z^{-k}}{1 + \sum_{k=1}^{N} a_k z^{-k}}
  • Realization Topologies: Direct Form I implements separate tapped delay lines for inputs and feedback outputs. Direct Form II is canonical, sharing a single tapped delay line of state variables, minimizing memory.
  • zz-Plane Stability: Under the bilinear transform, z=(1+sT/2)/(1−sT/2)z=(1+sT/2)/(1-sT/2), where TT is the sample period. It maps the left-half of the Laplace ss-plane inside the zz-plane unit circle. An IIR filter is bounded-input bounded-output (BIBO) stable if and only if all poles reside strictly inside the unit circle: ∣zp∣<1|z_p| < 1 For this causal rational filter, poles on or outside the unit circle (∣zp∣≥1|z_p| \ge 1) fail the BIBO stability condition; natural responses may persist or grow. Fixed-point coefficient quantization can shift pole positions toward the unit circle, causing arithmetic overflow and limit-cycle oscillations (persistent autonomous oscillations under zero input).
  • Operational Trade-Offs: IIR filters can emulate classical analog filters (Butterworth, Chebyshev, elliptic), often meeting a magnitude-response specification with fewer coefficients than an FIR filter. Required order and delay depend on the specification. However, they exhibit non-linear phase (group delay dispersion), which can distort pulsed digital modulation waveforms.
Filter CharacteristicFinite Impulse Response (FIR)Infinite Impulse Response (IIR)
StructureNon-recursive (feedforward only)Recursive (feedback of prior outputs)
Difference Equationy[n]=∑k=0Mbkx[n−k]y[n] = \sum_{k=0}^{M} b_k x[n-k]y[n]=∑k=0Mbkx[n−k]−∑k=1Naky[n−k]y[n] = \sum_{k=0}^{M} b_k x[n-k] - \sum_{k=1}^{N} a_k y[n-k]
zz-Plane PolesAll poles fixed at origin (z=0z = 0)Configurable poles anywhere in zz-plane
StabilityUnconditionally stableConditionally stable (∣zp∣<1\lvert z_p \rvert < 1 required)
Phase ResponseLinear phase with suitable coefficient symmetryUsually non-linear phase
Computational CostOften more taps for a given sharp transitionOften fewer coefficients for the same magnitude response
Analog EmulationComplex tapped delayDirect Butterworth, Chebyshev, Elliptic

Linear Time-Invariant Systems and Discrete Convolution

The response y[n]y[n] of any Linear Time-Invariant (LTI) system to an arbitrary input sequence x[n]x[n] is computed by convolving x[n]x[n] with the system's unit impulse response h[n]h[n]. For an FIR digital filter, the impulse response values h[k]h[k] correspond directly to the filter tap coefficients bkb_k.

Definition and the Convolution Theorem

The continuous convolution integral and discrete convolution sum are: y(t)=∫−∞∞x(τ)h(t−τ) dτ⟺y[n]=x[n]∗h[n]=∑k=−∞∞x[k]h[n−k]y(t) = \int_{-\infty}^{\infty} x(\tau) h(t - \tau) \, d\tau \quad \Longleftrightarrow \quad y[n] = x[n] * h[n] = \sum_{k=-\infty}^{\infty} x[k] h[n - k]

The Convolution Theorem dictates that time-domain convolution is equivalent to point-by-point multiplication in the frequency domain: F{x[n]∗h[n]}=X(f)⋅H(f)\mathcal{F}\{x[n] * h[n]\} = X(f) \cdot H(f) Convolving a digitized RF signal with an impulse response h[n]h[n] shapes the spectrum by multiplying by H(f)H(f), attenuating out-of-band noise while preserving passband signals.

Step-by-Step Graphical Convolution

Evaluating discrete convolution follows five consecutive operations:

  1. Change of Variable: Express both sequences in terms of dummy summation index kk, yielding x[k]x[k] and h[k]h[k].
  2. Fold (Flip): Time-reverse the impulse response about the origin (k=0k = 0) to form h[−k]h[-k].
  3. Shift (Translate): Slide the flipped sequence along the kk-axis by displacement nn to form h[n−k]h[n - k].
  4. Multiply: Compute the point-by-point product of overlapping samples x[k]⋅h[n−k]x[k] \cdot h[n - k].
  5. Sum (Accumulate): Sum all products to obtain output sample y[n]y[n]. Increment nn and repeat.
       Graphical Representation of Discrete Convolution: y[n] = Σ x[k] h[n-k]

  Step 1: Express sequences in dummy index k:  x[k], h[k]
  Step 2: Fold (flip) impulse response:       h[k] -> h[-k]
  Step 3: Shift h[-k] by index n:             h[-k] -> h[n-k]
  
  Steps 4 & 5: Multiply overlapping samples and Sum products to compute y[n]
          At n = 1:
          x[k]:     ...   x[0]      x[1]      x[2]   ...
                           *         *
          h[1-k]:   ...   h[1]      h[0]       0     ...
                           |         |
          Products:    x[0]h[1] + x[1]h[0]  ===>  y[1] = Σ x[k] h[1-k]

DFT and FFT: Time Samples to Frequency Bins

The discrete Fourier transform (DFT) represents NN samples by NN complex frequency-bin values:

X[k]=∑n=0N−1x[n]e−j2πkn/N.X[k]=\sum_{n=0}^{N-1}x[n]e^{-j2\pi kn/N}.

Each bin describes amplitude and phase at fk=kfs/Nf_k=kf_s/N, with bin spacing Δf=fs/N\Delta f=f_s/N. Bins above the positive Nyquist range represent negative frequencies for a real sampled waveform. An FFT is an efficient algorithm for the same DFT, not a different transform. The inverse transform reconstructs the sample sequence from its complex bins.

For N=4N=4, fs=8 kS/sf_s=8\text{ kS/s} and x=[1,0,−1,0]x=[1,0,-1,0]:

Time samples x[n]             DFT magnitude |X[k]|
 +1  *                         2      *       *
  0  +---*---+---*--> n         0  *---+---*---+--> k
 -1          *                    0   1   2   3
     0   1   2   3

The result is X=[0,2,0,2]X=[0,2,0,2]. Bins 1 and 3 correspond to +2 kHz and −2 kHz: the two-sided representation of the sampled cosine. The forward-transform convention above gives magnitudes 2; dividing by NN gives 0.5 in each conjugate bin. Real FFT displays may use other stated normalisations. A finite record that does not contain whole cycles spreads energy between bins; windowing reduces sidelobes at the cost of a wider main lobe.

Worked Engineering Calculations

Example 1: DDS Tuning Word, Resolution, and Nyquist Image

Problem: A DDS synthesiser uses a 32-bit phase accumulator (N=32N = 32) clocked at fclk=125.000 MHzf_{\text{clk}} = 125.000\text{ MHz}. Calculate the frequency resolution (Δf\Delta f), the Tuning Word (MM) for fout=14.150000 MHzf_{\text{out}} = 14.150000\text{ MHz}, and the primary Nyquist alias image.

Solution:

  1. Resolution: Δf=fclk2N=125×106 Hz232≈0.02910 Hz\Delta f = \frac{f_{\text{clk}}}{2^N} = \frac{125 \times 10^6\text{ Hz}}{2^{32}} \approx 0.02910\text{ Hz}.
  2. Tuning Word (MM): M=round(14.150×106×232125×106)=486,190,298M = \text{round}\left( \frac{14.150 \times 10^6 \times 2^{32}}{125 \times 10^6} \right) = 486,190,298
  3. Nyquist Image: fimage=fclk−fout=125.000 MHz−14.150 MHz=110.850 MHzf_{\text{image}} = f_{\text{clk}} - f_{\text{out}} = 125.000\text{ MHz} - 14.150\text{ MHz} = 110.850\text{ MHz}, readily attenuated by an analog low-pass reconstruction filter.

Example 2: Discrete Convolution Sequence Evaluation

Problem: An input sequence x[n]={2,3,1}x[n] = \{2, 3, 1\} (n=0,1,2n = 0, 1, 2) passes through an FIR filter with impulse response h[n]={0.5,0.25}h[n] = \{0.5, 0.25\} (n=0,1n = 0, 1). Compute the output sequence y[n]=x[n]∗h[n]y[n] = x[n] * h[n] using the flip, shift, multiply, sum method.

Solution: Total output length is L=3+2−1=4L = 3 + 2 - 1 = 4 samples (n=0,1,2,3n = 0, 1, 2, 3):

  1. n=0n = 0: y[0]=x[0]h[0]=2×0.5=1.0y[0] = x[0]h[0] = 2 \times 0.5 = 1.0
  2. n=1n = 1: y[1]=x[0]h[1]+x[1]h[0]=(2×0.25)+(3×0.5)=0.5+1.5=2.0y[1] = x[0]h[1] + x[1]h[0] = (2 \times 0.25) + (3 \times 0.5) = 0.5 + 1.5 = 2.0
  3. n=2n = 2: y[2]=x[1]h[1]+x[2]h[0]=(3×0.25)+(1×0.5)=0.75+0.5=1.25y[2] = x[1]h[1] + x[2]h[0] = (3 \times 0.25) + (1 \times 0.5) = 0.75 + 0.5 = 1.25
  4. n=3n = 3: y[3]=x[2]h[1]=1×0.25=0.25y[3] = x[2]h[1] = 1 \times 0.25 = 0.25 Output sequence: y[n]={1.0,2.0,1.25,0.25}y[n] = \{1.0, 2.0, 1.25, 0.25\}.

Example 3: IIR Filter Difference Equation and Stability Check

Problem: A first-order recursive filter has difference equation y[n]=0.4x[n]+0.75y[n−1]y[n] = 0.4 x[n] + 0.75 y[n-1]. Determine its transfer function H(z)H(z), pole location, stability, and steady-state DC gain.

Solution:

  1. Transfer Function: Taking the zz-transform yields Y(z)=0.4X(z)+0.75z−1Y(z)Y(z) = 0.4 X(z) + 0.75 z^{-1} Y(z): H(z)=Y(z)X(z)=0.41−0.75z−1H(z) = \frac{Y(z)}{X(z)} = \frac{0.4}{1 - 0.75 z^{-1}}
  2. Pole and Stability: The single pole is at zp=0.75z_p = 0.75. Because ∣zp∣=0.75<1|z_p| = 0.75 < 1, the pole lies strictly inside the unit circle, confirming bounded-input bounded-output (BIBO) stability.
  3. DC Gain: Setting z=1z = 1: H(1)=0.41−0.75=0.40.25=1.60H(1) = \frac{0.4}{1 - 0.75} = \frac{0.4}{0.25} = 1.60
Test Your Knowledge

In digital signal processing for software defined transceivers, what is a primary mathematical distinction and operational trade-off between an Infinite Impulse Response (IIR) filter and a Finite Impulse Response (FIR) filter?

A

An IIR filter is unconditionally stable with all poles fixed at the z-plane origin, but requires significantly more coefficients than an FIR filter for steep skirts

B

An IIR filter incorporates feedback from prior output samples and can achieve very sharp cutoff skirts with few coefficients, but has non-linear phase and requires all z-plane poles to remain strictly inside the unit circle for stability

C

An IIR filter cannot emulate analog filter shapes like Butterworth or Chebyshev, whereas an FIR filter emulates them with zero computational latency

D

An IIR filter processes only real-valued signals, whereas an FIR filter is required for complex In-phase and Quadrature (I/Q) baseband processing

Test Your Knowledge

When computing discrete time-domain convolution y[n] = x[n] * h[n] to filter an RF signal in DSP, what sequence of operations is performed on the filter impulse response h[k] and input sequence x[k]?

A

Differentiate the impulse response, integrate the input sequence, and sum their instantaneous frequency deviations

B

Multiply the input and impulse response point-by-point in the time domain, then take the inverse Fourier transform of the product

C

Time-reverse (flip) the impulse response to h[-k], shift it by index n to form h[n-k], multiply overlapping samples with x[k], and accumulate the products to yield y[n]

D

Accumulate the input samples into a FIFO buffer, decimate by a factor of 4, and perform circular bit-shifting

Test Your Knowledge

In a Direct Digital Synthesis (DDS) architecture, what is the primary source of discrete spurious spectral lines (spurs) that appear in the output spectrum prior to the digital-to-analog converter (DAC)?

A

Truncating the phase accumulator output to a smaller number of bits when addressing the sine lookup table or CORDIC converter

B

Thermal noise generated by the master crystal oscillator feedback resistor

C

Non-linear capacitance changes within the varicap tuning diode

D

Intermodulation distortion produced by the analog reconstruction low-pass filter

Sections you finish are checked off in the contents.