Метод фазового кодирования (частотная область)

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

Фазовое кодирование, когда оно может быть использовано, является одним из наиболее эффективных методов по критерию отношения сигнал/воспринимаемый шум. Существенное изменение соотношения фаз между каждыми частотными составляющими приводит к значительному рассеиванию фазы. Тем не менее, до тех пор, пока модификация фазы в достаточной мере мала, может быть достигнуто скрытие, неощутимое на слух. Разумеется, модификация считается малой по отношению к конкретному наблюдателю, поскольку специалисты по спектральному анализу способны обнаружить те изменения, которые непрофессионалу могут показаться незначительными.

Процедура фазового кодирования заключается в следующем:

1. Звуковая последовательность Метод фазового кодирования (частотная область) - student2.ru разбивается на серию N коротких сегментов (блоков) Метод фазового кодирования (частотная область) - student2.ru — рис. 5.66, а, б.

2. К n-му сегменту сигнала Метод фазового кодирования (частотная область) - student2.ru применяется K-точечное ДПФ, где K=I/N, и создаются массивы фаз Метод фазового кодирования (частотная область) - student2.ru и амплитуд Метод фазового кодирования (частотная область) - student2.ru для Метод фазового кодирования (частотная область) - student2.ru (рис. 5.66, в).

3. Запоминается разность фаз между каждыми соседними сегментами для Метод фазового кодирования (частотная область) - student2.ru (рис. 5.66,г):

Метод фазового кодирования (частотная область) - student2.ru (5.59)

4. Двоичная последовательность данных представляется как Метод фазового кодирования (частотная область) - student2.ru или Метод фазового кодирования (частотная область) - student2.ru , отображая, соответственно, "1" или "0" (рис. 5.66, д): Метод фазового кодирования (частотная область) - student2.ru

5. С учетом разности фаз воссоздается новый массив фаз для n> 1 (рис. 5.66, е).

Метод фазового кодирования (частотная область) - student2.ru (5.60)

6. Восстановление звукового сигнала осуществляется путем применения операции обратного ДПФ к исходной матрице амплитуд и модифицированной матрице фаз (рис. 5.66, ж, з).

Перед процессом расшифровывания должна быть проведена синхронизация последовательности. Приемной стороне должны быть известны длина сегмента, точки ДПФ и интервал данных. Значение основной фазы первого сегмента определяется как "0" или "1", которые представляют закодированную двоичную последовательность.

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

Метод фазового кодирования (частотная область) - student2.ru

(а )Исходный сигнал

Метод фазового кодирования (частотная область) - student2.ru

(б) Разбитие 5 на N сегментов

Метод фазового кодирования (частотная область) - student2.ru

(в) Выделение амплитуды и фазы каждого сегмента

Метод фазового кодирования (частотная область) - student2.ru

(г) Вычисление разности фаз между соседними сегментами Метод фазового кодирования (частотная область) - student2.ru

Метод фазового кодирования (частотная область) - student2.ru

(д) Для сегмента 5, создается искусственная абсолютная фаза Метод фазового кодирования (частотная область) - student2.ru

Метод фазового кодирования (частотная область) - student2.ru

(е) Для всех остальных сегментов создаются новые массивы фаз Метод фазового кодирования (частотная область) - student2.ru

Метод фазового кодирования (частотная область) - student2.ru

(ж) Новая фаза и исходная амплитуда объединяются для получения нового сегмента S

Метод фазового кодирования (частотная область) - student2.ru

(з) Новые сегменты объединяют вместе для получения "заполненного" сигнала-контейнера

Рис. 5.66. Блок-схема фазового кодирования

Разброс фаз — искажение, вызванное нарушением корреляции фаз между каждой из частотных составляющих. Уменьшение разброса фаз ограничивает скорость передачи данных при фазовом кодировании. Одной из причин разброса фаз можно назвать замещение фазы Метод фазового кодирования (частотная область) - student2.ru двоичным кодом. Для уменьшения искажений, значение модифицированной фазы должно быть близким к ее первичному значению. А для того чтобы снизить чувствительность встроенных данных к шуму, должна увеличиваться разность между структурами модифицированной фазы. Для этого, например, биту "0" может отвечать значение Метод фазового кодирования (частотная область) - student2.ru , а биту "1" — значение Метод фазового кодирования (частотная область) - student2.ru .

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

На рис. 5.67 изображены резкие переходы фазы в сравнении со сглаженными. Крутые фронты фазовых переходов вызывают значительные искажения контейнера (а); уровень искажения уменьшается, если фронты были предварительно сглажены (б).

Метод фазового кодирования (частотная область) - student2.ru

Рис. 5.67. Сравнение резких и сглаженных переходов фазы

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

Недостатком схемы, построенной на основе метода фазового кодирования, является низкая пропускная способность. В экспериментах [14] ПС канала варьировалась от 8 до 32 бит/с в зависимости от звукового контекста.

Нами предлагается следующая реализация метода фазового кодирования.

Шаг 1

Импортируем файл исходного аудиоконтейнера в массив квантованных амплитуд дискретных отсчетов документа MathCAD:

С := READWAV ("C.wav").

Скрываемые данные будем вносить в первый канал исходного звукового файла: Метод фазового кодирования (частотная область) - student2.ru .

Количество элементов в указанном канале-контейнере: I:= rows(S), І= 20191; i:= 1 ..I. Временная диаграмма первого канала ИКМ сигнала изображена на рис. 5.63.

Шаг 2

Допустим, скрытию подлежит сообщение следующего содержания:

М := "© Пузыренко А.Ю., 2005 г.".

Битовая длина сообщения: LM := 8 strlen(M), LM = 200 бит.

Шаг 3

Проведем разбиение звуковой последовательности на сегменты. Количество сегментов N определяется длиной К отдельного сегмента. Как будет в дальнейшемпоказано, параметр К должен быть результатом возведения двойки в степень Метод фазового кодирования (частотная область) - student2.ru , где Метод фазового кодирования (частотная область) - student2.ru — целое число, зависящее от длины LM скрываемого сообщения. При этом биты информации будут заноситься в массив фаз, полученный в результате вычисления для сегмента быстрого преобразования Фурье (БПФ).

Отмеченный массив имеет размерность вдвое меньшую размерности сегмента, для которого проводилось вычисление БПФ. Следовательно, значение параметра Метод фазового кодирования (частотная область) - student2.ru можно найти из решения неравенства Метод фазового кодирования (частотная область) - student2.ru , откуда

v:=cell(tog(LM,2) + 1),

где log(z, 2) — стандартная запись вычисления логарифма по основанию 2 от аргумента z; функция сеil(х) возвращает наименьшее целое, которое превышает или равняется аргументу х.

Результатом решения при LM = 200 будет Метод фазового кодирования (частотная область) - student2.ru =9. Следовательно, Метод фазового кодирования (частотная область) - student2.ru (степень увеличена на единицу для уменьшения искаженности контейнера после внедрения в него скрываемой информации). При этом К= 1024; k:=1..K.

Определим количество сегментов N, на которое необходимо разбить последовательность аудиоданных: N := ceil(l/K), N = 20; n := 1..N; l/К= 19,718. 1

Если целое значение N превышает результат отношения l/К, то контейнер необходимо расширить. Например, путем дописывания в конец вектора-сигнала нулей — (М. 109).

Метод фазового кодирования (частотная область) - student2.ru

Таким образом, новое значение I:= rows(S), I=20480. Окончательно определившись с основными размерностями, проведем разбиение первичной звуковой последовательности S, используя программный модуль (М. 110).

Метод фазового кодирования (частотная область) - student2.ru

Схема разбиения приведена на рис. 5.68

Метод фазового кодирования (частотная область) - student2.ru

Рис. 5.68 Сигнал Метод фазового кодирования (частотная область) - student2.ru , разбитый на N сегментов Метод фазового кодирования (частотная область) - student2.ru

Шаг 4

С помощью встроенной в MathCAD функции FFT(V) выполняем БПФ для данных, записанных в векторе-аргументе V. Последний должен содержать Метод фазового кодирования (частотная область) - student2.ru элементов, где Метод фазового кодирования (частотная область) - student2.ru — целое число. Результатом выполнения функции является вектор размерностью Метод фазового кодирования (частотная область) - student2.ru

В нашем случае, в качестве аргумента функции БПФ будут выступать векторы отдельных сегментов sn (М. 111, а).

Метод фазового кодирования (частотная область) - student2.ru

Каждый n-й элемент полученного в результате массива а содержит подмассив из Метод фазового кодирования (частотная область) - student2.ru элементов, которые представляют собой продукт вычисления БПФ для сегмента sn.

Используя известные зависимости, получаем массивы амплитуд и фаз — (М.111 б,в).

Запись вида Метод фазового кодирования (частотная область) - student2.ru означает операцию векторизации — выполнение заданной операции Метод фазового кодирования (частотная область) - student2.ru для всех элементов массива V.

В качестве примера, приведем результат вычисления (первые 15 элементов) для 1-го сегмента (рис. 5.69).

S1=     Метод фазового кодирования (частотная область) - student2.ru                    
                 
-8   -16.17i Метод фазового кодирования (частотная область) - student2.ru   16.171   3.142   -16.17i Метод фазового кодирования (частотная область) - student2.ru
-1   -16.039-0.37i Метод фазового кодирования (частотная область) - student2.ru   16.043   -3.118   -16.039-0.37i Метод фазового кодирования (частотная область) - student2.ru
  -16.548-0.428i   16.554   3.116   -16.548-0.428i
  -11.696+0.936i   11.773   3.062   -11.696+0.936i
  -22.515+1.469i   22.562   3.076   -22.515+1.469i
  -18.979-1.948i   19.078   -3.039   -18.979-1.948i
  -18.442-2.908i   18.670   -2.985   -18.442-2.908i
-1   -18.062-2.386i   18.219   -3.010   -18.062-2.386i
-4   -13.601-1.661i   13.702   -3.020   -13.601-1.661i
-5   -21.488-11.192i   24.228   -2.661   -21.488-11.192i
-7   -21.555-1.861i   21.635   -3.055   -21.555-1.861i
-7   -16.348-1.132i   16.387   -3.072   -16.348-1.132i
-12   -17.928-7.227i   19.329   -2.758   -17.928-7.227i
-8   -20.536-6.973i   21.687   -2.814   -20.536-6.973i
-11   -22.17-4.883i   22.701   -2.925   -22.17-4.883i

Рис. 5.69 Пример вычисления программных модулей (М.110) и (М.111)

На рис. 5.70 представлена графическая интерпретация амплитудного и фазового массивов для первого сегмента.

Шаг 5

С помощью программного модуля (М.112) сохраняем информацию о разнице фаз между каждыми соседними сегментами

Метод фазового кодирования (частотная область) - student2.ru

Рис. 5.70 Пример выделенного амплитудного сегмента s1

Метод фазового кодирования (частотная область) - student2.ru

На рис. 5.71 проиллюстрирован результат вычисления разности фаз между вторым и первым сегментами.

Метод фазового кодирования (частотная область) - student2.ru

Рис. 5.71 Пример вычисления разности фаз между сегментами s1 и s2

Шаг 6

С помощью программного модуля (М.113), учитывая разность фаз Метод фазового кодирования (частотная область) - student2.ru , воссоздаем новую матрицу фаз. При этом двоичную последовательность, в которую предварительно преобразовываем скрываемые данные, встраиваем как значение фазы, которое равняется Метод фазового кодирования (частотная область) - student2.ru , если скрывается бит "1" и Метод фазового кодирования (частотная область) - student2.ru , если скрывается бит "0". Результат вычисления модуля, на примере новых фаз сегментов s1 и s2, приведен на рис. 5.72.

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

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

Метод фазового кодирования (частотная область) - student2.ru

Метод фазового кодирования (частотная область) - student2.ru

Рис. 5.72. Результаты встраивания данных в фазовый спектр сегмента S1 (а),вычисления новых значений фаз спектра сегмента S2 (б), проверки разности фаз между спектрами сегментов S2 и S1 (в)

Шаг 7

Восстанавливаем сегменты путем применения обратного БПФ (ОБПФ) к n исходным массивам амплитуд (Аn) и модифицированным массивам фаз Метод фазового кодирования (частотная область) - student2.ru — программный модуль (М.114). При этом используем встроенную функцию ОБПФ вида IFFT(W), где вектор W должен содержать [(К/2) + 1]элементов. Результатом выполнения функции является вектор V, количество элементов в котором равняется К.

Метод фазового кодирования (частотная область) - student2.ru

Результат объединения приведен на рис. 5.73 (напомним, что в данном случае нами было скрыто 200-битовое сообщение).

Метод фазового кодирования (частотная область) - student2.ru

Рис. 5.73 Сигнал, восстанавливаемый по сегментам Метод фазового кодирования (частотная область) - student2.ru при объеме скрытого сообщения 200 бит

На рис. 5.74 изображен восстановленный звуковой сигнал, в случае скрытия в нем 512-битового сообщения при сохранении неизменной длины сегмента (К = 1024). Очевидно, что в данном случае уровень скрытости конфиденциального сообщения является недопустимо низким.

Метод фазового кодирования (частотная область) - student2.ru

Рис. 5.74 Сигнал, восстанавливаемый по сегментам Метод фазового кодирования (частотная область) - student2.ru при объеме скрытого сообщения 512 бит

Шаг 8

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

Метод фазового кодирования (частотная область) - student2.ru

В результате появляется возможность объединить массивы обоих каналов в общий массив: СМ := augment(S’, С2) и, в конечном итоге, провести запись в файл:

WRITEWAV("CM_Phase.wav", fД, Q) := СМ

Шаг 9

Рассмотрим алгоритм извлечения скрытой информации. На основе аудиофайла, представляющего собой заполненный стеганоконтейнер, формируем массив квантованных амплитуд дискретных отсчетов1

СМ* = READWAV("CM_Phase wav").

Получателю должны быть известны длина каждого из сегментов (в нашем случае — К*:= 1024); точки БПФ, в которые встраивались данные; алгоритм встраивания данных (канал, в который вносилась информация, метод ее внесения и т.п.)

Пусть известно, что скрытые данные могут содержаться в первом канапе. Следовательно, S*=СМ*<1> Общее количество элементов в указанном контейнере: l*=rows(S*), l*= 20480 Количество сегментов, на которое необходимо разделить контейнерN*=l */К*, N*=20

В соответствии с программным модулем (МЛ.110) проводим разбитие звуковой последовательности S* на сегменты s*n.

Для первого сегмента вычисляем БПФ и определяем массив фаз:

Метод фазового кодирования (частотная область) - student2.ru

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

В качестве значения порога не рекомендуется использовать строгое равенство Метод фазового кодирования (частотная область) - student2.ru , поскольку аудиофайл в процессе передачи может претерпеть определенные изменения. Кроме того, операции БПФ возвращают значения, округленные в некотором приближении. Исходя из этого, для "смягчения" критериев поиска порог рекомендуется несколько снизить (в нашем случае был установлен уровень Метод фазового кодирования (частотная область) - student2.ru ). При значении фазы, меньшем отрицательного значения порога, принимается решение о скрытом бите "1", в случае значения фазы, которое превышает положительный порог, делается вывод о скрытии бита "0".

Метод фазового кодирования (частотная область) - student2.ru

Если анализируемый аудиофайл содержит скрытую фазовым методом информацию, результатом выполнения модуля (МЛ 17) будет строка символов: М* = М. Рассчитанные показатели звукового искажения сведены в табл. 5|6(стр. 231).

Наши рекомендации