【发布时间】:2015-01-08 22:11:00
【问题描述】:
我想在一个图中显示幅度和频率。它只显示两半。 (我的声音长度是 1 秒!)
fs_orig = 44100;
nbits = 16;
N=44100; %amount of samples???
[x1,fs_orig,nbits]=wavread('Mysong.wav');
[B2,A2] = butter(4,[5875 6500]/(fs_orig/2),'bandpass');
dataIn = x1; %your music
dataOut2 = filter(B2, A2, dataIn);
data_pow2 = dataOut2.^2;
X_mags2 = abs(fft(data_pow2));
bin_vals = [0 : N-1];
fax_Hz = bin_vals*fs_orig/N;
N_2 = ceil(N/2);
plot(fax_Hz(1:N_2), 20*log10(X_mags2(1:N_2)))
xlabel('Frequency (Hz)')
ylabel('Magnitude (dB)');
现在它仍然显示两边,有人知道为什么吗?
【问题讨论】:
-
X_mags2在您的代码中未定义。我假设这是存储频率分解的幅度。您能否更新您的代码以向我们展示该声明?考虑清理你的代码以消除一些无关的部分。我可以看到几行不会增加您的问题。 -
编辑了,使用rms和使用dataOut^2是一样的吧?
-
不,不幸的是。