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)');
它看起來不錯,但情節是部分畫成負分貝。有人能告訴我如何正確繪製以分貝爲單位的頻譜?