Несовместимый выходной аргумент.[Scilab] - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь написать программу в scilab для проведения частотного анализа файла .WAV с использованием обычного БПФ и сравнить и сопоставить отклик с периодограммой Уэлча для различных оконных функций.
Но когда я пытаюсь запустить программу, она выдает ошибку Incompatible output argument в строке 35.

Я думал, что это потому, что числа не совпадают, но я сделал математику, и все должно выстроиться.Если у кого-то есть идеи, почему эта ошибка продолжает появляться, это было бы очень полезно.

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)

1 Ответ

0 голосов
/ 23 ноября 2018

all - список, поэтому all (j + i + times: M) указывает на набор элементов, которые нельзя добавить в скаляр tmpp

...