Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ(1-9) ЧИСЛЕННЫЕ МЕТОДЫ.doc
Скачиваний:
370
Добавлен:
29.05.2015
Размер:
8.35 Mб
Скачать

8.3. Спектральный анализ дискретных функций конечной длительности

Рассмотрим особенности спектрального представления дискретной функции, заданной на временном интервале конечной длительности [0,T] N отсчетами , взятыми соответственно в моменты времени. Полное число отсчетов.

Можно показать, что для дискретной последовательности коэффициенты ряда Фурье определяются формулой

. (8.21)

Формула (8.21) определяет последовательность коэффициентов, образующих дискретное преобразование Фурье (ДПФ), которое имеет следующие свойства:

  1. ДПФ есть линейное преобразование.

  2. Число коэффициентов , вычисляемых в соответствие с (8.21) равно числу отсчетов дискретной последовательности.

  3. Коэффициент (постоянная составляющая), есть среднее значение дискретной последовательности.

  4. Если N – четное число, то

.

  1. Для вещественной дискретной последовательности, коэффициенты ДПФ, номера которых расположены симметрично относительно , образуют сопряженные пары:

,

поэтому можно считать, что коэффициенты отвечают отрицательным частотам.

Если для дискретной последовательности найдены коэффициенты ДПФ, то восстановление исходной дискретной последовательности может быть осуществлено по формуле

. (8.22)

8.4. Быстрое преобразование Фурье

Из формул (8.21) и (8.22) видно, что для вычисления ДПФ или обратного ДПФ последовательности из N элементов требуется выполнить N 2 операций с комплексными числами. Если число элементов обрабатываемых массивов составляет порядка тысячи и более, то время, необходимое на выполнение этих преобразований, резко возрастает и теряется возможность обработки сигналов в реальном масштабе времени.

В 60-е годы Кули и Тьюки был предложен метод вычисления коэффициентов Фурье, позволивший снизить объем вычислений до операций. Он получил название алгоритма быстрого преобразования Фурье (БПФ). В настоящее время процедуры, реализующие алгоритм БПФ входят во все математические библиотеки, используемые при написании программ на языках программирования высокого уровня и специализированные пакеты для математических вычислений. Мы рассмотрим только основную идею БПФ для случая, когда число отсчетов , где p – целое число.

Разобьем входную последовательность на две части с четными и нечетными номерами:

, , (8.23)

где .

Это позволяет представить n-й коэффициент ДПФ в виде

(8.24)

Из (8.24) видно, что первая половина коэффициентов ДПФ исходного сигнала с номерами от 0 до выражается через коэффициенты ДПФ двух частных последовательностей:

, (8.25)

где .

Так как последовательности коэффициентов массивов иявляются периодическими с периодом, то

,. (8.26)

Подставляя (8.26) в (8.25) и учитывая, что

, (8.27)

получаем выражение для второй половины множества коэффициентов ДПФ:

, (8.28)

где .

Формулы (8.26), (8.28) лежат в основе алгоритма БПФ: последовательности отсчетов с четными и нечетными номерами вновь разбиваются на две части. Процесс продолжается до тех пор пока не получится последовательность, состоящая их одного элемента. ДПФ данной последовательности совпадет с сами элементом. Затем последовательно находятся коэффициенты ДПФ предыдущих последовательностей.

В пакете MATLAB быстрое одномерное преобразование Фурье реализовано парой функций, выполняющих прямое и обратное БПФ: fft/ifft. Данные функции используются как для действительных, так и для комплексных последовательностей, при этом длина последовательностей может быть произвольной.

Обращение к функциям:

fft(v) – возвращает дискретное преобразование Фурье 2m-мерного вектора, аргумент которого есть результат дискретизации через равные промежутки времени некоторой функции. Результат работы программы комплексный вектор размерности 2m+1. Элементы вектора, возвращаемого функцией fft, вычисляются по формуле

,

где N – число элементов вектора v.

ifft(v)обратное дискретное преобразование Фурье, комплексного вектора, содержащего значения ДПФ. Вектор v должен иметь 2m+1 элементов. Результат работы программы действительный вектор размерности 2m+1. Элементы вектора, возвращаемого функцией ifft, вычисляются по формуле

,

где N – число элементов вектора v. Отметим, что для всех векторов справедливо соотношение ifft(fft(v))=v.

fft(v,n) возвращает дискретное преобразование Фурье 2n-мерного вектора, аргумент которого есть результат дискретизации через равные промежутки времени некоторой функции. Результат работы программы есть комплексный вектор размерности 2n+1. Если последовательность, хранящаяся в векторе v дополняется нулями.

ifft(v,n)обратное дискретное преобразование Фурье, комплексного вектора, содержащего значения ДПФ. Результат работы программы комплексный вектор размерности 2n+1. Если последовательность, хранящаяся в векторе v дополняется нулями.

Пример 8.2. Используя функции пакета MATLAB для вычисления БПФ, вычислить спектр функции, являющейся суммой двух периодических функций

+,

где , Гц, , Гц, заданной набором дискретных значений в N=8192 точках на интервале [0,2] с. Для решения задачи необходимо выполнить следующую последовательность команд:

>> N=8192; % число точек для вычисления функции

>> i=1:N;

>> Tmax=2; % длительность временного интервала в секундах

>> t(i)=Tmax/(N-1)*(i-1); % задание временной сетки

>> f1=40 % частота первой составляющей в Гц

>> f2=90 % частота второй составляющей в Гц

% вычисление мгновенных значений функции

>> f(i)=0.8*sin(2*pi*f1*t(i))+0.4*sin(2*pi*f2*t(i));

>> figure(1);plot(t,f);

% вычисление спектра

>> c=fft(f);

% вычисление нормированного амплитудно-частотного спектра

>> j=2:N/2;

>> Cm(j-1)=abs(c(j-1))/(N/2);

>> Freq(j-1)=(j-1)/Tmax; % вычисление вектора частот в Гц

>> plot(Freq,Cm);

>> axis([0 100 0 1]);

Результат выполнения описанной выше последовательности команд представлен на рис. 8.3. 8.4.

Рис. 8.3. Зависимость мгновенных значений функции f=f(t) от времени

Рис. 8.4. Спектр функции f=f(t)