0

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

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

  2. “项目名称”中的错误 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)); 
4

1 回答 1

1

根据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)orbode(G)来绘制结果。

于 2016-10-26T22:55:16.840 回答