1
我以分贝和赫兹绘制正确的FFT幅度谱信号时遇到了麻烦。在Matlab中绘制FFT幅度谱信号
首先,我只是情节赫兹这样的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)');
它看起来不错,但情节是部分画成负分贝。有人能告诉我如何正确绘制以分贝为单位的频谱?