Documentation |
You can use DSP System Toolbox™ blocks to work with signals in both the time and frequency domain. To display frequency-domain signals, you can use blocks from the Sinks library, such as the Vector Scope, Spectrum Analyzer, Matrix Viewer, and Waterfall Scope blocks.
With the Spectrum Analyzer block, you can display the frequency spectra of time-domain input data. In contrast to the Vector Scope block, the Spectrum Analyzer block computes the Fast Fourier Transform (FFT) of the input signal internally, transforming the signal into the frequency domain.
This example shows how you can use a Spectrum Analyzer block to display the frequency content of two frame-based signals simultaneously:
At the MATLAB^{®} command prompt, type ex_spectrumanalyzer_tutex_spectrumanalyzer_tut.
The Spectrum Analyzer example opens, and the variables, Fs and mtlb, are loaded into the MATLAB workspace.
Double-click the Signal From Workspace block. Set the block parameters as follows, and then click OK:
Signal = mtlb
Sample time = 1
Samples per frame = 16
Form output after final data value = Cyclic Repetition
Based on these parameters, the Signal From Workspace block repeatedly outputs the input signal, mtlb, as a frame-based signal with a sample period of 1 second.
Create two distinct signals to send to the Spectrum Analyzer block. Use the Digital Filter Design block to filter the input signal, using the default parameters.
Double-click the Matrix Concatenate block. Set the block parameters as follows, and then click OK:
Number of inputs = 2
Mode = Multidimensional array
Concatenate dimension = 2
The Matrix Concatenate block combines the two signals so that each column corresponds to a different signal.
Double-click the Spectrum Analyzer block. The Spectrum Analyzer figure appears. In the menu, select View > Spectrum Settings. The Spectrum Settings panel opens.
Expand the Main options pane, if it is not already expanded.
Set Type to Power.
Select the Full frequency span check box.
Set RBW (Hz) to 5.91e-3.
Expand the Trace options pane, if it is not already expanded.
Set Units to dBW.
Set Averages to 2.
Expand the Window options pane, if it is not already expanded.
Set Overlap (%) to 50.
Set Window to Hann.
Based on these parameters, the Spectrum Analyzer uses 128 samples from each input channel to calculate a new windowed data segment, as shown in the following equation.
$$D=\frac{NENBW\times {F}_{s}}{RBW}=\frac{1.512\times 1Hz}{11.8125\times {10}^{-3}Hz}=128samples$$
There are also 128 frequency points in the FFT. Also, because Overlap (%) is set to 50, there is a buffer overlap length of 64 samples in each spectral estimate, as shown in the following equation.
$${O}_{L}=\frac{{O}_{P}}{100}\times L=\frac{50}{100}\times 128=64samples$$
Every time the scope updates the display, 64 points are plotted for each channel. At 16 samples per frame, Spectrum Analyzer waits for 3 frames or 48 samples before displaying the first power spectral estimate.
Fit all the calculated data points into the display. In the Spectrum Analyzer menu, select Tools > Automatically Scale Axes Limits.
In the Spectrum Analyzer menu, select View > Configuration Properties. Then, select the Show legend check box.
Run the model. The Spectrum Analyzer block computes the FFT of each of the input signals. It then displays the power spectra of the frequency-domain signals in the Spectrum Analyzer window.
The power spectrum of the first input signal, from column one, is the yellow line. The power spectrum of the second input signal, from column two, is the blue line.