fwht

Быстрое Преобразование Уолша-Адамара

Описание

пример

y = fwht(x) возвращает коэффициенты дискретного Преобразования Уолша-Адамара входа x.

y = fwht(x,n) возвращает n- укажите дискретное Преобразование Уолша-Адамара.

y = fwht(x,n,ordering) задает упорядоченное расположение, чтобы использовать для возвращенных коэффициентов Преобразования Уолша-Адамара.

Примеры

свернуть все

Этот пример показывает простой входной сигнал и его Преобразование Уолша-Адамара.

x = [19 -1 11 -9 -7 13 -15 5];
y = fwht(x)
y = 1×8

     2     3     0     4     0     0    10     0

y содержит ненулевые значения в местоположениях 0, 1, 3, и 6. Сформируйте функции Уолша с sequency значениями 0, 1, 3, и 6, чтобы воссоздать x.

w0 = [1 1 1 1 1 1 1 1];
w1 = [1 1 1 1 -1 -1 -1 -1];
w3 = [1 1 -1 -1 1 1 -1 -1];
w6 = [1 -1 1 -1 -1 1 -1 1];
w = y(0+1)*w0 + y(1+1)*w1 + y(3+1)*w3 + y(6+1)*w6
w = 1×8

    19    -1    11    -9    -7    13   -15     5

Получите тот же результат путем извлечения ненулевых значений, и Уолш функционирует программно.

ww = fwht(eye(length(y)))*length(y)
ww = 8×8

     1     1     1     1     1     1     1     1
     1     1     1     1    -1    -1    -1    -1
     1     1    -1    -1    -1    -1     1     1
     1     1    -1    -1     1     1    -1    -1
     1    -1    -1     1     1    -1    -1     1
     1    -1    -1     1    -1     1     1    -1
     1    -1     1    -1    -1     1    -1     1
     1    -1     1    -1     1    -1     1    -1

nz = find(y);
w = sum(y(nz)'.*ww(nz,:))
w = 1×8

    19    -1    11    -9    -7    13   -15     5

Входные параметры

свернуть все

Входной сигнал в виде матрицы или вектора. Если x матрица, Быстрое Преобразование Уолша-Адамара вычисляется на каждый столбец x. fwht работает только с сигналами с длиной, равной степени 2. Если длина x меньше степени 2, ее длина дополнена нулями к следующей большей степени двойки перед обработкой.

Точки в дискретном Преобразовании Адамара Уолша в виде положительного ровного целочисленного скаляра. x и n должна быть та же длина. Если x более длинно, чем nX является усеченным. Если x короче, чем nX дополнен нулями.

Порядок коэффициентов Преобразования Адамара Уолша в виде 'sequency'Адамар или 'dyadic'. Чтобы задать упорядоченное расположение, необходимо ввести значение для длины n или, чтобы использовать поведение по умолчанию, задайте пустой вектор ([]) для n. Допустимые значения для упорядоченного расположения следующие:

Упорядоченное расположениеОписание
'sequency'Коэффициенты в порядке увеличения sequency значение, где каждая строка имеет дополнительное нулевое пересечение. Это - упорядоченное расположение по умолчанию.
'hadamard'Коэффициенты в нормальном порядке Адамара.
'dyadic'Коэффициенты в порядке Кода Грея, где одно битное изменение происходит от одного коэффициента до следующего.

Для получения дополнительной информации о функциях Уолша и упорядоченном расположении, смотрите Преобразование Уолша-Адамара.

Выходные аргументы

свернуть все

Дискретное Преобразование Уолша-Адамара, возвращенное как матрица или вектор.

Алгоритмы

Быстрый алгоритм Преобразования Уолша-Адамара похож на алгоритм Cooley-Tukey, используемый для БПФ. Оба используют структуру бабочки, чтобы определить коэффициенты преобразования. Смотрите ссылки для деталей.

Ссылки

[1] Beauchamp, Кеннет Г. Приложения Уолша и связанных функций: с введением в теорию Sequency. Лондон: Academic Press, 1984.

[2] Бир, Том. “Преобразования Уолша”. Американский Журнал Физики. Издание 49, 1981, стр 466–472.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

| | | |

Представленный в R2008b
Для просмотра документации необходимо авторизоваться на сайте