Hs2(14) 2008
В.В. Андреев, М.И. Семенов
Создание и использование системы обработки и анализа данных с применением пакета MatLab
Работа посвящена созданию и использованию специализированной системы, использующей средства пакета MatLab, для обработки данных. В качестве входных величин могут применяться цифровые сигналы и статистические данные самой различной природы. Важным достоинством разработанной системы является ее реализация в виде графического интерфейса пользователя (GUI), обеспечивающая решение разнообразных задач в простой, удобной и наглядной форме. Следует отметить, что пакет MatLab также предоставляет широкий набор инструментальных средств обработки данных, однако готового GUI в этой области, объединяющего различные технологии обработки и анализа данных, в существующих версиях MatLab нет.
1. Задачи, решаемые системой
Разработанная система поддерживает различные источники получения входных данных: считывание из текстового файла, ручной ввод, скачивание из сети Internet и т.п. В системе организовано централизованное сохранение результатов работы в единый файл, что позволяет использовать эти данные для дальнейшей работы. Интерфейс разработан с учетом удобства и наглядности результатов работы для пользователя. При этом предусмотрена возможность гибкой настройки параметров системы.
В качестве математического аппарата обработки данных использованы спектральный анализ [1] и вейвлет-анализ [2]. Основными методами и алгоритмами, примененными в разработанной системе, являются: алгоритм дискретного быстрого преобразования Фурье; методы оконного преобразования; методы дискретного и непрерывного вейвлет-преобразования; метод очистки сигнала от шума с помощью вейвлет-разложения и вейвлет-аппроксимации; алгоритм синтеза нового типа вейвлет, адаптированного под исследуемый сигнал; метод, основанный на сложении входного сигнала с синусом.
2. Создание программы и интерфейса
Программирование системы выполнено с помощью встроенных инструментов и де-скрипторной графики пакета MatLab, о которых можно подробнее узнать в [3], [4].
Головной модуль программы содержит описание главного графического окна, вид которого представлен на рис. 1.
Все выполняемые функции являются отдельными модулями. Далее опишем элементы, расположенные на панели главного окна, и соответствующие им процедуры.
Управление системой осуществляется с помощью меню (рис. 2), которое состоит из трех основных разделов:
• Main, содержащий инструменты для загрузки данных в систему и их сохранения в различных формах;
• Tools, содержащий набор средств для удобной работы с интерфейсом и его настройками;
• Processing, содержащий перечень всех основных средств обработки сигналов и данных, используемых в системе.
Детальная настройка каждого метода или алгоритма происходит после его выбора в меню. Кратко рассмотрим возможно-
Ne2(14) 2008
сти системы путем функционального описания пунктов меню управления.
В разделе Main (рис. 2) с помощью группы пунктов Load пользователь может вы-
i л
i со
I
ü и
1 а
0
1
31
I
СО
о
! s
! §
¿3
Рис. 1. Общий вид интерфейса системы
Рис. 2. Разделы меню управления системой
86
Hs2(14) 2008
брать тип и параметры загружаемых в систему данных. Это может быть:
1) mat-файл с результатами предыдущих вычислений в системе (Load File);
2) fig-файл, в котором сохраняются все результаты работы системы, включая графики, диаграммы и сами численные массивы вычислений (Load Saved Session);
3) звуковой wav-файл (Load Wav);
4) электронная таблица MS Excel (Load Xls);
5) данные из текстового файла с разделителем, который пользователю предлагается ввести после выбора этого пункта (Load Txt);
6) ввод изображения (поддерживаются все основные форматы графических файлов) с графиком исследуемой зависимости;
7) запись звуковой информации со звуковой карты компьютера.
При отказе пользователя от выбора файла с данными на локальном компьютере ему предлагается загрузить данные через Internet. При этом открывается системный интернет-браузер и предлагается ввести ссылку на данные. Если в загруженных данных отсутствует информация о частоте дискретизации сигнала, то ее предлагается задать пользователю. Затем предлагается ввести единицы измерения вводимых данных по времени (секунды, дни, отсчеты и т. д.).
Сохранить текущие результаты работы системы (Save Data) пользователь может как целиком в fig-файл сохранения сессии (Save Data ^ Session) или частично (только результаты расчетов, массивы) в mat-файл (Save Data ^ Data), так и в графическом виде (Save Screen) в форматах bmp (точечный рисунок) и ai (формат Adobe Illustrator). Причем проделать это можно как со всей рабочей областью (Save Screen ^ Full), так и с отдельными блоками интерфейса системы (Save Screen ^ Block).
Можно отправить результаты работы непосредственно на печать (Print). При этом
открывается окно настроек печати и выбо- § ра принтера. |
Выход из системы осуществляется с по- <2 мощью пункта Exit. ^
В разделе Tools (рис. 2) с помощью груп- ^ пы пунктов View пользователь может расширить на весь экран одну из четырех гра- ? фических областей интерфейса системы со (Fullscreen) для детального его изучения, а потом восстановить исходный вид (Restore), а также поменять масштаб вертикальной оси (Scale) текущего блока на логарифмический (Logarithmic) или линейный (Linear).
Если обрабатываются звуковые данные, то на текущем этапе обработки или анализа можно воспроизвести их через звуковую карту (Play Sound). Для выделения из сигнала полезного участка можно вырезать ненужные фрагменты с помощью пункта Crop, указав начальный и конечный моменты времени вырезаемого фрагмента.
Для более эффективной работы с цветными диаграммами (спектрограммами, периодограммами, результатами вейвлет-пре-образования и метода сложения с синусом) пользователь может выбрать различные схемы цветовой окраски (Color Map).
В группе пунктов Wavelet Tools собраны инструменты для настройки методов с применением вейвлет-технологии. Переход от масштабирующих коэффициентов к реальным частотам осуществляется в меню (Scale о- Frequency). Причем можно осуществить перевод как всей вертикальной оси масштабов (All), так и уточнить соотношение конкретного масштаба и частоты (Detail). Система поддерживает создание пользователем нового типа вейвлета (New Wavelet) и дальнейшее его применение (New Type в Wavelet Type). Вейвлет может быть создан либо на основе исходных данных автоматически (Automatic), либо пользователем с помощью интерактивного графического ввода посредством использования мыши (Hand-made). В пункте Wavelet Type пользователь может выбрать используемый для вейвлет-анализа тип вейвлета, включая пользовательский тип.
№2(14) 2008
В разделе Processing (рис. 2) присутствуют все основные средства обработки сигналов и данных, используемых в системе.
Спектральный анализ сигнала (Spectral Power) осуществляется с помощью дискретного преобразования Фурье по алгоритму быстрого преобразования Фурье (БПФ) с наложением сглаживающего окна определенного типа (With window) или без него (Without window). Единица измерения частоты: [1/еди-ница измерения времени]. Построение происходит в верхнем правом окне.
Спектрограмма (Spectrogram) представляет собой зависимость амплитуды спектральных составляющих БПФ, вычисляемого в перемещающемся окне начиная от момента времени, задающего положение ок-.«а на. Фактически спектрограмма строится й в плоскости «частота-время», а амплитуда § каждой спектральной составляющей опре-¡G деляет цвет построения каждой точки спек-§ трограммы. По умолчанию используется | окно Кайзера со следующими параметра-g ми: ширина окна — 500, высота — 5, число | строк — 512. Построение происходит в ниж-Ц нем правом окне.
« На диаграмме сложения сигнала с сину-! сом (Sinus Diagram) строится график резуль-<| тата сложения входного сигнала с синусои-8 дой. Диапазон частот синусоиды и ее ампли-| туда задаются с помощью диалогового окна <§ пользователем. Результирующая картина ss строится в координатах «время-частота». ^g Амплитуда итогового сигнала определяется Л цветом построения. Построение происхо-2 дит в нижнем левом окне. Для удобства ана-Ц лиза диаграммы при нажатии на ней левой У и правой кнопкой мыши происходит выде-S ление области двумя вертикальными линия-;§ ми. При нажатии на них отображается ин-§ формация о точной частоте их построения. § Wavelet Spectrogram строит вейвлет-| спектрограмму с помощью одномерного не* прерывного (Continuous) или дискретного ■I (Discrete) вейвлет-преобразования. Вей-i? влет-спектрограмма представляет собой зависимость коэффициентов вейвлет-пред-ставления (масштаба) от времени. После
88
выбора метода пользователю предлагается ввести диапазон коэффициентов преобразования (масштабов) в качестве параметров вейвлет-преобразования. Пользователь может перейти от масштабирующих коэффициентов к частоте с помощью вышеописанных средств из меню Wavelet Tools.
Wavelet Approximation — это аппроксимация сигнала с помощью коэффициентов аппроксимации на уровне, задаваемом пользователем, с использованием структуры вейвлет-разложения для конкретного типа вейвлета. Построение итогового сигнала происходит в нижнем правом окне, а вей-влет-коэффициентов аппроксимации — в нижнем левом.
Rebuild From Wavelet Coefs — это восстановление сигнала из коэффициентов аппроксимации на уровне, задаваемом пользователем, с использованием структуры вейвлет-разложения для конкретного типа вейвлета. Для этого пользователю предлагается выбрать файл с коэффициентами, а также ряд параметров, необходимых для восстановления. Предусмотрена возможность нахождения коэффициентов и параметров в разных файлах. Построение итогового сигнала происходит в нижнем правом окне.
Cut Spectr — позволяет удалять из спектра сигнала (Spectral Power) диапазон частот, задаваемых пользователем. После удаления происходит процесс обратного преобразования в сигнал по измененному спектру. Построения производятся в двух верхних окнах.
Denoising — процедура автоматического удаления шума. Она выполняется с использованием ортогональных вейвлетов и включает в себя следующие операции:
1) вейвлет-разложение сигнала до уровня N, значение которого определяется частотным спектром информационной части сигнала;
2) задание типа и пороговых уровней очистки по известным априорным данным о характере шумов или по определенным
No2(14) 2008
критериям шумов во входном сигнале; пороговые уровни очистки могут быть гибкими (в зависимости от номера уровня разложения) или жесткими (глобальными);
3) модификация коэффициентов детализации вейвлет-разложения в соответствии с установленными условиями очистки;
4) восстановление сигнала на основе коэффициентов аппроксимации и модифицированных детализационных коэффициентов.
Все операции производятся автоматически, а необходимые параметры извлекаются из исходного сигнала.
3. Примеры обработки и анализа данных с помощью разработанной системы
3.1. Анализ солнечной активности
Проанализируем с помощью данной системы солнечную активность. Для анализа солнечной активности мы взяли значения ежедневного измерения чисел Вольфа с 1 января 1849 по 31 августа 2006 года (рис. 3), так как это период непрерывной ежедневной регистрации числа солнечных пятен [5].
Солнечные пятна, которые наблюдаются как темные пятна на Солнце, в основном используются для оценки солнечной активности. Температура в темных центрах солнечных пятен падает до 3700К (с 5700К на по-
Входной сигнал
2 3 Время (дни)
х10"
Рис. 3. Динамика изменения числа солнечных пятен (чисел Вольфа) с 01.01.1849 по 31.08.2006
Входной сигнал
2 3 4 Время (дни)
х 10
0 0,5 1
1,5 2 2,5 3 3,5 Частота (1/день)
X 10"'
Рис. 5. Спектральная плотность динамики чисел Вольфа для частот от 0 до 5-10—3 (1/день)
89
И 1 <3
SP eu
!
OQ OQ
Рис. 4. Аппроксимация динамики изменения чисел Вольфа (с 01.01.1849 по 31.08.2006) с помощью вейвлет-разложения (вейвлет Добеши с1Ь8, аппроксимация 9-го уровня)
верхности). Обычно они существуют несколько дней, а некоторые очень большие пятна — даже несколько недель.
Подадим в качестве входного сигнала статистику изменения чисел Вольфа (рис. 3). Видно, что в сигнале присутствует некоторая опорная составляющая. Выделим ее с помощью аппроксимации вейвлетом Добеши №8) 9-го уровня (рис. 4).
Для полученного таким образом сигнала построим график спектральной плотности (рис. 5).
Спектральная плотность
Ne2(14) 2008
х1Г
ю g
8 7 6 5 4 3 2 1 0
Спектральная плотность
MU
"S
! §
0,01 0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09 0,1 Частота (1/день)
Рис. 6. График спектральной плотности динамики чисел Вольфа для частот от 0 до 0,1 (1/день)
Здесь явно заметна периодичность сигнала с частотой 2,6 • 10"4 (1/день) и периодом 3846 дней (10,53 года).
Далее рассмотрим непосредственно исходный сигнал. Анализ показывает, что кроме вышеуказанной частоты также явно выделяется частота 3,67 • 10"2 (1/день) (период 27,2 дня) (рис. 6). Наличие этой частоты может быть объяснено синодическим
периодом обращения Солнца. Синодический (наблюдаемый с Земли) период вращения точек экватора Солнца составляет 27,3 дня.
С помощью такой методики можно выделить еще несколько значимых частот — 0,0732 (1/день) (13,66 дня — половина синодического периода), 5,05 • 10"4 (1/день) (5,42 года), 1,215 • 10"4 (22,55 года —полный цикл солнечной активности), 7 • 10"5 (1/день) (39,13 года).
Далее проведем вейвлет-анализ зависимости. Для этого построим вейвлет-спек-трограмму по всему временному диапазону сигнала (рис. 7). Видно, что около ранее выделенной частоты 2,6 • 10"4 (1/день) за последние 20 000 дней (55 лет) наблюдается некое повышение уровня всего сигнала, т.е. усиление солнечной активности.
Так как вейвлет-преобразование дает лучшие результаты для анализа локальных участков сигналов, рассмотрим изменение чисел Вольфа только за последние 13 000 дней (35 лет) (рис. 8).
Построим для этого участка вейвлет-спектрограмму (рис. 9). На ней замечаем
Входной сигнал
180
160
140
120
аз
S 100
S
с 80
m
< 60
40
20
0
■ ' ' ' ! ' ' ' ! , , , | ; , , . I , , ,
г\ fl
\
\ ( Л
i..........I \ ......v...
1 ! \
\ \ I .........À \
Л / \ I N \ ..........\ L\
, , , i , , , i , , , i i , , ,
10000 15000 20000 25000 30000 35000 40000 45000 50000 55000
Время (дни)
2000
4000
6000 8000 Время (дни)
10000 12000 14000
Рис. 7. Вейвлет-спектрограмма динамики изменения чисел Вольфа с 01.01.1849 по 31.08.2006 с пересчетом масштабирующей переменной (от 1000 до 7000) в частоту (вейвлет Добеши СЬ8)
90
Рис. 8. Аппроксимация динамики изменения чисел Вольфа (по времени с 01.03.1972 по 31.08.2006) с помощью вейвлет-разложения (вейвлет Добеши СЬ8, аппроксимация 9-го уровня)
Вейвлет-спектрограмма
4000 6000 8000
Время (дни)
Рис. 9. Вейвлет-спектрограмма динамики изменения чисел Вольфа с 01.03.1972 по 31.08.2006 с пересчетом масштабирующей переменной (от 1000 до 7000) в частоту (вейвлет Добеши СЬ8)
0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0
№2(14) 2008
Спектральная плотность
L_____ I ..J.....................:
1 . - L i 1 - L i i
500 1000
Частота (1/сек)
1500
Рис. 11. График спектральной плотности сигнала звуковой записи гласных звуков «а», «о», «и», «у» на интервале частот от 0 до 1000 Гц
I
I
<3
OQ OQ
постепенное повышение частоты циклов солнечной активности.
3.2. Анализ и обработка звуковых сигналов
Применим разработанную систему для анализа и обработки звуковых сигналов. На рис. 10-15 представлены результаты анализа гласных звуков, произнесенных человеком. Видно, что разные звуки имеют раз-
личные частотные составляющие, определяемые с помощью вейвлет-спектрограммы и периодограммы. Но с помощью вейвлет-спектрограммы можно также изучить и волновые особенности самого сигнала.
Проведем обработку звукового файла с зашумленным участком (рис. 14). Применим алгоритм очистки, описанный ранее. Здесь, благодаря удачному выбору типа вейвлета, удалось избавиться от нежела-
Входной сигнал
Вейвлет-спектрограмма
1 1,5 2 Время (сек)
Рис. 10. График сигнала звуковой записи гласных звуков «а», «о», «и», «у»
1,3605 1,8141
Время (сек)
2,2676 2,7211
Рис. 12. Вейвлет-спектрограмма звуковой записи гласных звуков «а», «о», «и», «у» с пересчетом масштабирующей переменной (от 0 до 100) в частоту (вейвлет Симлет эут5)
91
235353234853535391234853485348532348232353
Ne2(14) 2008
Спектрограмма
Аппроксимация с помощью вейвлет
10000
1 1,5 Время (сек)
Рис. 13. Периодограмма звуковой записи гласных звуков «а», «о», «и», «у» с использованием окна Кайзера шириной 500, высотой 5 и числом строк 512
0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2 Время (сек)
Рис. 15. Очищенный от шума с помощью вейвлет-разложения сигнал звуковой записи фразы с шумами (вейвлет Коифмана coif5, аппроксимация 3-го уровня)
Входной сигнал
с шумами на участке от 0,2 до 0,55 секунды
| тельного участка (рис. 15), оставив практи-g чески неизменном оставшуюся часть звука.
I 4. Заключение
§ В статье представлена и описана графи-| ческая интерактивная программа обработ-| ки и анализа данных Signal Analys System, J созданная в среде MatLab. Эта программа I содержит различные функции обработки 3 и анализа сигналов, основанные на спек-^ тральном и вейвлет-анализе. Она поддерживает данные, полученные из различных 92
источников и хранящиеся в различных форматах. Программа была применена для обработки и анализа различных входных сигналов и данных. Комбинирование в системе различных средств и математических алгоритмов дает возможность получить необходимую информацию об исследуемых сигналах. Программа может быть полезна для решения как учебных, так и широкого круга научно-исследовательских и инженерно-технических задач.
Список литературы
1. Давыдов А. В. Сигналы и линейные системы: Тематические лекции. Екатеринбург: УГГУ, ИГиГ, кафедра геоинформатики. Фонд электронных документов, 2006.
2. Давыдов А. В. Вейвлеты и вейвлетный анализ: Тематические лекции. Екатеринбург: УГГУ, ИГиГ, кафедра геоинформатики. Фонд электронных документов, 2005.
3. Дьяконов В. П. MATLAB 6.5 SP1/7 + Simulink 5/6. Обработка сигналов и проектирование фильтров. М.: СОЛОН-Пресс, 2005.
4. Консультационный центр MATLAB компании Softline. http://matlab.exponenta.ru
5. Официальный сервер National Oceanic & Atmospheric Administration (U.S. Department of Commerce). http://www.noaa.gov