- •Введение
- •1. Анализ используемых методов решения задачи
- •Компьютер способен работать только с ограниченным объемом данных, следовательно, реально он способен вычислять только последний вид преобразования Фурье.
- •1.1.3. Дискретизация
- •Спектральный анализ
- •Фильтрация
- •2. Описание разработанной программы
- •2.1. Описание назначения составных частей программы
2. Описание разработанной программы
2.1. Описание назначения составных частей программы
Программа состоит из 2 модулей для основной обработки Go.cpp и для построения графиков Graph.cpp. Такое построение программы является удобным, так как можно отдельно проследить процесс построения графиков и обработки данных.
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) – главная функция приложения.
Параметры:
а) hInstance – дескриптор приложения;
б) hPrevInstance – дескриптор предыдущего приложения (используется для совместимости с предыдущими версиями Windows);
в) lpCmdLine – параметры передаваемые приложению из командной строки;
г) nCmdShow – определяет как первоначально запускается приложение.
LRESULT CALLBACK WndMain(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) – оконная функция для обработки сообщений главного окна.
hWnd – дескриптор окна,
msg – сообщение передаваемое оконной функции,
wParam и lParam – дополнительные параметры, передаваемые оконной функции.
Оконная функция главного окна реагирует на следующие действия:
WM_CREATE – действия выполняемые при создании главного окна;
WM_PAINT – действия выполняемые при перерисовки клиентской области окна;
WM_KEYDOWN – действия на нажатие клавиш на клавиатуре.
WM_COMMAND – действия при нажатии на командую кнопку (пункт меню).
Идентификаторы пунктов меню:
а) ID_RESET – сброс всех параметров для построения нового графика;
б) ID_ISHOD – построение исходного сигнала;
в) ID_DISC – построение дискретного сигнала;
г) ID_KVANT – построение уровней квантования;
д) ID_FILTR – построение отфильтрованного сигнала;
е) ID_PRAMOE – построение графика прямого преобразования Фурье;
ж) ID_OBRATNOE – построение графика обратного преобразования Фурье;
WM_DESTROY – действия выполняемые при закрытии окна.
BOOL CALLBACK DlgProc(HWND hDlg,UINT message, WPARAM wParam,LPARAM lParam) - оконная функция для обработки действий диалогового окна. Выполняет следующие действия:
WM_INITDIALOG – инициализация диалогового окна;
WM_COMMAND – действия при нажатии на командую кнопку (клавишу а клавиатуре):
IDC_BUTTON1 – кнопка на форме с идентификатором IDC_BUTTON1;
WM_KEYDOWN – нажатие клавиши на клавиатуре.
VK_RETURN – нажатие клавиши пробел «Enter».
LRESULT CALLBACK WndProcPopup(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) – обработка сообщений временного окна. Выполняются следующие действия:
а) WM_DESTROY – действия выполняемые при закрытии окна;
б) WM_PAINT – действия выполняемые при перерисовки клиентской области окна.
2.2. Инструкция по работе с разработанной программой
При запуске программы в центре рабочей области появляется диалоговое окно, в котором указываются необходимые параметры заданного сигнала. Вид данного диалогового окна изображен на рис.2.1
Рис. 2.1 Вид диалогового окна
Здесь есть возможность изменить такие параметры:
а) «Период» – период сигнала;
б) «Амплитуда» – амплитуда сигнала;
в) «Скважность» – скважность сигнала;
г) «Уровень квантования» – число уровней для выполнения квантования сигнала;
д) «Частота фильтра» – параметр фильтра (частота среза).
Указав все необходимые параметры, необходимо сохранить внесенную информацию с помощью кнопки «ОК».
Для облегчения работы пользователя было создано горизонтальное меню, состоящее из пунктов:
а) «Исходный сигнал»;
б) «Дискретизация»;
в) «Кантование»;
г) «Прямое преобразование Фурье»;
д) «Обратное преобразование Фурье»;
е) «Фильтрация»;
ж) «Сброс»;
Пункты меню расположены таким образом, что должны выполняться по очереди, при этом в любой момент работы программы есть возможность сбросить все и построить новый сигнал, задав параметры.
Выбрав пункт «Исходный сигнал», пользователь сможет построить график (рис.2.2), на котором будут нанесены исходный сигнал. При нажатии клавиш «UP», «DOWN», «LEFT», «RIGHT» график будет соответственно увеличиваться и уменьшаться в высоте, расширяться и сужаться в длину.
Рис. 2.2 - График исходного сигнала
Для продолжения работы программы необходимо нажать на следующий пункт «Дискретизация». Получим изображение исходного и дискретного сигнала (рис. 2.3).
Рис. 2.3 - График исходного и дискретного сигналов
Выбрав пункт «Квантование», пользователь сможет посмотреть график, на котором будут нанесены кроме исходного и дискретного сигнала, еще и квантованный сигнал (рис. 2.4). Т.е произведется квантование сигнала, по заданному пользователем числа уровней квантования.
Рис. 2.4 - Графики исходного, дискретного и квантованного сигналов
Выбрав пункт «Прямое преобразование Фурье», пользователь сможет просмотреть на графике исходный и отфильтрованный спектр (рис. 2.5).
Рис. 2.5 - Исходный и отфильтрованный спектр
Нажав пункт «Обратное преобразование Фурье», на исходный график наложится график восстановленного сигнала без фильтрации.
Рис. 2.6 - Графики исходного и восстановленного сигналов
Выбрав пункт «Фильтрация», на экране добавится график восстановленного сигнала, а так же выведется значение среднеквадратичной ошибки. Результат работы программы с заданными начальными условиями имеет вид рис. 2.7.
Рис. 2.7 - Результат работы программы
Если необходимо изменить начальные условия сигнала, то достаточно выбрать пункт «Сброс», и вновь в центре экрана появится диалоговое окно, где можно внести изменения в обрабатываемый сигнал.
ЗАКЛЮЧЕНИЕ
В процессе выполнения курсовой работы была написана программа для цифровой обработки сигнала заданного аналитически. Программа написана на языке программирования Visual С++ .
Разработка программы дала возможность понять и закрепить теоретическую часть курса и приобрести навыки в реализации практических задач, используя методы компьютерных информационных технологий для обработки сигнала.
Cписок использованной литературы
Цифровая обработка сигналов/А. Б. Сергиенко — СПб.: Питер. 2003.—604с.
Введение в цифровую обработку сигналов, Алексей Лукин, 2002, Лаборатория компьютерной графики и мультимедиа, МГУ.
Цифровые фильтры Хэмминг Р.В. Пер. с англ. / Под ред. А.М. Трахтмана –М.1980-224с.
http://books.google.ru.
http://www.eBooksComputer.ru.
http://habrahabr.ru/
http://stackoverflow.com/
http://ishodniki.ru/
https://ru.wikipedia.org
http://bibliofond.ru/
http://www.lib.ru/
