2015-03-26 2 views
0

J'utilise Morlet ondelettes pour l'analyse en ondelettes continue de mes données dans MATLAB. Mais la fréquence centrale de l'ondelette par défaut est 5 où comme je le voulais 6. Donc, j'ai utilisé une méthode différente pour construire l'ondelette désirée en utilisant la fonction psicône d'influence dans les spectres de puissance ondelette de Morlet dans Matlab

[psi, x] = cmorwavf (Lb, Ub, n5, fb, fc)

Après convolution Je reçois le spectre de puissance ondelettes. Mais je suis bloqué à COI, c'est-à-dire au cône d'influence.

j'ai découvert zéro padding est nécessaire et après que je peux utiliser conofinf. Mais ce 'conofinf' a besoin d'une chaîne d'ondelettes par défaut.

Je pose donc les questions suivantes: 1. Comment mettre à zéro mes données pour l'analyse en ondelettes (s'il existe une méthode particulière)? 2. Comment puis-je spécifier le COI dans mes spectres de puissance d'ondelettes?

Toute aide sera géniale !!

Répondre

2

Le rembourrage à zéro n'est pas obligatoire, mais il est recommandé. Habituellement, vous mettez votre signal à la puissance suivante de deux plus grande que la longueur de votre signal. Vous pouvez le faire manuellement, quelque chose comme:

newSignal = [zeros(1,floor(n)), oldSignal, zeros(1,ceil(n))];

n est la longueur de remplissage de zéros requis divisé par deux:

n = (2^nextpow2(length(oldSignal)) - length(oldSignal))/2;

Il ne doit pas nécessairement être des deux côtés; il peut être rembourré à partir de la droite. Il ne devrait pas non plus être un remplissage nul; il peut être symétrique, répétitions etc., quoi de mieux pour réduire les effets de bord. Vous pouvez en savoir plus sur le remplissage de signal, par ex. this paper, dans la section 2.

Vous devez être prudent avec zéro (et tout type de) rembourrage, il introduit également des artefacts, par exemple zéro rembourrage réduit la puissance sur les bords.

padding zéro n'a rien à voir avec conflits d'intérêts. Vous devriez être capable de le calculer même sans remplissage nul.

L'utilisation Matlab de conofinf est très pratique, mais puisque vous ne pouvez pas le faire ce que vous pouvez essayer de calculer conflits d'intérêts par vous-même en utilisant la formule dans l'aide de Matlab:

|t-u| <= sB

où u est le paramètre de traduction de l'ondelette, s est le paramètre d'échelle et [-B, + B] est le support effectif de l'ondelette.

Fondamentalement, cela signifie que sur les bords de te transformée en ondelettes (aux instants t1 et tendent) COI est égale à la moitié de la longueur d'onde élémentaire à chaque échelle. Vous le calculez pour chaque échelle et tracez point par point.

Dernière note: quel que soit le type de rembourrage que vous choisissez, vous ne devriez pas oublier de couper dans l'ondelette résultant de transformation (après avoir calculé le COI).

Espérons que ça aide.