2016-10-26 1 views
0

Lors de l'exécution de mon script Matlab ci-dessous, je continue à avoir une erreur qui indique:Réception Erreur Matlab En ce qui concerne Les arguments de fonction

  1. erreur en utilisant spa (ligne 147)  
    La valeur de la fenêtre taille doit être un entier supérieur à 2.

  2. Error in "projectName"   G = spa (xFunction2, x)

J'ai essayé de mettre plusieurs types d'arguments dans "spa" (data, windowsize, frequency) mais cela donne toujours les mêmes erreurs. Aidez-moi?

n = 1:1024; 

%Signal Function 
xFunction = sqrt(10)*exp(j*2*pi*0.10*n)+ sqrt(20)*exp(j*2*pi*0.20*n) + sqrt(625); 

%Complex Noise Function 
zFunction = 0.707*randn(size(n)) + j*0.707*randn(size(n)); 

%Computing the value of x(n) + sqrt(625)*z 
xFunction2 = xFunction + sqrt(625)*zFunction; 

G = spa(xFunction2,51); 
figure(1); 
plot(w, 10*log10(G)); 

Répondre

1

Acording la documentation de spa le premier argument est le type iddata. De plus, la série temporelle doit être un vecteur de colonne. Donc, pour que cela fonctionne, changez G = spa(xFunction2,51); pour G = spa(xFunction2(:),51);. Pour ce faire la bonne façon, convertir votre temps série à iddata:

Ts = 0.1;   % what ever is your sampling time. 
myiddata = iddata(xFunction2(:),[],Ts); 

G = spa(myiddata,51); 

En outre, vous devez utiliser spectrum(G) ou bode(G) pour tracer le résultat.

+0

Bien que j'aie déjà travaillé dans MATLAB, je ne connaissais même pas le type "iddata" et que la série temporelle doit être un vecteur colonne pour que le spa fonctionne. Merci beaucoup pour votre aide Seba! Je l'apprécie grandement. –