Научная статья на тему 'Эффективная программная реализация вейвлет-преобразования'

Эффективная программная реализация вейвлет-преобразования Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
161
57
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Балихин Д. М.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Эффективная программная реализация вейвлет-преобразования»

Р(Б)*, полученных с помощью комплекса ШЬР-МыШ.

Таким образом, предложенный алгоритм и созданный на его основе программный комплекс ЫЬР-МиШ обеспечивают получение из исходной матрицы результатов тестирования заданного количества бутстреп-матриц, обработку их с использованием методов математической статистики и теории латентных переменных, а также расчет предельных оценок латентных параметров индикаторов диагностических тестов в условиях ограниченного объема экспериментальных данных. Использование программного комплекса позволит повысить точность калибровки средств диагностики результатов образовательной деятельности

в учреждениях профессионального образования, обеспечить проведение мониторинга и повышение эффективности управления качеством образования.

Литература

1. Нейман Ю.М., Хлебников В.А. Введение в теорию моделирования и параметризации педагогических тестов. М.: Прометей, 2000. 169 с.

2. Елисеев И.Н. Исследование предельных оценок латентных переменных по выборкам малого объема // Методы и алгоритмы принятия эффективных решений: матер. Междунар. науч. конф. (МАПР-09). Таганрог, ТТИ ЮФУ, 2009. Ч. 2. С. 29-35.

3. Елисеев И.Н., Елисеев И.И., Фисунов А.В. Программный комплекс RILP-1 // Программные продукты и системы. 2009. № 2. С. 178-181.

УДК 519.688

ЭФФЕКТИВНАЯ ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ВЕЙВЛЕТ-ПРЕОБРАЗОВАНИЯ

Д.М. Балихин (Thomson Reuters, удаленный сотрудник, Торонто, Канада,

dmitry. [email protected])

В статье описывается реализация алгоритма одномерного дискретного вейвлет-преобразования для максимально быстрой обработки на современном компьютере. Предложены дальнейшие методы ускорения выполнения вейв-лет-преобразования на компьютере.

Ключевые слова: вейвлет-преобразование, алгоритм, реализация, методы, сигнал, звук, программа.

Вейвлет-преобразования используются для решения широкого класса задач, в которых анализируется нестационарный сигнал. Наиболее известны задачи, связанные со сжатием информации, подавлением шумов, обработкой и синтезом сигналов, анализом изображений, обработкой электрокардиограмм, анализом сейсмологических данных.

Для решения задач, в основе которых лежат вейвлет-преобразования, необходима быстрая компьютерная реализация алгоритма разложения и восстановления сигнала. Эффективная реализация алгоритма позволит применять вейвлет-преобразования в программах, работающих в режиме реального времени, например, для вейвлет-преобразования голосового трафика, идущего от Уо1Р--клиента.

Пусть имеется сигнал 8(1).

Определение. Вейвлет - это функция ф(11) 6 6 Ь2 (Е) с нулевым средним значением

+да

/ у £) dt = 0. (1)

—да

В результате масштабирования ф на величину т и сдвига на к получаем семейство таких функций (см. [1]):

л/ш

ft - ш

(2)

Пространство Ь2 (Е) можно описать через иерархические вложенные подпространства УтсЬ2(Е), т=0, ±1, ±2, ..., которые не пересекаются, а их объединение в пределе дает Ь2 (Е). Для пространства У0 существует функция ффеУ0, называемая масштабирующей, ее целочисленные сдвиги по аргументу образуют ортонормирован-ный базис пространства У0:

Фо,к=ф(1-к), к=0, ±1, ±2, ... (3)

При разложении функции на вейвлетные ряды для заданного уровня т используют функцию

да да да

«(1)= £ Ст,кфк№+ X Е От,к Утк№, (4)

к=—да т=—да к=—да

где Ст,к, Бт,к - аппроксимирующие и детализирующие коэффициенты вейвлет-преобразования.

Значения коэффициентов вычисляются следующим образом [2]: I* да

Ст,к= I вффткф Л, (5)

т —да

3(1)Утк(1)^ . (6)

/•а

Dm,k= J

а

Большинство используемых вейвлетов не имеют аналитического представления, и для практических расчетов достаточно знать не сами вейв-леты, а их коэффициенты И Набор коэффициентов И будет однозначно определять масштабирующую функцию ф(1) и материнский вейвлет:

Ф0) = 22Х2ф(21 - к) , (7)

к =0

N-1

V (0 = 2 £(-1) Ь^Ф (21 - к) =

N-1 к=0 (8)

= 2 ^ Ф(21 - к),

к=0

Ьк=<Ф(1),Ф(21-к)>, (9)

ёк = (-1)кЬК_1_к, (10)

где N - число коэффициентов фильтра.

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

Входом для алгоритма данных служит сигнал, что на практике означает использование массива данных исходных значений определенной длины N. По исходному сигналу строятся два сигнала длины N/2. Первый из них, аппроксимирующий, получается обработкой исходного сигнала фильтром коэффициентов Ик масштабирующей функции и прореживанием вдвое. Второй, детализирующий, возникает при наложении вейвлет-фильтра, то есть коэффициентов gk, и при прореживании вдвое. Для последующих разложений сигнала по уровням входом является аппроксимирующий сигнал.

Продолжительность процесса разложения зависит от длины начальных данных N и заданного уровня разложения.

Быстрое вейвлет-преобразование, или алгоритм Малла, можно реализовать с помощью умножения матрицы преобразования, составленной из коэффициентов масштабирующей функции, на вектор-столбец входных данных длины N. Матрица преобразования составляется следующим образом (для простоты возьмем вейвлет Добеши второго порядка - четырехточечный вейвлет).

Нечетные строки составляются из коэффициентов Ик - И0, И2, И3, то есть первые четыре элемента строки являются коэффициентами фильтра, остальные зануляются. Для каждой последующей нечетной строки коэффициенты Ик сдвигаются циклически влево на величину порядка вейвлета, в данном случае на 2.

Четные строки составляются из коэффициентов gk, порядок которых по формуле (9) таков - И3, -Ь2, Ь15 -И0. Для каждой последующей четной

строки коэффициенты gk сдвигаются аналогично на величину порядка вейвлета.

Матрица преобразования будет выглядеть следующим образом:

ho h, h hi 0 0 0 0 0 0

hi -h h, -ho 0 0 0 0 0 0

0 0 ho h, h hi 0 0 0 0

0 0 hi -h h, -ho 0 0 0 0

0 0 0 0

0 0 0 0 0 0 ho h, h hi

0 0 0 0 0 0 hi -h7 h, hi

h hi 0 0 0 0 0 0 ho h,

h, -ho 0 0 0 0 0 0 hi -h2

При умножении каждой нечетной строки на элемент вектора-столбца исходных данных будем получать аппроксимирующий коэффициент, в случае четных строк - детализирующий. Таким образом, операция вейвлет-разложения сведется к умножению матрицы фильтра размером NxN на вектор-столбец данных размером N. Эти операции есть не что иное, как два связных свертывания и прореживание вдвое. Для восстановления сигнала следует транспонировать матрицу преобразования и умножить на вектор-столбец, составленный из аппроксимирующих и детализирующих коэффициентов.

Число операций для вейвлет-преобразования не превышает числа операций для быстрого преобразования Фурье [3].

Алгоритм нахождения коэффициентов для любого натурального порядка вейвлета подробно описан в [2].

Предложенный в данной статье алгоритм можно эффективно запрограммировать на компьютере. Для этого необходимо следующее.

1. Помимо вычисления коэффициентов hk, нужно заранее вычислять коэффициенты gk. Это позволит сократить вычислительные операции.

2. Набор коэффициентов можно умножить на константу на этапе предвычислений. Это связано с тем, что существует стандартное значение для параметра в кратномасштабном анализе, равное 2.

3. Избегать неявных преобразований чисел. Например, на платформе .Net определен оператор умножения чисел типа int и double. Следовательно, если данные будут типа double, удастся избежать потери производительности, связанной с неявным преобразованием типов.

4. Создавать многопоточный код. Вейвлет-преобразование свелось к элементарному умножению матрицы на вектор. Данная задача легко распараллеливается, например, каждый поток будет высчитывать свой коэффициент. Число потоков зависит от числа ядер на процессоре. Обычный пользователь имеет 2 или 4 ядра на своем компьютере. Код должен использовать не менее четырех потоков для максимально быстрого выполнения на рядовом компьютере.

65536 131072 196608 262144 327680 393216 458752 524288

Рис. 1. Время выполнения по итерациям в один поток

Рис. 2. Время выполнения по итерациям в два потока

5. Использовать графические процессоры, например NVidia ^da. Задача отлично распараллеливается, и на нее не распространяются ограничения платформы CUDA. Ожидается повышение производительности на графических процессорах на порядок (http://benchmarkreviews.com/index.php7op-tion =com_content&task=view&id=18 7&Itemid=1).

Описанный алгоритм был реализован на платформе .Net.

Графики зависимости времени выполнения от количества итераций приведены на рисунках 1 и 2 (просчитывалось на процессоре Intel Core 2 Duo E7300 с тактовой частотой в 2,53 МГц). По оси абсцисс откладывается количество отсчетов в сигнале, по оси ординат - суммарное время выполнения прямого и обратного вейвлет-преобразований первого уровня в миллисекундах.

Количество отсчетов сигнала в секунду зависит от частоты выборки при записи звукового сигнала. Частота дискретизации показывает, насколько более точно передан сигнал в цифровом виде. Для записи музыки используют частоту дискретизации 44100 или 48000 Гц. Человеческий голос можно записывать с меньшей частотой -4000-8000 Гц без ощутимой потери качества. Таким образом, вейвлет-преобразование сигнала длительностью в одну секунду с частотой дискретизации в 8000 Гц будет выполняться 45 мс на одноядерном процессоре и менее 30 мс на двухъ-ядерном. Таким образом, во время вейвлет-пре-образования нагрузка на процесс будет менее 5 %. Это позволяет сделать вывод о том, что описанная реализация может применяться для задач, использующих вейвлет-преобразования, в режиме реального времени на достаточно нетребовательном компьютере либо на мобильной платформе.

Литература

1. Яковлев А.Н. Введение в вейвлет-преобразования: учеб. пособие. Новосибирск: Изд-во НГТУ, 2003. 104 с.

2. Давыдов А.В. Вейвлетные преобразования сигналов: курс лекций. URL: http://prodav.narod.ru/wavelet/ (дата обращения: 01.12.2010).

3. Введение в вейвлет-анализ: учеб.-практич. пособие / М.Н. Юдин, Ю.А. Фарков, Д.М. Филатов. М.: Моск. геолого-разв. акад., 2001. 72 с.

УДК 681.5

СИСТЕМА АВТОМАТИЗИРОВАННОЙ РАЗРАБОТКИ УЧЕБНО-МЕТОДИЧЕСКИХ КОМПЛЕКСОВ НА ОСНОВЕ МНОГОМЕРНЫХ ЛОГИЧЕСКИХ РЕГУЛЯТОРОВ

А. Ф. Антипин (Филиал Уфимского государственного нефтяного технического университета,

г. Стерлитамак, [email protected])

Предложена автоматизация процессов разработки и внедрения учебно-методических комплексов с помощью CASE-системы на основе многомерных логических регуляторов. Внедрение в алгоритм работы САЗЕ-системы многомерных логических регуляторов позволило сократить максимальное число продукционных правил и, как следствие, повысить быстродействие системы.

Ключевые слова: учебно-методический комплекс, СЛБЕ-система, многомерный логический регулятор, редактор тестов, редактор отчетов, механизм оценки знаний, продукционные правила.

Разработка учебно-методических комплексов (УМК) - одна из наиболее сложных и трудоемких

в учебном процессе задач. Для ее решения в Стер-литамакском филиале Уфимского государствен-

i Надоели баннеры? Вы всегда можете отключить рекламу.