Audio 尝试用倍频程制作频谱

Audio 尝试用倍频程制作频谱,audio,octave,fft,spectra,Audio,Octave,Fft,Spectra,请帮助,每当我尝试调用函数grabacion时,都会出现以下错误: 错误:水平尺寸不匹配(32768x32768与1x1) 我真的对八度音阶一无所知,我的老师给我发了这个代码,但它不起作用,他一点也不帮我。我需要得到音频的能量密度和频率谱 function grabacion(fmax,Amax) % [x, rate] = audioread('prueba.wav'); % %fs=44100; % frecuencia de muestreo [mues

请帮助,每当我尝试调用函数grabacion时,都会出现以下错误:
错误:水平尺寸不匹配(32768x32768与1x1)
我真的对八度音阶一无所知,我的老师给我发了这个代码,但它不起作用,他一点也不帮我。我需要得到音频的能量密度和频率谱

function grabacion(fmax,Amax)
%
[x, rate] = audioread('prueba.wav');   
%   
%fs=44100;             % frecuencia de muestreo [muestras/segundo]
%ts=1/rate;              % tiempo de muestreo [segundos/muestras]
nsample = size(x, 1);   % [muestras]
nsample = pow2(nextpow2(nsample));  
x=[x;zeros(nsample - length(x)),1];  %genera un tamaño potencia de 2
%
%eje de frecuencias
dur = nsample / rate;  %duraci\'on [seg]
fs = 1 / rate;      %tasa de muestreo [seg]
t = 0:fs:dur;       %eje de tiempo [seg]
tam = length(t);    
f = (rate/2) * (1:tam/2) / (tam/2); %eje frecuencia [Hz]
N_min = round(nsample * 20 / rate) + 1;
N_max = round(nsample * fmax / rate) + 1;
f = f(N_min:N_max);
%
x = x .* hanning(length(x));
fftx = abs(fft(x));
fftx = fftx(N_min:N_max);
l = N_max - N_min + 1;
fft_x = 20 * log10(fftx);   %unidad en dB
%
% Espectro de densidad de energía  
figure;
subplot(2,1,1)
plot(f, fft_x', 'linewidth', 2);
set(gca, 'linewidth', 2, 'fontsize', 14);
axis([20 fmax 0 Amax]);
title(['Densidad Espectral de Energía'] );
xlabel(['Frecuencia [Hz]']);
ylabel(['Amplitud [dB]']);
grid;
%size(t)
nx=size(x,1);
subplot(2,1,2)
plot(t(1:nx),x', 'linewidth', 2);
set(gca, 'linewidth', 2, 'fontsize', 14);
%axis([20 fmax 0 Amax]);
title(['función en el tiempo [seg]',] );
xlabel(['Tiempo [seg]']);
ylabel(['Amplitud [V]']);
grid;
endfunction  

看来你该不该知道/学八度音阶?您是否尝试过设置
fmax
Amax
并在不调用函数的情况下一次运行一行代码?您可以使用
size
验证变量的维度
错误:audioread:无法打开输入文件'prueba.wav':系统错误:没有这样的文件或目录。