waveletScattering

Время вейвлета, рассеиваясь

Описание

Используйте waveletScattering объект создать сеть в течение времени вейвлета, рассеивая разложение с помощью Габора (аналитический Morlet) вейвлет. Сеть использует вейвлеты и функцию масштабирования lowpass, чтобы сгенерировать представления низкого отклонения данных временных рядов с действительным знаком. Время вейвлета, рассеивая представления выражений, нечувствительные к переводам во входном сигнале, не жертвуя классом discriminability. Можно использовать представления в качестве входных параметров к классификатору. Можно задать длительность инвариантности перевода и количество фильтров вейвлета на октаву. Рассеивающаяся сеть также поддерживает время × канал × пакет (T×C×B) входные параметры.

Создание

Описание

пример

sf = waveletScattering создает сеть рассеивания времени вейвлета с двумя наборами фильтров. Первый набор фильтров имеет добротность восьми вейвлетов на октаву. Второй набор фильтров имеет добротность одного вейвлета на октаву. По умолчанию, waveletScattering принимает входную продолжительность сигнала 1 024 выборок. Длина масштабной инвариантности является 512 выборками. По умолчанию, waveletScattering использует периодические граничные условия.

пример

sf = waveletScattering(Name,Value) создает сеть для рассеивания вейвлета, sf, со свойствами, заданными одним или несколькими Name,Value парные аргументы. Свойства могут быть заданы в любом порядке как Name1,Value1,...,NameN,ValueN. Заключите каждое имя свойства в кавычки.

Примечание

За исключением OversamplingFactor, после создания вы не можете изменить значение свойства существующей сети рассеивания. Например, если у вас есть сеть sf с SignalLength из 2 000, необходимо создать вторую сеть sf2 для сигнала с 2 001 выборкой. Вы не можете присвоить различный SignalLength к sf.

Свойства

развернуть все

Длина сигнала в выборках в виде положительного целого числа ≥ 16. Если вход к рассеивающейся сети является вектором-строкой, SignalLength должен совпадать с количеством столбцов во входных данных. Если вход к рассеивающейся сети является вектор-столбцом, матрицей, или трехмерным массивом, SignalLength должен совпадать с количеством строк в данных.

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

Частота дискретизации в герц в виде положительной скалярной величины. Если незаданный, частоты находятся в циклах/выборке, и частота Найквиста ½.

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

Рассеивание преобразовывает шкалу инвариантности в виде положительной скалярной величины. InvarianceScale задает инвариантность перевода рассеивающегося преобразования. Если вы не задаете SamplingFrequency, InvarianceScale измеряется в выборках. Если вы задаете SamplingFrequency, InvarianceScale измеряется в секундах. По умолчанию, InvarianceScale половина SignalLength в выборках.

InvarianceScale не может превысить SignalLength в выборках.

Пример: sf = waveletScattering('SignalLength',1000,'SamplingFrequency',200,'InvarianceScale',5) имеет самый большой InvarianceScale.

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

Рассеивание набора фильтров Q факторы в виде положительного целого числа или вектора из положительных целых чисел. Набор фильтров Q фактор является количеством фильтров вейвлета на октаву. Добротности не могут превысить 32 и должны быть больше или быть равны 1.

Если QualityFactors задан как вектор, элементы QualityFactors должен строго уменьшаться.

Пример: sf = waveletScattering('QualityFactors',[8 2 1]) создает сеть рассеивания вейвлета с тремя наборами фильтров.

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

Предупредите, чтобы дополнительный метод применялся за пределами:

  • 'periodic' — Расширяйте сигнал периодически к длине 2^ceil(log2(N)), где N длина сигнала.

  • 'reflection' — Расширьте сигнал отражением к длине 2^ceil(log2(2 N)), где N длина сигнала.

Сигнал расширен, чтобы совпадать с длиной фильтров вейвлета. Длина фильтров является степенями двойки.

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

Точность рассеивающегося разложения:

  • 'double' Двойная точность

  • 'single' Одинарная точность

Все вычисления, включающие сеть рассеивания вейвлета, выполняются в Precision. Рассеивание вейвлета функционирует такой как featureMatrix и filterbank возвратите выходные параметры те, которые просачиваются Precision. Точность выхода scatteringTransform функция не превышает точность sf.

Примечание

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

  • Определение Precision как 'single' при конструкции особенно полезно в генерации кода, потому что это избавляет от необходимости создавать дополнительную копию рассеивающихся наборов фильтров.

Сверхдискретизация фактора в виде неотрицательного целого числа или Inf. Фактор задает, насколько рассеивающиеся коэффициенты сверхдискретизированы относительно критически прореженных значений. Фактор находится по шкале log2. По умолчанию, OversamplingFactor установлен в 0, который соответствует очень важной субдискретизации коэффициентов. Можно использовать numCoefficients определить количество коэффициентов, полученных для рассеивающейся сети. Чтобы получить полностью неподкошенное рассеивающееся преобразование, установите OversamplingFactor к Inf.

Установка OversamplingFactor к значению, которое привело бы к большему количеству коэффициентов, чем выборки, эквивалентно установке OversamplingFactor к Inf. Увеличение OversamplingFactor значительно увеличивает вычислительную сложность и требования к памяти рассеивающегося преобразования.

Пример: если sf = waveletScattering('OversamplingFactor',2), рассеивающееся преобразование возвращает 22 времена как много коэффициентов для каждого пути к рассеиванию относительно критически произведенного номера.

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

Если вы задаете OptimizePath как true, рассеивающееся преобразование исключает рассеивающиеся пути порядка 2 и больше, которые не удовлетворяют следующему критерию: центральная частота минус ½ пропускная способность на 3 дБ вейвлета просачивается (i +1) th, набор фильтров должен перекрыться 0 (DC) плюс ½, пропускная способность на 3 дБ вейвлета просачивается i th набор фильтров. Если этому критерию не удовлетворяют, путь высшего порядка исключен. Установка OptimizePath к истине может значительно сократить количество рассеивающихся путей и вычислительную сложность рассеивающегося преобразования для большинства сетей.

Можно использовать paths определить, который и сколько рассеивающихся путей вычисляется.

Функции объекта

scatteringTransformВейвлет 1D рассеивание преобразовывает
featureMatrixРассеивание матрицы функции
logНатуральный логарифм рассеивающегося преобразования
filterbankВремя вейвлета, рассеивая наборы фильтров
littlewoodPaleySumСумма Литлвуда-Палей
scattergramВизуализируйте рассеивание или scalogram коэффициенты
centerFrequenciesВейвлет, рассеивающий полосу пропускания, сосредотачивает частоты
numordersКоличество рассеивания порядков
numfilterbanksКоличество рассеивания наборов фильтров
numCoefficientsКоличество коэффициентов рассеивания вейвлета
pathsРассеивание сетевых путей

Примеры

свернуть все

Создайте сеть рассеивания времени вейвлета со значениями по умолчанию.

sf = waveletScattering
sf = 
  waveletScattering with properties:

          SignalLength: 1024
       InvarianceScale: 512
        QualityFactors: [8 1]
              Boundary: 'periodic'
     SamplingFrequency: 1
             Precision: 'double'
    OversamplingFactor: 0
          OptimizePath: 0

Постройте фильтры вейвлета, используемые в первых и вторых наборах фильтров.

[filters,f] = filterbank(sf);
plot(f,filters{2}.psift)
title('First Filter Bank')
xlabel('Cycles/Sample')
ylabel('Magnitude')
grid on

Figure contains an axes. The axes with title First Filter Bank contains 41 objects of type line.

figure
plot(f,filters{3}.psift)
title('Second Filter Bank')
xlabel('Cycles/Sample')
ylabel('Magnitude')
grid on

Figure contains an axes. The axes with title Second Filter Bank contains 7 objects of type line.

Постройте суммы Литлвуда-Палей наборов фильтров.

[lpsum,f] = littlewoodPaleySum(sf);
figure
plot(f,lpsum)
legend('1st Filter Bank','2nd Filter Bank')
xlabel('Cycles/Sample')
grid on

Figure contains an axes. The axes contains 2 objects of type line. These objects represent 1st Filter Bank, 2nd Filter Bank.

В этом примере показано, как создать и применить сеть рассеивания времени вейвлета с тремя наборами фильтров к данным.

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

load handel
disp(['Data Sampling Frequency: ',num2str(Fs),' Hz'])
Data Sampling Frequency: 8192 Hz
sf = waveletScattering('SignalLength',numel(y),...
    'SamplingFrequency',Fs,...
    'QualityFactors',[4 2 1])
sf = 
  waveletScattering with properties:

          SignalLength: 73113
       InvarianceScale: 4.4625
        QualityFactors: [4 2 1]
              Boundary: 'periodic'
     SamplingFrequency: 8192
             Precision: 'double'
    OversamplingFactor: 0
          OptimizePath: 0

Смотрите сеть. Постройте фильтры вейвлета, используемые в третьем наборе фильтров.

[filters,f] = filterbank(sf);
plot(f,filters{4}.psift)
title('Third Filter Bank')
xlabel('Hertz')
ylabel('Magnitude')
grid on

Постройте суммы Литлвуда-Палей этих трех наборов фильтров.

[lpsum,f] = littlewoodPaleySum(sf);
figure
plot(f,lpsum)
xlabel('Hertz')
grid on
legend('1st Filter Bank','2nd Filter Bank','3rd Filter Bank')

Вычислите вейвлет 1D преобразование рассеивания данных для sf. Визуализируйте scattergram scalogram коэффициентов для первого набора фильтров.

[S,U] = scatteringTransform(sf,y);
figure
scattergram(sf,U,'FilterBank',1)

Вопросы совместимости

развернуть все

Ошибки, запускающиеся в R2021a

Поведение изменяется в R2021a

Ссылки

[1] Andén, Джоуким и Стефан Маллэт. “Глубоко Рассеивание Спектра”. Транзакции IEEE на Обработке сигналов 62, № 16 (август 2014): 4114–28. https://doi.org/10.1109/TSP.2014.2326991.

[2] Mallat, Стефан. “Рассеивание Инварианта группы”. Коммуникации на Чистой и Прикладной математике 65, № 10 (октябрь 2012): 1331–98. https://doi.org/10.1002/cpa.21413.

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

Введенный в R2018b