2015-12-06 2 views
0

Je suis essayer de calculer CWT (transformée en ondelettes continue) d'un signal 1-D en utilisant la commande cwt il faut 3 arguments d'entréeondelettes continue transformer en Matlab

  1. x - l'entrée 1-D digne.
  2. échelles - échelles est un vecteur 1-D avec des éléments positifs.
  3. wavename - c'est le nom d'ondelette qui est intégré dans matlab.

retourne une matrice sans. de lignes égal à la longueur du vecteur d'échelle. Nombre de colonnes égal à la longueur du vecteur d'entrée x. Maintenant, je veux une parcelle de l'échelle logarithmique par rapport à la courbe de coefficient coefficient tout en prenant l'échelle logarithmique Je finis par obtenir un zéro. et par conséquent la commande cwt ne répond pas (c'est-à-dire) qu'elle donne un message d'erreur après le petit code.

clc;clear all 
load vonkoch 
vonkoch=vonkoch(1:510); 
len = length(vonkoch); 
scale=0.01:0.01:1;logscale=log(scale); 
cw1 = cwt(vonkoch,scale,'mexh','plot'); 
title('Continuous Transform, absolute coefficients.') 
ylabel('Scale') 
[cw1,sc] = cwt(vonkoch,scale,'mexh','scal'); 
title('Scalogram') 
ylabel('Scale') 

et le message d'erreur est

Error using cwt (line 74) 

Invalid Value for Scales ! 

Error in exmp1 (line 6) 

cw1 = cwt(vonkoch,logscale,'mexh','plot'); 

suggèrent Veuillez ce que je peux faire pour éviter un tel problème ou est-il une autre commande qui peut faire l'affaire?

+0

Bienvenue sur StackOverflow. Vous pouvez modifier votre code pour refléter le fait que vous appelez 'cwt' avec' logscale'. – zeeMonkeez

Répondre

1

Si je vous comprends bien, ce que vous voulez faire est la suivante:

[cw1,sc] = cwt(vonkoch,scale,'mexh','scal'); 
ph = pcolor(1:len,scale,sc); 
ph.EdgeColor = 'none'; 
set(gca, 'YScale', 'log');