收到有关函数参数的 MATLAB 错误

Receiving MATLAB Error Regarding Function Arguments

当 运行 我的 MATLAB 脚本在下面时,我不断收到一条错误消息:

  1. 使用 spa 时出错(第 147 行)
    window 的价值 大小必须是大于 2 的整数。

  2. "projectName" 错误 G = spa(xFunction2, x)

我已经尝试将多种类型的参数放入 "spa"(数据、window 大小、频率),但它仍然会产生相同的错误。帮助?

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

根据 spa 的文档,第一个参数是 iddata 类型。此外,时间序列必须是列向量。 因此,要使其正常工作,请将 G = spa(xFunction2,51); 更改为 G = spa(xFunction2(:),51);。要以正确的方式进行操作,请将您的时间序列转换为 iddata:

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

G = spa(myiddata,51);

此外,您应该使用spectrum(G)bode(G)绘制结果。