Смекни!
smekni.com

Разработка технического и программного обеспечения автоматизированной системы научных исследований (стр. 4 из 5)

(2.27)
(2.28)

Таким образом, принимаем

и
.

4 Разработка программного обеспечения

4.1 Общие сведения

Программное обеспечение разрабатывается в виде стандартного приложения для операционной системы Windows, как наиболее распространенная среди потенциальных пользователей разрабатываемого программного продукта. Использование оконного интерфейса в стиле Windows позволяет сделать приложение наглядным и простым в использовании, осуществляя управление процессом спектрального анализа, включая операции ввода данных, визуализации результатов в виде графиков и колонки цифровых значений, завершения работы.

4.1.1 Назначение программы

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

4.1.2 Входные данные

Входными данными для программы являются данные, указанные в техническом задании на курсовое проектирование: разрядность АЦП; динамический диапазон напряжений АЦП; период дискретизации АЦП; амплитуда входного сигнала; число отсчетов (элементов генерируемого временного ряда); число гармоник и их величины; разрешение по частоте; погрешность оценивания спектральных плотностей; число усредняемых участков.

4.1.3 Выходные данные

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

4.2 Функции

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

Остальные возможности реализованы в теле основной программы по нажатию определённых кнопок, такие как: функции очистки данных, загрузки и сохранения данных, функций вычисления грубой и усредненных оценок СПМ, функций окон сглаживания Гудмена и Гудмена-Эноконса-Отнеса. Схема программы приведена в приложения Б. Текст программных модулей приведен в приложении А.

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

Функция вычисления БПФ

void fft_fun(float *x, float *y, int n, int ind) осуществляет вычисление прямого или обратного быстрого преобразования Фурье в зависимости от значения переменной ind. Другие переменные, передаваемые в эту функцию:

x, y – вещественные массивы размерности N;

n – количество отсчетов (длина участка) .

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

void dpf_fun(float *x, float *y, int N) осуществляет вычисление прямого дискретного преобразования Фурье. Переменные, передаваемые в эту функцию:

*x, *y – вещественные массивы размерности N;

N – количество отсчетов.

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

void odpf_fun(float *x, float *y, int N) осуществляет вычисление обратного дискретного преобразования Фурье. Переменные, передаваемые в эту функцию:

*x, *y – вещественные массивы размерности N;

N – количество отсчетов.

Функция моделирования работы АЦП

void __fastcall TForm1::Button1Click(TObject *Sender) - Моделирует генерацию сигнала от датчика со всеми заданными параметрами (частоты, амплитуда) и последующую дискретизацию сигнала с заданным периодом дискретизации Т. Также вычисляет ошибку квантования её оценку математического ожидания, дисперсию, СКО.

Функция оценки спектральной плотности мощности

void __fastcall TForm1::BitBtn1Click(TObject *Sender) – По нажатию на эту кнопку программа выполняет оценку спектральной плотности мощности, в соответствие с введёнными параметрами. При этом есть возможность проводить оценку грубую, сглаженную усреднением по частотам или по участкам, либо с применением окон Гудмена или Гудмена-Эноксона-Отнеса.

4.3 Тестирование разработанного ПО

Итак, пришло время самого интересного в этом курсовом проекте, а именно проверка того, какие результаты он выдаёт, то есть насколько корректно программа делает вычисления. Как эталон будет использоваться результат вычислений пакета MATLAB.

Начальные данные:

Амплитуда сигнала (В) Значения частот гармоник (Гц) Параметры АЦП
f1 f2 f3 f4 f5 UMAX (В) UMIN (В) Число разрядов
3 10 40 70 100 130 +3 -3 6

Разрешение по частоте – 1 (Гц), ошибка – 40 (%).

Количество отсчётов в ходе исследования выбрано разным, потому что при исследовании оценки СПМ необходимое число отсчетов - 8192, но в то же время, при N=8192 не видно графиков временного ряда и ДПФ, поэтому будем использовать два варианта числа отсчетов: 256 и 8192.

Далее приведем результаты работы программы.

Графическое представление исходных временных рядов представлено на рисунках 4.1, 4.2, 4.3, 4.4.

Рисунок 4.1 – Исходный непрерывный временной ряд


Рисунок 4.2 – Дискретный временной ряд

Рисунок 4.3 – Временной ряд с ошибкой квантования

Рисунок 4.4 – Временной ряд ошибки квантования

На рисунке 4.5 представлен исходный временной ряд с шумом, интенсивностью 5%.


Рисунок 4.5 - Исходный временной ряд с шумом

В результате получили соответствующие ряды. Ошибка квантования каждого из них не выходит за рамки +/- 0.5, что говорит о верном построении.

Значения полученных статических характеристик представлены на рисунке 4.6

Рисунок 4.6 – Статические характеристики

Теперь приступим к второй части – исследование преобразования Фурье.

Прямое дискретное преобразование Фурье и быстрое прямое ДПФ представлены на рисунках 4.7 и 4.8 соответственно.

Рисунок 4.7 – Прямое дискретное преобразование Фурье


Рисунок 4.8 – Прямое быстрое дискретное преобразование Фурье

Обратное дискретное преобразование Фурье и быстрое обратное ДПФ представлены на рисунках 4.9 и 4.10 соответственно.

Рисунок 4.9 – Обратное дискретное преобразование Фурье

Рисунок 4.10 – Быстрое обратное дискретное преобразование Фурье

Приступим к третьей части исследования – оценка спектральной плотности мощности.

Для дальнейшего исследования необходимо увеличить количество отсчетов до 8192. На рисунках 4.11, 4.12, 4.13, 4.14, 4.15 приведены результаты работы программы.

Рисунок 4.11 – Грубая оценка спектральной плотности мощности

Рисунок 4.12 – Сглаженная оценка СПМ (окно Гудмена-Эноксона-Отнеса)

Рисунок 4.13 – Сглаженная оценка СПМ (окно Гудмена)