【发布时间】:2015-11-09 04:13:18
【问题描述】:
我无法以分贝和赫兹为单位绘制正确的 FFT 幅度谱信号。
首先,我只是以 Hz 和幅度为单位绘制 FFT 频谱信号,如下所示:
figure;
X_mags = abs(fft(signal));
bin_vals = [0 : N-1];
freq_ax_bins = bin_vals*fs/N;
N_2 = ceil(N/2);
plot(freq_ax_bins(1:N_2), X_mags(1:N_2));
title('FFT Spectrum signal 1');
xlabel('Frequency (Hz)')
ylabel('Magnitude');
这会导致幅度始终 > 0 的预期图。最后,我只想做同样的事情,但以分贝为单位:
bin_vals = [0 : N-1];
freq_ax_Hz = bin_vals*fs/N;
N_2 = ceil(N/2);
figure;
plot(freq_ax_Hz(1:N_2), 10*log10(X_mags(1:N_2)));
xlabel('Frequency (Hz)')
ylabel('Amplitude (dB)');
看起来不错,但该图部分绘制为负 dB。有人可以告诉我如何正确绘制以分贝为单位的频谱吗?
【问题讨论】: