Добавил:
Закончил бакалавриат по специальности 11.03.01 Радиотехника в МИЭТе. Могу помочь с выполнением курсовых и БДЗ по проектированию приемо-передающих устройств и проектированию печатных плат. Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
20
Добавлен:
10.09.2023
Размер:
3.09 Mб
Скачать

Функции спектрального анализа в matlab

Рассмотрим средства MATLAB, предназначенные для выполнения спектрального анализа.

Прямое и обратное дпф

Для выполнения прямого и обратного ДПФ в MATLAB служат функции и :

  • - вычисляет прямое ДПФ для вектора ; если - матрица, преобразование производится для каждого ее столбца по отдельности;

  • - предварительно приводит исходные данные к Размеру , урезая их или дополняя нулями;

  • и - аналогичные варианты вызова для функции обратного ДПФ.

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

Алгоритм вычисления восьмиточечного бпф

Рассмотрим вариант реализации с помощью MATLAB алгоритма быстрого преобразова­ния Фурье для N = 8. В этом случае N = 23, следовательно, проце­дура вычисления спектральных составляющих включает три итерации. Напомним, прежде всего, алгоритм прореживания входных выборок, представленный на рис.3. Это еще не БПФ, а только подготовка к нему, вернее даже, пояснение исходного состояния, с которого начинается алгоритм БПФ.

Рис.3. Алгоритм прореживания по времени входных выборок.

Видно, что входной массив выборок разбивается на два массива. Первый из них включает , a второй - . Далее каждый из этих массивов разбивается на два, получаются четыре двумерных массива: ; ; и . Наконец, происходит последнее разбиение, в результате которого получаем восемь одномерных массивов, т.е. отдельных выборок . Это и есть исходное положение, начиная о которого работает алго­ритм БПФ.

Кстати, порядок следования выборок можно получить, ис­пользуя двоичную инверсию, показанную для N = 8 в табл.1

Таблица 1. Двоичная инверсия номеров входных выборок.

Исходный номер выборки

Исходный номер в виде двоичного числа

Инверсия двоичного числа

Десятичный номер в (7)

0

000

000

0

1

001

100

4

2

010

010

2

3

011

110

6

4

100

001

1

5

101

101

5

6

110

011

3

7

111

111

7

Поясним табл.1. В первой ее колонке стоят номера выборок исходного массива в том порядке, в котором они поступают на БПФ-процессор. Во второй колонке те же номера представлены в виде двоичных чисел. В третьей колонке произведена двоичная инверсия чисел второй колонки, т.е. число второй колонки, читаемое справа налево, записывается в третью колонку слева направо. Четвертая колонка содержит десятичные числа, соответствующие двоичным чис­лом в третьей колонке. Числа в последней колонке показывают оче­редность использования входных выборок при составлении пар для первой итерации БПФ. Действительно, в соответствии с очередностью, указанной в последней колонке, входные выборки объединяются в следующие пары , , , .

Как следует из вышеизложенного, на первой итерации БПФ из восьми входных выборок применением процедуры получаются спектральные составляющие четырех двухточечных БПФ. Поскольку в левых частях выражений находятся двумерные массивы, для данной итерации , . Номера получающихся частотных составляющих принимают значения k = 0 (в нечетных строках (5)) и k = 1 (в четных строках)*. В последнем случае и в правых частях равенств (5) фигурируют значения . Поэтому все поворачивающие множители находятся в нулевой степени, т.е. мы имеем дело с суммами и разностями типа , и т.д. Порядок составления пар выборок опреде­ляется последней колонкой табл.1.

Примечание. При реализации алгоритма в виде программы вычислений номера частотных составляющих примут значения k = 1 и k = 2, соответственно, в связи с правилами нумерации массивов, применяемыми в MATLAB.

Таким образом, на первой итерации БПФ выполняются следующие операции:

;

;

;

;

;

;

;

.

Верхний индекс спектральной составляющей означает номер двухточечного ДПФ в левой части каждого равенства, аргумент функции S( ) -номер частотной составляющей, нижний индекс - размерность ДПФ, получающихся в данной итерации. При реализации первой итерации в MATLAB имеем

n=1:1:8; %вектор номеров отсчетов n

un=[un(1) un(2) un(3) n(4) n(5) un(6) un(7) un(8)] %вектор отсчетов un

s21=[un(1)+un(5) un(1)-un(5)] %вектор первого (из четырех) двухточечного БПФ

s22=[un(3)+un(7) un(3)-un(7)] %вектор второго (из четырех) двухточечного БПФ

s23=[un(2)+un(6) un(2)-un(6)] %вектор третьего (из четырех) двухточечного БПФ

s24=[un(4)+un(8) un(4)-un(8)] %вектор четвертого (из четырех) двухточечного БПФ

На второй итерации из четырех двухточечных ДПФ получаются два четырехточечных. В соответствии с разбиением входных выборок (рис.3) одно из четырехточечных ДПФ должно формироваться из , , , , а второе - из , , , . Поскольку резуль­татом этой итерации являются четырехмерные массивы, здесь N = 4, N/2 = 2. Номера частотных составляющих в левых частях равенств , а в правых частях k1 принимают значения 0, 1, так как в случае , . При этом поворачивающие множи­тели имеют вид при и при .

Следовательно, при имеем соответственно ; ; ; . Таким образом, на второй итерации выполняются следующие опе­рации:

; ;

; ;

; ;

; .

Еще раз подчеркнем, что при k = 0;1 в левой части равенства такое же значение имеют номера частотных составляющих в правой части. Если же в левой части равенства k = 2; 3, то номер частот­ной составляющей в правой части равенства принимает значение k - 2, т.е. соответственно 0 или 1. Реализации второй итерации в MATLAB имеет вид

s41=[s21(1)+s22(1) s21(2)-j*s22(2) s21(1)-s22(1) s21(2)+j*s22(2)] %вектор первого (из двух) четырехточечного БПФ

s42=[s23(1)+s24(1) s23(2)-j*s23(2) s23(1)-s24(1) s23(2)+j*s23(2)] %вектор первого (из двух) четырехточечного БПФ

На третьей итерации из двух четырехточечных ДПФ получается одно восьмиточечное. При этом, поскольку N / 2 = 4, первые четы­ре частотные компоненты БПФ на выходе ( ) образуются взвешенным суммированием соответствующих компонент четырехточечных ДПФ. Четыре последние компоненты БПФ ( ) формируются как взвешенные разности компонент четырехточечных ДПФ с номерами k – 4.

Степень поворачивающего множителя равна k при или k - 4 при . Таким образом, на третьей итерации выполняются следующие операции (верхний индекс частотных компонент в левых частях равенств опущен, так как имеется только один выходной массив) ; ; ; ; ; ; ; .

Поворачивающие множители третьей итерации для рассмотренно­го примера принимают вид , и . Реализации третьей итерации в MATLAB имеет вид

s8=[s41(1)+s42(1) s41(2)+(exp(-j*pi/4))*s42(2) s41(3)+(exp(-j*pi/2))*s42(3) s41(4)+(exp(-j*3*pi/4))*s42(4) s41(1)-s42(1) s41(2)-(exp(-j*pi/4))*s42(2) s41(3)-(exp(-j*2*pi/4))*s42(3) s41(4)-(exp(-j*3*pi/4))*s42(4)] %вектор восьмиточечного БПФ

На рис.4. приведен граф восьмиточечного БПФ, наглядно пред­ставляющий выполняемые операции.

Рис.4. Граф восьмиточечного БПФ.

В качестве примера рассчитаем БПФ дискретной косинусоиды и комплексной экспоненты . Числовые значения и , а также значения частотных составляющих на различных итерациях алгоритма БПФ приведены в табл.2.

Параметры

Косинусоида

n

0

1

2

3

4

5

6

7

u(n)

1

0

-1

0

1

0

-1

0

1-ая итерация

2

0

-2

0

0

0

0

0

2-ая итерация

0

0

4

0

0

0

0

0

3-я итерация

0

0

4

0

0

0

4

0

Параметры

Комплексная экспонента

n

0

1

2

3

4

5

6

7

u(n)

1

j

-1

-j

1

j

-1

-j

1-ая итерация

2

0

-2

0

2j

0

-2j

0

2-ая итерация

0

0

4

0

0

0

4j

0

3-я итерация

0

0

8

0

0

0

0

0

Таблица 2. БПФ комплексной косинусоиды и комплексной экспоненты.

Полученные результаты легко интерпретируются. Оба входных напряжения - периодические с периодом , где Т - ин­тервал дискретизации, т.е. частота напряжений , дискрет частоты, в свою очередь равен .

Сравнивая F и , заключаем, что т.е. в спектре должна присутствовать составляющая S (2).

В случае комплексной экспоненты этот расчет подтверждается, В случае косинусоиды наряду с S (2) в спектре присутствует еще и компонента S (6). Этот факт объясняется тем, что амплитудный спектр любой действительной функции времени симметричен относи­тельно нуля частотной оси. Значит, при наличии спектральной со­ставляющей S (2) существует и спектральная составляющая S (-2) в области отрицательных частот. Спектр дискретного напряжения периодичен (с периодом равным T). Поэтому компоненте с час­тотой – 1/4T соответствует наряду с прочими компонента с частотой .

Легко видеть, что этой частоте соответствует компонента спектра S (6).

Соседние файлы в папке Лаба 6