%% Shift Signals in Matrix
% You can process multiple 1-D signals by representing them as rows in a matrix.  Then use the dimension argument to compute the Fourier transform and shift the zero-frequency components for each row.
% Create a matrix A whose rows represent two 1-D signals, and compute the Fourier transform of each signal.  Plot the power for each signal.

fs = 100;               % sampling frequency
t = 0:(1/fs):(10-1/fs); % time vector
S1 = cos(2*pi*15*t);
S2 = cos(2*pi*30*t);
n = length(S1);
A = [S1; S2];
X = fft(A,[],2);
f = (0:n-1)*(fs/n);     % frequency range
power = abs(X).^2/n;    % power
plot(f,power(1,:),f,power(2,:))

%
% Shift the zero-frequency components, and plot the zero-centered power of each signal.

Y = fftshift(X,2);
fshift = (-n/2:n/2-1)*(fs/n); % zero-centered frequency range
powershift = abs(Y).^2/n;     % zero-centered power
plot(fshift,powershift(1,:),fshift,powershift(2,:))

% Copyright 2012 The MathWorks, Inc.