【问题标题】:Receiving MATLAB Error Regarding Function Arguments接收有关函数参数的 MATLAB 错误
【发布时间】:2017-03-09 10:56:39
【问题描述】:

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

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

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

【问题讨论】:

    标签: matlab analysis spectral


    【解决方案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)bode(G) 来绘制结果。

    【讨论】:

    • 虽然我之前在 MATLAB 中做过一些工作,但我什至不知道“iddata”类型,时间序列必须是列向量才能使 spa 工作。非常感谢您对 Seba 的帮助!非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 2017-10-10
    • 2013-07-22
    相关资源
    最近更新 更多