Representing Signals
Numeric Arrays
The central data construct in the MATLAB® environment is the numeric array, an ordered collection of real or complex numeric data with two or more dimensions. The basic data objects of signal processing (one-dimensional signals or sequences, multichannel signals, and two-dimensional signals) are all naturally suited to array representation.
Vector Representation
MATLAB represents ordinary one-dimensional sampled data signals, or sequences, as vectors. Vectors are 1-by-n or n-by-1 arrays, where n is the number of samples in the sequence. One way to introduce a sequence is to enter it as a list of elements at the command prompt. The statement
x = [4 3 7 -9 1];
creates a simple five-element real sequence in a row vector. Transposition turns the sequence into a column vector
x = x';
x = 4 3 7 -9 1
Column orientation is preferable for single channel signals
because it extends naturally to the multichannel case. For multichannel
data, each column of a matrix represents one channel. Each row of
such a matrix then corresponds to a sample point. A three-channel
signal that consists of x
, 2x
,
and x
/π is
y = [x 2*x x/pi]
y = 4.0000 8.0000 1.2732 3.0000 6.0000 0.9549 7.0000 14.0000 2.2282 -9.0000 -18.0000 -2.8648 1.0000 2.0000 0.3183
If the sequence has complex-valued elements, the transpose operator
takes the conjugate of the sequence elements. To transform a complex-valued
row vector into a column vector without taking conjugates, use the .'
or
non-conjugate transpose:
x = [1-i 3+i 2+3*i 4-2*i]; % 1-by-4 vector x = x.'; % 4-by-1 vector