Part 2 introduces quadrature (complex) signals, and explains the nature, and notation, of the spectral diagrams used in DSP.
Discrete frequency-axis notation
In the world of DSP, for convenience, frequency-domain drawings are often labeled in hertz using the
fs sampling rate. This convention is best explained with a couple of examples; the first of which is when we perform spectrum analysis (using the FFT) of, say, a real time-domain audio sequence obtained at an
fs = 11.025 kHz rate. We could plot our spectral magnitude results using either frequency-axis labeling convention shown in Figure 11. If we later discovered that the sample rate was actually
fs = 22.05 kHz, we would not have to repeat our spectral analysis nor redraw our spectral plots because the frequency axis is referenced to
fs.

Figure 11. Example spectral magnitude plots; (a) zero Hz on the left, (b) zero Hz in the center.
Another example of labeling frequency-domain plots using hertz is in describing digital filters. A five‑point moving average digital filter has the frequency magnitude response shown in Figure 12(a). That frequency response curve is the same whether the filter is used in an fs = 40 megasample/second digital communications system or in an fs = 8 kilosample/second telephone system.

Figure 12. Frequency magnitude response of a 5‑point moving average digital filter.
DSP authors have several other choices in labeling the frequency-axis of their frequency-domain plots. For example, the cyclic frequency (Hz) labels in Figures 11 and 12 can be converted to radians/second.[4,5] We do so by replacing fs with ωs, where the signal data sample rate is
ωs = 2πfs (6)
with ωs measured in radians/second as shown in Figure 12(b).
Sometimes DSP purists, to make the notation more concise, assign fs a value of one which leads to the notation that ωs = 2π. Thus, in their DSP books you'll see frequency-domain plots like Figure 13(a) where the frequency-axis is a normalized angle with –fs/2 replaced with –π, and fs/2 replaced with π. The justification for doing so goes something like this: let's represent a sinewave, whose frequency is f Hz, by x(t) = sin(2πfot). Discrete-time samples of x(t) are:
x(n) = sin(2πft) | t=nts = sin(2πfnts) (7)
where the integer n sequence is the sample number (often called the "index") of x(n). With the factors 2πf having the dimension of radians/second, and ts having the dimension seconds/sample, the resultant angle in Eq. (7) has the dimension of radians/sample. If we replace Eq. (7)'s ts with 1/fs, the discrete sinusoidal samples can be represented by:
x(n) = sin(2π f/fs n) = sin(θn) (8)
where θ is what I call a "normalized discrete-signal frequency". If we assume |fo| ≤ fs/2 (satisfying Nyquist), then the normalized discrete-signal frequency θ is in the range of –π to +π measured in radians/sample. This definition is why some authors like to say, "For continuous signals, frequency is measured in radians/second. For discrete signals frequency is measured in radians/sample." Redrawing the filter response from Figure 12(b), we illustrate the normalized discrete-signal frequency-axis representation in Figure 13(a).
Just so you know that I'm not making all of this up, Figure 13(b) shows how a MATLAB built-in plotting function uses the radians/sample frequency notation.

Figure 13. Filter response plots using the normalized discrete-signal frequency notation of radians/sample.
If you've spent your technical career thinking about frequency measured in cycles/second (Hz), the frequency-axis labeling in Figure 13 might seem very odd. However, it's not so strange. Consider the discrete sinewave in Figure 14(a), whose sample values repeat every 12 samples. It takes 12 samples to complete one cycle (360°) of oscillation. Likewise we can say it takes 6 samples to complete one radian (180°) of oscillation. From that last statement, we declare the discrete-signal frequency of the sinewave to be one sixth radians/sample. A spectral plot of the sinewave is shown in Figure 14(b).

Figure 14. A discrete sinewave, (a) time-domain samples, (b) frequency-domain samples.
To consolidate our thoughts we list various frequency-axis notations in Table 1. The third column of Table 1 shows the frequency range of analysis when using the FFT.

Table 1: Various frequency-axis notation.
It often takes a DSP novice some time to become comfortable with these various frequency-axis notations. Fortunately commercial signal processing software packages, like LabVIEW, Mathcad, and MATLAB, allow us to conveniently label our frequency-domain plots in good ol' hertz.[6–8]
References
[6] LabVIEW - National Instruments Corp., Austin, TX, http://www.ni.com/labview/
[7] Mathcad - Parametric Technology Corp., Needham, MA, http://www.ptc.com/products/mathcad/
[8] MATLAB - The Mathworks Inc., Natick, MA, http://www.mathworks.com
About the author
Richard (Rick) Lyons is a consulting Systems Engineer and lecturer with Besser Associates in Mountain View, California. He is the author of "Understanding Digital Signal Processing 2/E" (Prentice-Hall, 2004), and Editor of, and contributor to, "Streamlining Digital Signal Processing, A Tricks of the Trade Guidebook" (IEEE Press/Wiley, 2007). He is also an Associate Editor for the IEEE Signal Processing Magazine.
Related articles