在下面运行我的MATLAB脚本时,我不断收到错误消息:
使用 spa 时出错(第147行)
窗口的值
size必须是大于2的整数。
“projectName”中的错误G = spa(xFunction2,x)
我尝试将多种类型的参数放入“spa”(数据,窗口大小,频率),但它仍会产生相同的错误。救命?
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));
答案 0 :(得分:1)
根据spa的文档,第一个参数是iddata
类型。此外,时间系列必须是列向量。
因此,要使其有效,请更改G = spa(xFunction2,51);
的{{1}}。要以正确的方式执行此操作,请将您的时间系列转换为G = spa(xFunction2(:),51);
:
iddata
此外,您应该使用Ts = 0.1; % what ever is your sampling time.
myiddata = iddata(xFunction2(:),[],Ts);
G = spa(myiddata,51);
或spectrum(G)
来绘制结果。