Wavelet Scattering Transform Errror

40 次查看(过去 30 天)
Erick Axel
Erick Axel 2024-12-13,6:04
编辑: Swastik Sarkar 2024-12-19,3:32
I am suing the waveletScattering function but I get the following error
Error using waveletScattering/gaborparameters For the specified 'SignalLength', 'InvarianceScale', and 'QualityFactors', the wavelet frequency standard deviation is too small. Try reducing the 'QualityFactor' value(s). Error in waveletScattering (line 170) ftables = gaborparameters(self);
The length of my signal is 8000 samples, the sampling frquency is 8 Khz, the invariance scales is 0.01/2 and Q = [15,1]
Below is the setting.
Fs = 8000; %% Sampling Frequency
invScale = 0.01/2; %% Invariance Scale
sf = waveletScattering('SignalLength',length(x),'InvarianceScale',invScale,'Boundary','periodic', ...
'SamplingFrequency',Fs,'QualityFactors',[10,1]); %% WST parameter setting
I want to know why this is happing from a methamatical point of view. I want to know in detail why is this happening and why by reducng Q = [9,1] it works.

回答(1 个)

Swastik Sarkar
Swastik Sarkar 2024-12-16,9:39
The error occurs because a high QualityFactor results in wavelets that are too narrowly focused in frequency, potentially violating the necessary conditions for stable wavelet scattering. Reducing the QualityFactor increases the wavelets' bandwidth, ensuring they are appropriately scaled relative to the highest wavelet center frequency.
The necessary condition is that the wavelet's frequency standard deviation must not be too narrow compared to the scaling function's frequency support to ensure numerical stability and effective signal representation.
Consider the following example:
  • Assume the center frequency of the mother wavelet is around 1 kHz.
  • With a QualityFactor (Q) of 15, the 3-dB bandwidth results in a very small frequency standard deviation (1000/15 = 66.7 Hz) relative to the highest wavelet center frequency.
  • The scaling function's frequency support is determined by the invariance scale. For an invariance scale of 0.005 seconds, the scaling function captures frequencies up to approximately 1/(2*0.005) = 100 Hz.
This is problematic because the frequency standard deviation is smaller than the scaling function's frequency support (66.7 Hz < 100 Hz).
By using a lower QualityFactor (Q = 9, Standard Deviation = 1000/9 = 111.11 Hz), the wavelet's frequency standard deviation becomes sufficiently large, satisfying the condition relative to the scaling function's frequency support. This adjustment ensures that the wavelets can effectively cover the necessary frequency range without becoming too narrow, thus resolving the error and allowing the wavelet scattering transform to operate correctly.
  4 个评论
Swastik Sarkar
Swastik Sarkar 2024-12-17,9:37
We are utilizing half the frequency in accordance with the Nyquist theorem. Unfortunately, I don't have the documentation to substantiate the formulas at the moment. Please note that the data I've used is merely a sample, and the actual data may differ significantly from this example.
Swastik Sarkar
Swastik Sarkar 2024-12-19,3:32
编辑:Swastik Sarkar 2024-12-19,3:32
Below is some documentation I found that might help clarify the mathematical conditions of the Wavelet Scattering Transform.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Continuous Wavelet Transforms 的更多信息

产品


版本

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by