【问题标题】:Incompatible output argument. [scilab]不兼容的输出参数。 [scilab]
【发布时间】:2018-11-22 11:01:24
【问题描述】:

我正在尝试在 scilab 中编写一个程序,以使用 common-or-garden FFT 对 .WAV 文件进行频率分析,并将响应与不同窗口函数的 Welch 周期图的响应进行比较和对比。 但是当我尝试运行该程序时,它在第 35 行给了我一个Incompatible output argument 错误。

我以为是因为数字没有对齐,但我做了数学计算,一切都应该对齐。如果有人对为什么会不断弹出此错误有任何想法,那将非常有帮助。

nsecs = 5;
Fs = 44100;
N = nsecs*Fs;

n = linspace (0, N-1, N)

f1 = 1440;
f2 = 1570;

y = 1.2*sin(2*%pi*f1*n/N).*cos (2*%pi*f2*n/N)
y = y + 0.2*rand(1, N)


M = 128
Nn = 13844
HnWin = window( 'hn', Nn )

times = 20
all = list()
xn = zeros( 1, Nn/2)
tmpp = 0

for i = 1:Nn
     tmp = y(1:Nn)
     ztmp = fft(tmp.*HnWin)/Nn
     all($+1) = ztmp
end

for i = 1:length(all)/(M-times)
    for j = 1:M
        if i==0 then
            tmpp = tmpp + all(j:M)
        else
            tmpp = tmpp + all(j+i+times:M)
        end
    end
    xn(i,:) = tmpp/M
    times = times + 1
end

for i = 1:length(xn)
    avg = avg + xn(i)
end

avg = avg/length(xn)

【问题讨论】:

    标签: scilab


    【解决方案1】:

    all 是一个列表,所以 all(j+i+times:M) 指向一组不能添加到标量 tmpp 的元素

    【讨论】:

    • 我对 scilabs 还很陌生,所以你刚才所说的对我来说没有任何意义。你有什么建议让它发挥作用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 2015-09-30
    • 2011-06-19
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    相关资源
    最近更新 更多