2016-10-26 1 views
0

Wenn unter meinem MATLAB-Skript ausgeführt wird, halte ich erhalte eine Fehlermeldung, die besagt:Empfangen von MATLAB Fehler hinsichtlich Funktionsargumente

  1. Fehler mit spa (Linie 147)  
    Der Wert des Fensters Größe muss eine ganze Zahl größer als 2

  2. Fehler in "Projektname"   G = spa (xFunction2, x)

Ich habe versucht, mehrere Arten von Argumenten in "Spa" (Daten, Fenstergröße, Häufigkeit) zu setzen, aber es führt immer noch den gleichen Fehler (s). Hilfe?

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)); 

Antwort

1

die Dokumentation von spa das erste Argument Acording ist iddata Typ. Außerdem muss die Zeitserie ein Spaltenvektor sein. Also, damit es funktioniert, ändern Sie G = spa(xFunction2,51); für G = spa(xFunction2(:),51);. Um es die richtige Art und Weise zu tun, wandeln Sie Ihre Zeit-Serie, zu iddata:

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

G = spa(myiddata,51); 

Darüber hinaus sollten Sie spectrum(G) oder bode(G) um das Ergebnis plotten.

+0

Obwohl ich bereits einige Arbeiten in MATLAB gemacht habe, wusste ich noch nicht einmal vom Typ "iddata" und dass die Zeitreihe ein Spaltenvektor für Spa sein muss, um zu arbeiten. Vielen Dank für Ihre Hilfe Seba! Ich schätze es sehr. –