СИСТЕМНЫЙ АНАЛИЗ, УПРАВЛЕНИЕ И ОБРАБОТКА ИНФОРМАЦИИ В КОСМИЧЕСКОЙ ОТРАСЛИ
ПРОГРАММНЫЙ СТЕНД ДЛЯ ИССЛЕДОВАНИЯ ЦИФРОВЫХ ФИЛЬТРОВ
А.Е. ПАСТУХОВ, инженер-программист каф. ИИС и ТПМГУЛ,
П.А. ТАРАСЕНКО, проф. каф. ИИС и ТП МГУЛ, канд. техн. наук,
Ю.П. БАТЫРЕВ, доц. каф. ИИС и ТП МГУЛ, канд. техн. наук,
А.П. ШУЛЬЦ, проф. каф. физики МГУЛ
tarasenko@mgul. ac. ru; batyrev@mgul. ac.ru ФГБОУ ВПО «Московский государственный университет леса» 141005, Московская обл., г. Мытищи-5, ул. 1-я Институтская, д. 1, МГУЛ
В настоящее время для проектирования цифровых фильтров, нашедших широкое распространение с появлением высокоскоростных процессоров обработки сигналов, существует достаточное количество программных инструментов, позволяющих сделать выбор типа фильтра, оптимальный для поставленной задачи, а также провести синтез требуемых параметров фильтра - полосы пропускания и заграждения, неравномерности АЧХ и др. Для проверки работоспособности фильтров с заданными коэффициентами была разработана программа, позволяющая визуально проверить функционирование фильтра при воздействии на него сигнала с программно управляемого генератора сигналов различной формы. В статье дается описание работы программы с описанием отдельных модулей и выполняемых ими функций, отображением входного воздействия и выходного сигнала, а также ряда дополнительных параметров, определяющих качество работы цифрового фильтра.
Ключевые слова: цифровая фильтрация, полоса пропускания, коэффициенты фильтра, добротность, компьютерная программа, визуализация работы фильтра.
Основная задача измерительной аппаратуры - это обработка электрических сигналов. Одной из основных проблем при этом является выделение сигналов на уровне помех (фильтрация). Вначале эту задачу решали линейные, аналоговые фильтры с конечной импульсной характеристикой [1, 2].
Сложность реализации таких фильтров состоит в том, что при проектировании фильтра высокого порядка необходимо задействовать большое количество радиоэлектронных компонентов (резисторов, конденсаторов, катушек индуктивности), с реальными характеристиками [3]. Так как два элемента могут отличаться в реальных условиях по номиналу, это сильно затрудняет расчет фильтров высоких порядков.
С появлением полупроводниковых компонентов, таких как операционные усилители, наиболее часто используются активные фильтры (фильтры с обратной связью) с бесконечной импульсной характеристикой (БИХ фильтры) [4, 5]. Это позволяет повысить точность фильтрации, в то же время решение таких проблем, как, например, уход характеристик со временем и воздействие внешних факторов, остается открытым, что, в свою очередь, вызывает трудности при проектировании.
При использовании быстродействующих процессоров появилась возможность реализации цифровых фильтров. Преимущество цифровых фильтров состоит в том, что они не подвержены влиянию внешних факторов, таких как температура, давление, и его параметры не уходят со временем, ввиду отсутствия большого количества реактивных компонентов. Критичным остается лишь временной интервал между отсчетами. Цифровой фильтр можно реализовывать на основе программируемых логических интегральных схем, сигнального процессора, а также в виде компьютерной программы [6, 7]. В любом случае характеристики фильтра можно перенастраивать, не изменяя электрической схемы прибора.
Прежде чем реализовать фильтр, необходимо убедиться в его работоспособности и эффективности, для этого надо определить искажения сигнала, вид и параметры передаточной функции, АЧХ фильтра, а также получить возможность визуального представления результатов работы фильтра [8, 9]. Для этих целей создан программный стенд для исследования цифровых фильтров.
Стенд позволяет смоделировать входные сигналы, подать их на вход фильтра и получить и проанализировать результат филь-
166
ЛЕСНОЙ ВЕСТНИК 3/2015
системный анализ, управление и обработка информации в космической отрасли
Рис. 1. Функциональная схема программного стенда Fig. 1. Functional diagram of the program stand
трации. Стенд позволяет также определить длительность переходного процесса.
Возможно получение импульсной характеристики и АЧХ фильтра. Все эти процессы и характеристики визуализированы.
Программный стенд состоит из трех модулей.
Функциональная схема программного стенда приведена на рис. 1
Она включает:
- модуль генераторов сигналов, модулирующих полезный сигнал и сигналы поме-
хи, он также включает сумматоры и модуляторы сигналов;
- цифровой (рекурсивный) БИХ-фильтр с изменяемой передаточной характеристикой, задаваемой коэффициентами;
- блок анализа спектральных характеристик, позволяющий определить спектральную плотность мощности сигнала.
На рис. 2 изображено главное окно программы.
Визуально поле разделено на три области:
ЛЕСНОЙ ВЕСТНИК 3/2015
167
системный анализ, управление и обработка информации в космической отрасли
\^2т\
Меню
г Список ге юраторов 1
№ Состояние Тип генератора Частота [ Гц ] Амплитуд Фаза Местонахождение
1 Включен Сумматор 500 2000 0 Начальный отсчет
2 Включен Сумматор 3000 2000 0 Область шума
3 Включен Сумматор 4000 2000 0 Область шума
Начальный отсчет Область шума
Сохранить Отмена
Рис. 3. Настройка генераторов Fig. 3. Generators set up
Рис. 4. Области местонахождения генераторов (нулевой отсчет и область шума) Fig. 4. Location of generators (zero reading and noise area)
1. Левая область - это исходный
сигнал.
2. Центральная область - область шумов. Область шумов начинается от оранжевой линии. Использование этой области необязательно, она введена для наглядности. При желании зашумленный сигнал можно сгенерировать от начального отсчета.
3. Правая область - область выходного сигнала из фильтра. Фильтр обозначается двумя красными вертикальными линиями. Начало области обозначено правой красной вертикальной линией.
Все три области позволяют наглядно оценить работу фильтра.
Сигналы отображены синим цветом, и при работе программы они перемещаются слева направо.
В левом верхнем углу имеется окно «Спектральная плотность мощности», где отображается спектральная характеристика
сигнала. Область анализа выбирается с помощью курсора. На рис. 2 изображен спектральный анализ шумов.
Программный стенд работает в трех режимах:
1) «Стоп кадр»,
2) «Непрерывный»,
3) «Пошаговый».
Генераторы синусоидальных сигналов
Сигналы создаются с помощью генераторов синусоидальных сигналов. Для настройки генераторов необходимо вызвать меню «Генераторы сигналов». После чего появится список генераторов (рис. 3).
Список (рис. 3) содержит 6 колонок:
1. Состояние: Включение \ выключение генератора.
2. Тип генератора: Сумматор \ модулятор.
3. Частота [Гц]: количество периодов колебания за единицу времени [1 сек]. Если
168
ЛЕСНОЙ ВЕСТНИК 3/2015
системный анализ, управление и обработка информации в космической отрасли
5000
2500
э 10 го 30 40 50 60
Рис. 5 Дельта-функция и прямоугольные импульсы, сгенерированные мышью Fig. 5 Delta function and square waves generated by the mouse
А 7\ 7\ / i f\
/' ч V 70 / \ во / \ 90 / [ МО 1 \
Рис. 6. Область фильтра Fig. 6. The field of the filter
в данную позицию ввести ноль, то генератор будет работать как источник шума, добавляя в отсчет псевдослучайное значение.
4. Амплитуда: в данном случае - это безразмерная величина, характеризует уровень сигнала.
5. Фаза: смещение сигнала.
6. Местонахождение: всего определено два места для генератора.
Начальный отсчет - в этом случае генератор работает с нулевым отсчетом.
Область шума - в этом случае генератор работает в области, обозначенной оранжевой линией (рис. 4).
При необходимости количество генераторов можно изменить, делается в окне «Генераторы сигналов» с помощью «Меню» ^«Добавить генератор» / «Удалить генератор» (рис. 3).
Модель генератора описывается следующим образом.
Модель сумматора
X. = X. + Asin(ik + ф), i = 0...ю.
Модель модулятора X. = X. х Asin(ik + ф), i = 0...го.
Модель источника шума X. = X. х Ax, где k = 2лю/0 = const
ю - частота сигнала,
Q - частота дискретизации,
A - амплитуда сигнала, ф - фаза,
x - псевдослучайное число.
Существует возможность смоделировать прямоугольный импульс и дельта-функцию (одиночный импульс) путем указания в любой области сигнала и нажатием одной из двух клавиш мыши.
Левая клавиша мыши генерирует одиночный импульс, правая клавиша при удержании генерирует уровень сигнала, амплитуда которого указывается курсором мыши. Пример моделирования сигналов приведен на рис. 5.
Рекурсивный фильтр
Область фильтра обозначается двумя вертикальными красными линиями. Вход фильтра обозначается левой линией, выход из фильтра - правой линией (рис. 6).
Расстояние между линиями зависит от добротности фильтра, т. е. от количества коэффициентов передаточной функции. Чем больше порядок фильтра, тем больше расстояние между линиями.
ЛЕСНОЙ ВЕСТНИК 3/2015
169
системный анализ, управление и обработка информации в космической отрасли
Рис. 7. Ввод коэффициентов передаточной функции фильтра Fig. 7. Input of coefficients of the filter transfer function
Модель фильтра описывается следующим образом
У (*) = — (Z ЬтХ(к “ £ «-.К* “
«О m=0 т=0
где y(k) - отсчеты на выходе фильтра, x(k) - входные отсчеты. b и a - коэффициенты числителя и
m m А А
знаменателя передаточной функции
фильтра.
Обязательное условие для БИХ-филь-тра - это хотя бы одно значение am помимо а0 должно быть отличным от нуля.
Конкретная методика расчета коэффициентов bm и am не рассматривается. Данные коэффициенты рассчитываются в других программах или берутся из справочников и вводятся в программный стенд с помощью дополнительного окна, вызываемого меню «фильтр» ^ «свойства фильтра» (рис. 7).
Коэффициенты передаточной функции формируются исходя из заданной аппроксимации (Баттерворта, Чебышева, Бесселя и др.), типа фильтра (ФНЧ, ФВЧ, ПФ, РФ) и порядка фильтра. На рис. 7 изображен ввод коэффициентов передаточной функции фильтра со следующими параметрами:
- Аппроксимация: Баттервота,
- Тип фильтр ФНЧ (фильтр нижних частот),
- Порядок фильтра = 8.
АЧХ фильтра представлена на рис. 8.
Спектральный анализ
Для спектрального анализа необходимо запустить модуль спектроанализатора и указать одну из трех областей сигнала; делается это с помощью меню «спектр», далее выбирается одна из трех областей сигнала.
170
ЛЕСНОЙ ВЕСТНИК 3/2015
системный анализ, управление и обработка информации в космической отрасли
Рис. 8. Амплитудно-частотная характеристика ФНЧ Fig. 8. Amplitude-frequency LPF characteristic
Рис. 9. Пример спектрального анализа импульсной характеристики фильтра Fig. 9. The example of a spectral analysis of the filter impulse characteristic
1) Исходный сигнал (анализ ведется от начального отсчета).
2) Область шумов (анализ с отсчета обозначенный оранжевой линией).
3) Область фильтра (анализ выходного сигнала фильтра, правая красная полоса).
После запуска модуля в окне отображается спектральная характеристика сигнала, при этом появляются две зеленые вертикальные полосы, отображающие область спектрального анализа (рис. 9).
Данная часть программы реализована с помощью дискретного преобразования Фурье (ДПФ) по формуле
n-i 2тг
S(k) = ^s(w)exp(-y—w£), к = 0.JV-1,
п= О
где S(k) - спектральный отсчет (комплексный),
s(n) -отсчеты сигнала,
|S(k)| - отображаемый спектральный отсчет
Программный стенд разработан в среде Microsoft Visual Basic 6.0. Отдельные вычислительные функции вынесены в библиотеку FCAD.DLL (для ускорения вычислительных операций), данная библиотека реализована на ассемблере MASM32 v.11. [8-10].
ЛЕСНОЙ ВЕСТНИК 3/2015
171
системный анализ, управление и обработка информации в космической отрасли
Библиографический список
1. Айфичер, Э. С. Цифровая обработка сигналов: практический подход / Э.С. Айфичер, Б. У Джервис / 2-e издание. : Пер. с англ. М.: Изд. дом «Вильяме», 2004. - 992 с.
2. Бондарев, В.Н. Цифровая обработка сигналов: методы и средства : уч. пос. для ВУЗов / В.Н. Бондарев, Г. Трес-тер, В.С. Чернега; 2-e издание. : Харьков: Конус, 2001.
- 398 с.
3. Куприянов, М.С. Цифровая обработка сигналов: процессоры, алгоритмы, средства проектирования / М.С. Куприянов, Б.Д. Матюшкин; 2-e издание. : СПб.: Политехника, 1999. - 592 с.
4. Лэй, Э. Цифровая обработка сигналов для инженеров и технических специалистов: практическое руководство: Пер. с англ. / Э. Лэй. - М.: ООО «Группа ИДТ», 2007.
- 336 с.
5. Тропченко, А Ю. Цифровая обработка сигналов. Методы предварительной обработки : Уч. пос. / А Ю. Тропченко, А.А. Тропченко. - СПб: СПбГУ ИТМО, 2009.
- 100 с.
6. Браун, С. Visual Basic 6 : Пер. с англ. / С. Браун. - СПб.: Питер, 2001. - 576 с.
7. Сергеев, В. Visual Basic 6.0. Наиболее полное руководство для профессиональной работы в среде Visual Basic 6.0. / В. Сергеев. - СПб.: БХВ-Петербург, 2004.
- 992 с.
8. Зубков, С.В. Assembler. Язык неограниченных возможностей / С.В. Зубков. - М.: ДМК-пресс, 2002.
- 640 с.
9. Магда, Ю.С. Ассемблер для процессоров Intel Pentium / Ю.С. Магда. - СПб.: Питер, 2006. - 410 с.
10. Безруков, В.А. WIN32 API программирование / В.А. Безруков. - СПб: СПбГУ ИТМО, 2009. - 90 с.
PROGRAM STAND FOR THE STUDY OF DIGITAL FILTERS
Pastukhov A.Ye., MSFU; Tarasenko P.A., Prof. MSFU, Ph.D (Teсh.); Batyrev YU.P., Assoc. MSFU, Ph.D (Teсh.); Shul’ts A.P., Prof. MSFU, Dr. Sci. (Te^.)
tarasenko@mgul.ac.ru; batyrev@mgul.ac.ru Moscow state forest university (MSFU) 1st 1 Institutskaya st., 1, 141005, Mytischi, Moscow reg., Russia
Currently for the design of digital filters, which have become widely spread with the introduction of high-speed signal processors, there is a sufficient number of software tools to choose the type of the filter that is optimal for the task. It is also possible to synthesize the desired filter parameters - bandwidth and fences, flatness and others. To test the efficiency of filters with the given coefficients, there has been developed a program that allows to check filter functioning visually when it receives a signal from a programmable signal generator. The article describes the operation of the program with the descriptions of individual modules and functions they perform, the article shows input and output effects, as well as certain additional parameters that determine the quality of work of the digital filter.
Keywords: digital filtering, bandwidth, filter coefficients, Q-factor, computer program, the visualization of the filter
work.
References
1. Ayficher E.S., Dzhervis B.U. Tsifrovaya obrabotka signalov: prakticheskiy podkhod [Digital signal processing: a practical approach]. Moscow: Publ. «Vil’yame», 2004. 992 p.
2. Bondarev V.N., Trester G., Chernega V.S. Tsifrovaya obrabotka signalov: metody i sredstva [Digital Signal Processing: Methods and tools]. Kharkiv: Konus, 2001. 398 p.
3. Kupriyanov M.S., Matyushkin B.D. Tsifrovaya obrabotka signalov: protsessory, algoritmy, sredstva proektirovaniya [Digital signal processing: processors, algorithms, design tools]. SPb.: Politekhnika, 1999. 592 p.
4. Ley E. Tsifrovaya obrabotka signalov dlya inzhenerov i tekhnicheskikh spetsialistov: prakticheskoe rukovodstvo [Digital Signal Processing for Engineers and Technicians: A Practical Guide]. Moscow: OOO «Gruppa IDT», 2007. 336 p.
5. Tropchenko A Yu., Tropchenko A.A. Tsifrovaya obrabotka signalov. Metodypredvaritel’noy obrabotki [Digital signal processing. Pretreatment methods]. Saint Petersburg: SPbGU ITMO, 2009. 100 p.
6. Braun S. Visual Basic 6. SPb.: Piter, 2001. 576 p.
7. Sergeev V Visual Basic 6.0. Naibolee polnoe rukovodstvo dlya professional’noy raboty v srede Visual Basic 6.0 [The most complete guide for professional work environment Visual Basic 6.0.]. Saint Petersburg: BKhV-Peterburg, 2004. 992 p.
8. Zubkov S.V. Assembler. Yazyk neogranichennykh vozmozhnostey [Assembler. Language of unlimited possibilities]. Moscow: DMK-press, 2002. 640 p.
9. Magda Yu.S. Assembler dlya protsessorov Intel Pentium [Assembler for processors Intel Pentium]. Saint Petersburg: Piter, 2006. 410 p.
10. Bezrukov V.A. WIN32 API programmirovanie [WIN32 API Programming]. Saint Petersburg: SPbGU ITMO, 2009. 90 p.
172
ЛЕСНОЙ ВЕСТНИК 3/2015