exponenta event banner

waveletScattering

Вейвлет-временное рассеяние

Описание

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

Создание

Описание

пример

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

пример

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

Примечание

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

Свойства

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

Длина сигнала в выборках, заданная как положительное целое число ≥ 16. Если вход в сеть рассеяния является вектором строки, SignalLength должно соответствовать количеству столбцов во входных данных. Если вход в сеть рассеяния является вектором столбца, матрицей или 3-D массивом, 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 (false).

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

Вы можете использовать paths чтобы определить, какой и сколько путей рассеяния вычислено.

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

scatteringTransformВейвлет 1-D преобразование рассеяния
featureMatrixМатрица элементов рассеяния
logНатуральный логарифм преобразования рассеяния
filterbankБанки фильтров вейвлет-временного рассеяния
littlewoodPaleySumСумма Литтлвуд-Пейли
scattergramВизуализация коэффициентов рассеяния или скалограммы
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.

Постройте график сумм Littlewood-Paley банков фильтров.

[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

Постройте график сумм Littlewood-Paley трех банков фильтров.

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

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

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

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

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

Ошибки, начинающиеся с R2021a

В R2021a изменилось поведение

Ссылки

[1] Анден, Йоаким и Стефан Маллат. «Спектр глубокого рассеяния». Транзакции IEEE по обработке сигналов 62, № 16 (август 2014 г.): 4114-28. https://doi.org/10.1109/TSP.2014.2326991.

[2] Маллат, Стефан. «Инвариантное рассеяние групп». Сообщения по чистой и прикладной математике 65, № 10 (октябрь 2012): 1331-98. https://doi.org/10.1002/cpa.21413.

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

.
Представлен в R2018b