получения ее тригонометрического представления, называемого спектральным синтезом.
Для быстрого преобразования Фурье существуют две функции, которые предоставляют возможность проводить указанные преобразования для данных в виде векторов с действительными или комплексными числами.
Функция fft U выполняет прямое преобразование Фурье для данных, представленных действительными числами - значениями компонент исходного вектора U , который должен иметь 2n составляющих, где n- целое число. Другая функция cfft A аналогична предыдущей, но реализует прямое преобразование Фурье для вектора A с комплексными элементами.
Быстрое обратное преобразование Фурье осуществляется через функцию ifft U . Другая функция icfft B осуществляет аналогичную процедуру для элементов с комплексными значениями.
Пример 6.3. Осуществить процедуру БПФ для примера 6.1, где применялось обычное преобразование Фурье.
В быстром преобразовании Фурье число отсчетов функции
берется как 2n . Выберем их число равным 27 128, задавая это в виде i : 0,1..127. Для этого случая период определяется
величиной T : 128, а величина |
m: |
1 |
аналогична понятию |
|
|
||||
частоты f. |
|
|
T |
|
|
|
|
|
|
Вместо |
значений времени |
t берутся значения i, т.е. |
||
u i : 0,9. |
При принятых параметрах сигнал задается в виде |
|||
d i : if i 64, u i , 0,9 . Число анализируемых гармоник задается оператором j , например, j : 0..10, а отсчеты функции прямого быстрого преобразования Фурье f : fft q вводятся как qi : d i . Функция быстрого обратного преобразования Фурье записывается в виде h: ifft f .
При таких обозначениях листинг программы Mathcad представлен на рис. 6.17.
160
|
Листинг Mathcad 6.1 |
|
|
|
m: 1 |
|
|
||
i : 0,1..127 |
|
T : 128 |
|
|
|
u i : 0.9 |
|||
d i : if i 64, u i , 0.9 |
j : 0..10 |
T |
: d i |
f : fft q |
|||||
qi |
|||||||||
h: ifft f |
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
100 |
|
|
|
f j |
5 |
|
|
arg f |
|
180 |
50 |
|
|
|
|
|
|
|
j |
|
|
|
|
|
0 |
5 |
10 |
|
|
|
|
|
|
|
0 |
|
|
|
0 |
5 |
10 |
||
|
|
j |
|
|
|
|
0 |
||
|
|
|
|
|
|
|
j |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
d(i) |
0 |
|
|
|
hi |
0 |
|
|
|
|
1 |
100 |
200 |
|
|
|
1 |
|
|
|
0 |
|
|
|
100 |
200 |
|||
|
|
i |
|
|
|
|
0 |
||
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 6.17. Результаты применения быстрого преобразова- |
||||||||
ния Фурье к примеру 6.1. |
|
|
|
|
|
|
|||
Пример 6.4. Применить быстрое преобразование Фурье к примеру 6.2. По аналогии с примером 6.3 результаты расчета будут иметь следующий вид.
161
Листинг Mathcad 6.2 |
|
|
|
|
|
|
1 |
|
|
|
||||
C:=100N : 4 |
i : 0,1..127 |
T : 128 |
m: |
p : |
6,28 m C |
|||||||||
|
|
|
|
|
|
T |
|
|
|
|
T |
|
|
|
u1i : p i |
u2 i : p |
u3(i):=pT/CN |
|
|
||||||||||
i |
|
|
|
|||||||||||
|
|
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
u1i if |
i |
T |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C N |
|
|
|
|
|
|
|
|
|
|
|
u2 i if i C 1 T |
|
|
|
|
|
|
|
|
|||||
d i : |
|
|
|
N C |
|
|
|
|
|
|
|
|
||
|
u3 i if |
T i C 1 T |
|
|
|
|
|
|||||||
|
|
|
N C |
|
|
|
N C |
|
|
|
|
|||
|
0 if |
i T |
, |
|
|
|
|
|
|
|
|
|
|
|
qi : d i |
|
N |
|
|
: fft q |
h: ifft f |
|
|
||||||
j:=0..20 |
f |
|
|
|||||||||||
1.57 |
2 |
|
|
|
|
|
|
1.57 |
2 |
|
|
|
|
|
d(i) |
|
|
|
|
|
|
hi |
|
1 |
|
|
|
|
|
1 |
|
|
|
|
|
|
0 |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
50 |
100 |
2.82 10 12 |
1 |
|
50 |
100 |
150 |
|||||
|
0 |
150 |
|
|
|
|
0 |
|
||||||
|
0 |
|
i |
|
127 |
|
|
|
|
0 |
|
i |
|
127 |
4.302 |
6 |
|
|
|
|
|
|
|
|
200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
fj |
4 |
|
|
|
|
arg f |
j |
|
180 |
100 |
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.123 |
0 |
|
10 |
|
20 |
|
|
|
|
0 |
|
|
|
|
|
0 |
|
|
|
|
|
|
0 |
|
10 |
20 |
|||
|
0 |
|
j |
|
20 |
|
|
|
|
|
|
j |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Рис. 6.18. Результаты применения быстрого преобразова- |
||||||||||||||
ния Фурье к примеру 6.2 |
|
|
|
|
|
|
|
|
|
|
||||
162
Значения величин гармоник fj в примере 6.3 отличаются
от примера 6.1, хотя общая закономерность их изменения остается той же. Это связано с тем, что БПФ имеет определен-
ный нормирующий множитель, за счет которого значения fj
возрастают. Определить его величину можно, сравнив значе-
ния fj и M n . Как показывают расчеты, эта величина равна
5,655 и ее необходимо учитывать при конкретных расчетах спектров сигналов.
6.3. Определение спектра сигнала на основе моделирующих программ
В современных программных системах, например, Electronics Workbench, Micro-CAP и др., имеется возможность получения спектра сигнала без задания его аналитической функции и других сопутствующих условий, как это имеет место при гармоническом анализе в системе Mathcad. Это позволяет наблюдать спектр колебаний в различных точках электрической схемы, ускоряя процедуру ее расчета и моделирования.
Для того, чтобы определить спектр сигнала необходимо выполнить следующую последовательность действий:
1.Собрать электрическую схему в программе EWB с источником энергии, форма колебаний которого имеет негармоническую форму. В случае не стандартной формы сигнала необходимо использовать процедуру программирования с источни-
ком PWL (п.3.3).
2.Установить в исследуемой схеме номера контрольных точек
(Nod), используя меню Circuit пункта Schematic Option через установку метки в окошечке «Snow nodes» (рис. 3.5).
3.Выбрать в меню «Analysis» режим «Fourier» (рис. 6.19),
обеспечивающий спектральное представление сигнала на основе быстрого преобразования Фурье. Отличием этого преобразования от аналогичного в пакете Mathcad является пред-
163
ставление величин амплитуд спектральных составляющих в нормированном виде, т.е. соответствующих расчетным значениям, определяемым по формулам (5.8 - 5.10).
Рис. 6.19. Окно EWB для выбора параметров преобразования «Fourier» (спектральный анализ)
В соответствии с рис. 6.19 элементы окна установки режима Фурье-анализа имеют следующие назначения:
Output node – номер контрольной точки (ноды), в которой анализируется спектр сигнала;
Fundamental frequency – основная частота колебания (частота первой гармоники));
Number harmonic – число анализируемых гармоник; Vertical scall – масштаб по оси Y (линейный, логарифмиче-
ский, в децибелах);
Advanced – набор опций этого блока предназначен для определения более тонкой структуры анализируемого сигнала путем введения дополнительных выборок (по умолчанию выключены);
164