我正尝试在scilab中编写一个程序,以使用公共或花园FFT对.WAV文件进行频率分析,并针对不同的窗口函数将响应与Welch周期图的响应进行比较和对比。 br />
但是,当我尝试运行该程序时,它在第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)
答案 0 :(得分:0)
all是一个列表,因此所有(j + i + times:M)都指向一组不能添加到标量tmpp的元素