Mah*_*ela 4 matlab signal-processing spectrogram
我有一个从 0.20 ms 到 0.40 ms 的音调突发信号。从 0 到 0.20ms 和从 0.40ms 到 3.27ms 它为零。我做了 fft 显示大约 25 kHz 的频率内容。fft 点数为 32768,这也是时域信号的长度。
我正在尝试使用以下代码片段在 Matlab 中绘制频谱图
nfft = 32768;
dT = 1e-6;
fs = 1/dT;
window = hamming(nfft)
spectrogram(signal,window,[],nfft,fs)
Run Code Online (Sandbox Code Playgroud)
使用这个我得到了准确的频率描述,但时间轴是一个问题。
放大时域信号:
25 kHz 时的频谱图:
您无法获得在时域和频域中均准确的表示。这就是 傅里叶变换的测不准原理。
您可以通过更改窗口长度来权衡时间和频率分辨率。比较下面的两个频谱图,它们是用不同的窗口长度获得的。信号(图 1)与您的问题中的信号类似。
% Define signal
fs = 500; % sampling frequency
t = 0:1/fs:6; % time axis
fm = 10; % signal (carrier) frequency
s = cos(2*pi*fm*t).* exp(-5*(t-2).^2);
figure
plot(t,s)
% Spectrogram with long window
figure
nfft = 500;
window = hamming(nfft);
spectrogram(s,window,[],nfft,fs), view([90 -90])
% Spectrogram with short window
figure
nfft = 50;
window = hamming(nfft);
spectrogram(s,window,[],nfft,fs), view([90 -90])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1186 次 |
| 最近记录: |