Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка ТиПЦОС - 1.pdf
Скачиваний:
147
Добавлен:
11.05.2015
Размер:
1.42 Mб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 3

ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ

ЦЕЛЬ РАБОТЫ

Программирование дискретного преобразования Фурье в пакете Matlab. Изучение свойств ДПФ.

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Определение дискретного преобразования Фурье

Дискретное преобразование Фурье является важнейшим методом для описания последовательностей и дискретных систем. Для его определения рассмотрим периодическую последовательность xp(n) с периодом в N отсчетов. Частоты спектральных составляющих, образующих xp(n), могут принимать только значения

ωk = 2πk

N

, − ∞ < k < ∞,

 

 

поскольку периоды других частот не кратны N. Последовательность можно представить в виде

xp (n)= X p (k )e j(2πN )kn , k =−∞

где коэффициенты Xp(k) представляют собой амплитуды синусоид с частотами ωk. Из периодичности функции eследует, что имеется всего N различных комплексных экспонент с периодом в N отсчетов:

e j(2π N )kn = e j(2π N )(k±mN )n ,

0 < m < ∞.

Учтя это и разделив на N (что не изменит способа представления), получим выражение, называемое обратным дискретным преобразованием Фурье (ОДПФ):

1 N 1

xp (n)= N k =0 X p (k )e j(2πN )kn .

Чтобы найти соотношение для прямого дискретного преобразования Фурье (ДПФ), выразим коэффициенты Xp(k) через xp(n):

N 1

X p (k )= xp (n)ej(2πN )nk . n=0

Из определений ДПФ и ОДПФ видно, что последовательность Xp(k), как и xp(n), периодична с периодом в N отсчетов и полностью определяется одним периодом xp(n). Хотя ДПФ и ОДПФ вводятся для периодических последовательностей, через них можно представлять и последовательности конечной длины. Коэффициенты ДПФ последовательности конечной длины однозначно представляют исходную последовательность, и она может быть точно восстановлена с использованием обратного ДПФ.

23

Свойства ДПФ

1. Линейность

Если xp(n) и yp(n) – периодические последовательности с периодом в N отсчетов, а Xp(k) и Yp(k) – их ДПФ, то дискретное преобразование Фурье от последовательности xp(n) + yp(n) равно Xp(k) + Yp(k). Это положение справедливо и для последовательностей конечной длины.

2. Сдвиг

Если последовательность xp(n) периодична с периодом в N отсчетов, а ее ДПФ равно Xp(k), то ДПФ периодической последовательности вида xp(n+n0) будет

равно X p (k )ej(2π / N )n0k . При анализе последовательностей конечной длины

следует учитывать, что x(n+n0) получается путем кругового сдвига элементов x(n) на n0 отсчетов.

3. Симметрия

Если периодическая последовательность xp(n) с периодом в N отсчетов является, то ее ДПФ Xp(k) удовлетворяет следующим условиям симметрии:

Re[Xp(k)] = Re[Xp(N - k)],

Im[Xp(k)] = – Im[Xp(N - k)], | Xp(k) | = | Xp(N - k) |,

arg Xp(k) = – arg Xp(N - k).

Аналогичные равенства справедливы и для конечной действительной последовательности x(n), имеющей N-точечное ДПФ X(k). Если ввести дополнительное условие симметрии последовательности xp(n), т.е. считать, что

xp(n) = xp(N - n),

то окажется, что Xp(k) может быть только действительной.

Поскольку чаще всего приходится иметь дело с действительными последовательностями, то, вычислив одно ДПФ, можно получить ДПФ двух последовательностей, используя свойства симметрии. Рассмотрим две действительные периодические последовательности xp(n) и yp(n) с периодами в N отсчетов и N-точечными ДПФ Xp(k) и Yp(k) соответственно. Введем комплексную последовательность zp(n) вида

zp(n) = xp(n) + jyp(n).

Ее ДПФ равно

Z p (k )= N 1 [xp (n)+ jy p (n)]ej(2πN )nk ,

n=0

Z p (k )= X p (k )+Yp (k ).

Выделяя действительную и мнимую части последнего равенства, получим

Re[Zp(k)] = Re[Xp(k)] – Im[Yp(k)],

Im[Zp(k)] = Im[Xp(k)] + Re[Yp(k)].

Действительные части Xp(k) и Yp(k) симметричны, а мнимые антисимметричны, поэтому их легко разделить, используя операции сложения и вычитания:

24

Re[X p (k )]= Re[Z p (k )]+ Re[Z p (N k )],

2

Im[Yp (k )]= Re[Z p (N k2)]Re[Z p (k )],

Re[Yp (k )]= Im[Z p (k )]+ Im[Z p (N k )],

2

Im[X p (k )]= Im[Z p (k )]Im[Z p (N k )].

2

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

Вычисление ДПФ в Matlab

В пакете Matlab для вычисления дискретного преобразования Фурье используется функция FFT(X). В случае матричного аргумента она ДПФ рассчитывается для каждого столбца матрицы. Может оказаться полезным явное указание размера преобразования: FFT(X,N). Если реальная длина вектора X меньше заданной размерности N, он дополняется нулями. При этом можно получить больше частотных отчетов и, следовательно, улучшить условия различения синусоидальных компонент сигнала. Если длина входного вектора больше N, лишние отсчеты отсекаются.

Обратное дискретное преобразование Фурье вычисляется с помощью функции IFFT(X), которая используется аналогично предыдущей.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

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

2.Сравните результаты работы своей функции с функцией Matlab FFT.

3.Исследуйте свойства симметрии ДПФ при следующих входных сигналах: действительном; мнимом; действительном четном; мнимом четном; действительном нечетном; действительном симметричном четном. Длину входного вектора выберите в соответствии с вариантом:

Номер варианта

1

2

3

4

5

6

Длина входного векто-

32

35

40

37

48

33

ра

 

 

 

 

 

 

25

Останется ли симметрия для комплексного входного сигнала? Каким должен быть входной сигнал, чтобы его ДПФ было действительным? Продемонстрируйте это.

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

Номер варианта

1

2

3

4

5

6

Вид функции

-sin(x)

-cos(x)

sin(x)

cos(x)

sin(x) -cos(x)

sin(x)+ cos(x)

Длина вектора

85

90

101

98

120

115

Число периодов

3

4

6

5

8

7

5. Разработайте функцию, вычисляющую ДПФ для двух действительных векторов одной длины с помощью однократного вызова функции Matlab FFT. Продемонстрируйте ее работу.

26