основа

Хаар 1D вейвлет преобразовывает

Синтаксис

[a,d] = haart(x)
[a,d] = haart(x,level)
[a,d] = haart(___,integerflag)

Описание

пример

[a,d] = haart(x) возвращает коэффициенты приближения, a, и коэффициенты детали, d, 1D Хаара, который преобразовывает дискретный вейвлет. Вход x может быть одномерными или многомерными данными. level по умолчанию зависит от длины x.

пример

[a,d] = haart(x,level) получает Преобразование Хаара вниз к заданному уровню.

пример

[a,d] = haart(___,integerflag) задает, как Преобразование Хаара обрабатывает данные с целочисленным знаком, с помощью любого из предыдущих синтаксисов.

Примеры

свернуть все

Получите Преобразование Хаара вниз к максимальному уровню по умолчанию.

load wecg;
[a,d] = haart(wecg);

Получите Преобразование Хаара многомерного набора данных временных рядов данных о потреблении электричества вниз к уровню 4. Данные signals транспонированы так, чтобы каждые временные ряды были в столбце, а не строке.

load elec35_nor;
signals = signals';
[a,d] = haart(signals,4);

Получите Преобразование Хаара и обратное Преобразование Хаара данных о сердечном ритме ECG. Данные составлены из целых чисел только.

Загрузите и отобразите данные о ECG на графике.

load BabyECGData;
plot(times,HR)
xlabel('Hours')
ylabel('Heart Rate')
title('ECG Data')

Получите Преобразование Хаара. Затем получите обратное Преобразование Хаара, аппроксимированное на уровне 5. Шкала для этого уровня составляет 512 секунд, который является 25 времена интервал выборки (16 секунд).

[a,d] = haart(HR,'integer');
HaarHR = ihaart(a,d,5,'integer');

Сравните восстановленные данные с исходными данными.

figure;
plot(times,HaarHR)
xlabel('Hours')
ylabel('Heart Rate')
title('Haar Approximation of Heart Rate')

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

свернуть все

Входной сигнал, заданный как вектор или матрица действительных значений. Если x является вектором, это должна быть даже длина. Если x является матрицей, каждый столбец должен быть даже длиной, и haart работает с каждым столбцом x.

Максимальный уровень, к которому можно выполнить Преобразование Хаара, заданное как положительное целое число. Значение по умолчанию зависит от длины входного сигнала, x.

  • Если длина x является степенью двойки, Преобразование Хаара получено вниз, чтобы выровнять log2(length(x)).

  • Если длина x даже, но не степень двойки, Преобразование Хаара получено вниз, чтобы выровнять floor(log2(length(x)/2)).

Если level равняется 1, коэффициенты детали, d, возвращены как вектор или матрица, в зависимости от того, является ли вход вектором или матрицей, соответственно.

Обработка данных с целочисленным знаком, заданная или как 'noninteger' или как 'integer'. 'noninteger' не сохраняет данные с целочисленным знаком в Преобразовании Хаара, и 'integer' сохраняет его. Опция 'integer' применяется, только если все элементы входа, x, являются целыми числами. Для входа с целочисленным знаком haart возвращает коэффициенты вейвлета с целочисленным знаком. И для 'noninteger' и для 'integer', однако, алгоритм Преобразования Хаара использует арифметику с плавающей точкой. Тип данных выходных параметров a и d, всегда double.

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

свернуть все

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

Типы данных: double

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

Типы данных: double

Введенный в R2017b