Многоканальные телекоммуникационные системы (компьютерные упражнения). Часть 1. Методические указания по выполнению упражнений. Учебное пособие
.pdf
AN/2. То есть An = 2|Фn|/N, кроме А0 = |Ф0|/N и AN = |ФN|/N, где Ф – величины, полученные в результате БПФ. Составляющие энергетического спектра определяются как An и AN, возведѐнные в квадрат и поделѐнные на 2 (приведѐнные к мощности синусоидального сигнала). Коэффициент А0 на 2 не делится, поскольку он определяет по-
стоянную составляющую. На рисунке 19
Рис.18 Исходная функция u(t)
представлены результаты названных расчѐтов (продолжение таблицы рисунка 17), а на рисунке 20 – графики, соответствующие этим результатам.
Заметим, что модуль комплексного числа в |
|
|
приложении Excel вычисляется по встроенной |
|
|
формуле =МНИМ ABS(), а фаза – по = ─ |
|
|
МНИМ.АРГУМЕНТ(). Знак минус в последней |
|
|
формуле не случаен, поскольку практически |
|
|
удобнее работать с верхними строчками таблицы, |
Рис.19 Обработка результа- |
|
тов БПФ |
||
в которых располагаются коэффициенты отрица- |
||
|
||
тельных составляющих спектра. |
|
Рис.20 Графическое отображение обработки результатов БПФ
20
Практика использования БПФ в приложении Excel
Следует обратить внимание на два обстоятельства использования БПФ в приложении Excel. Во-первых, очень часто исследуемая функция задаѐтся некорректно. Во-вторых, во многих случаях требуется значительное число элементов дискретизации функции, например, при исследовании случайных сигналов (до 4096 – предельного числа элементов дискретизации в приложении Excel), что вызывает трудности ввода, как исходных данных, так и формул для их обработки.
Рассмотрим первое. В большинстве руководств по использованию БПФ (в различных приложениях) указывается, что, если число дискретных значений исследуемой функции отличается от двух в целочисленной степени, то данное число дискретных значений нужно дополнить до названного числа нулями. Это нежелательно. Обратимся к простейшему примеру. На рисунке 21 приведена исходная синусоидальная функция, число дискретных значений которой равно 7, а потому
Рис.21 Функция, дополненная нулѐм и еѐ спектры.
это число дополнено одним нулѐм. Очевидно, периодическая функция, определѐнная по заданной (см. рисунок 15), будет иметь разрыв и, следовательно, в еѐ спектре появятся высшие гармоники, которых не должна иметь синусоидальная функция
Далее. Часто пределы дискретизации выбираются так, чтобы период функции полностью помещался в заданном интервале Т. Это также приводит к разрыву периодической функции и появлению высших гармоник, наличие которых обычно объясняют или малым числом рассматриваемых периодов (на интервале Т), или недостаточным количеством членов разложения (что принципиально невер-
21
но). Рисунок 22 иллюстрирует этот случай, а на рисунке 23 показана корректно
Рис.22 Функция, заданная на всѐм интервале Т и еѐ спектры.
Рис.23 Корректно заданная функция и еѐ спектры.
заданная синусоидальная функция и еѐ спектры. Видно, что, несмотря на малое число членов разложения и единственный период исходной функции, спектры отвечают теоретической предпосылке (синусоидальная функция имеет единственную спектральную составляющую – первую гармонику).
Таким образом, дискретизировать исследуемую функцию нужно так, чтобы следующее за ней мгновенное значение (в начале следующего периода Т) равнялось первому мгновенному значению функции в данном периоде Т.
Второе. Если использование БПФ носит исследовательский характер, необходимо использовать большое число членов разложения, вплоть до предельного
22
(в Excel это число равно 4096). Очевидно, что в таком случае возникает сложность заполнения таблиц с большим количеством строк данными и формулами. Однако это затруднение легко преодолевается с помощью простейших макросов, построенных по линейным алгоритмам. При создании таких макросов от пользователя не требуется ни знания языка программирования VBA, на котором эти макросы записываются, ни заметных затрат времени. Это возможно посредством встроенной в приложение Excel функции рекордера, последовательно записывающей в макрос все действия пользователя. Покажем это на примере исследования спектра случайной биимпульсной последовательности (рисунок 24)
В исходной биимпульсной последовательности единицы передаются комбинацией импульсов 1; - 1, а нули - -1; 1, причѐм длительность каждого импульса равна половине тактового интервала Т/2. Произведѐм БПФ для предельного числа дискретных элементов – 4096-и, что соответствует 2048 периодам частоты
высшей гармоники данной последовательности (частоты Найквиста – Котельникова).
Примем период последовательности равным 16-и дискретным значениям (по 8-и значений для положительного и отрицательного импульсов). На рисунке 25 показан начальный участок данной последовательности. Если считать частоту разложения равной 2048 условным единицам (по предельному числу периодов), то тактовая частота импульсной последовательно-
Рис. 25 Начальный участок биимпульсной последовательности
23
Рис.26 Энергетический спектр биимпульсной случайной последовательности а) полный спектр (2048 гармоник), б) спектр, ограниченный 410-й гармоникой
сти будет равна 4096/16 = 256. На рисунке 26 приведены графики полного энергетического спектра исходной последовательности а) и его начального участка б). На последнем присутствует линия тренда, аппроксимированная полиномом 6-й степени. На рисунке хорошо видно, что спектральный максимум находится на частоте, ниже тактовой, что характерно для случайной биимпульсной последовательности.
Линия тренда может быть получена следующим образом. Правой кнопкой мыши следует щѐлкнуть по ряду данных на соответствующем графике. В выпадающем меню следует левой кнопкой выделить Добавить линию тренда…. При этом открывается окно, показанное на рисунке 27. Далее следует выбрать тип аппроксимации, задать, если это требуется, соответствующие параметры и нажать ОК. Линия графика формируется так же, как и другие линии.
Помимо наглядного представления спектров заданной случайной последовательности, полученные результаты позволяют оценить относительную мощность того или иного участка спектра, найти экстремумы спектрального распределения и многое другое. Ограниченность статистического материала (исследуется всего 256 периодов последовательности) может быть легко восполнена многократным повторением опыта.
3. Использование макросов для заполнения таблиц
Как уже отмечалось, в ряде случаев, в частности, при расчѐтах посредством БПФ, требуется заполнять весьма громоздкие таблицы.
Например, требуется заполнить столбец В формулой =ЕСЛИ(A11<0;-1;1) от ячейки В11 до ячейки В4106. Это удобно сделать простым макросом, осущест-
24
вляющим «протаскивание» этой формулы по заданным ячейкам. Соответствующий макрос создаѐтся посредством рекордера следующим образом. Выполняются команды Сервис, Макрос, Начать запись…. В открывшемся диалоговом окне вводится название макроса, например, Ст_В_4096 и производятся следующие действия:
–выделение ячейки В11 (в которой уже записана необходимая формула) и «протаскивание» еѐ (за крестик в нижнем левом углу выделенной ячейки) вниз на несколько ячеек, например до ячейки В14;
–останов записи останавливается (квадратной кнопкой) в окошке, появившемся после закрытия окна, в котором вводилось имя макроса;
–открывание диалогового окна Макросы… (команды: Сервис, Мак-
рос, Макросы…)
–выделение названия данного макроса и нажатие кнопки Войти.
25
Рис. 27 Окно построения линии тренда.
В открывшемся окне редактора VBA, показанного на рисунке 28, производится коррекция записанного макроса. Для этого цифры, соответствующие последней ячейке, до которой было произведено «протаскивание» (на рисунке 28 они отмечены овалами), заменяются цифрами ячейки, до которой должен быть заполнен данный столбец (в данном случае цифрой 4106). Макрос готов к работе (заполнению столбца В от ячейки В11 до ячейки В4106). Выполнение макроса – команды: Сервис, Макрос, Макросы…. Выделить название макроса и нажать Выполнить в открывшемся диалоговом окне.
4.Генерация случайных чисел
Вряде случаев, например, при исследовании случайных последовательностей импульсов, удобно использовать функцию инженерного пакета Excel «Генерация случайных чисел».
26
Например, необходимо создать случайную последовательность нулей и единиц, с определѐнной вероятностью их появления. Для этого вначале необходимо заготовить «входной интервал значений и вероятностей». На рисунке 24 такой интервал занимает ячейки В1 и В2 – величины (1 и 0) и ячейки С1 и С2 – вероятности их появления (0,7 и 0,3 соответственно)
Выполним последовательно команды Сервис, Анализ данных…, в открывшемся окне выберем Генерация случайных чисел. Появляется окно (рисунок 29) Генерация случайных чисел. В этом окне устанавливаем распределение Дискретное, входной интервал – указываем ячейки, в которых ранее были установлены величины и вероятности их появления, и ячейки выходного интервала. Нажимаем кнопку ОК и выходной интервал заполняется.
Функция Анализ данных… позволяет убедиться, насколько полученная выборка соответствует заданным условиям. Для этого в окне Анализ данных… следует выбрать опцию Описательная статистика В открывшемся окне следует указать диапазон, в котором находятся анализируемые данные, если необходимо, уровень надѐжности в % и верхнюю левую ячейку диапазона выходных данных. На рисунке 30 приведена таблица описательной статистики для ранее полученной последовательности нулей и единиц. Видно, что количество единиц несколько меньше теоретического значения (67 вместо 70), что вполне объясняется малой величиной выборки.
27
Рис. 28 Коррекция макроса заполнения столбца таблицы
27
Рис. 29 Окно дискретного распределения нулей и единиц
Рис. 30 Описательная статистика
В заключение покажем, как формируется последовательность прямоугольных импульсов, например, биимпульсная последовательность с периодом в 16 интервалов. На рисунке 31 в столбце В (Случ_ед)записана случай-
28
