Функция перегруппировки
Функция Y
= fftshift(X) перегруппировывает выходные массивы функций fft и fft2, размещая
нулевую частоту в центре спектра, что иногда более удобно. Если X — вектор,
то Y — вектор с циклической перестановкой правой и левой половин исходного вектора.
Если X — матрица, то Y — матрица, у которой квадранты I и III меняются местами
с квадрантами II и IV [
Для одно- и двумерных массивов функция fftshift(X)
эквивалентна функции rot90{X.2)
]. Рассмотрим следующий пример. Вначале построим
график спектральной плотности мощности (рис. 17.8) при одномерном преобразовании
Фурье:
»
rand('state'.0);
»
WhO.001:0.512;
»
x=sin(2*pi*50*t)+sin(2*pi*120*t);
»
y=x+2*randn(size(t))+0.3;
»
Y=fft(y);
»
Pyy=Y.*conj(Y)/512:
»
f=1000*(0:255)/512:
Рис.
17.8.
График спектральной плотности сигнала после
одномерного преобразования Фурье
Здесь мы ограничились
512 отсчетами, с тем чтобы использовать эффективны!: метод быстрого преобразования
Фурье, при котором число отсчетов должно быт: 2
N
, где N - целое число.
Теперь воспользуемся функцией fftshift:
»
Y=fftshift(Y);
»
Pyy=Y.*conj(Y)/512;
»
p1ot(Pyy).grid
Полученный
при этом график представлен на рис. 17.9.