Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 这个STFT图的解释是什么?_Matlab_Signals_Signal Processing_Fft_Matlab Figure - Fatal编程技术网

Matlab 这个STFT图的解释是什么?

Matlab 这个STFT图的解释是什么?,matlab,signals,signal-processing,fft,matlab-figure,Matlab,Signals,Signal Processing,Fft,Matlab Figure,这是一张STFT图,我从信号中得到的。我使用了以下命令: figure(1) stft(signals,500000,'Window',kaiser(256,5),'OverlapLength',220,'FFTLength',512); 我使用了Matlab2019b 我的困惑是因为在STFT图上,我看到负震级-20DB。通常在matlab central的示例中,我发现了所有具有正量级的内容,并且对我有意义。然而,对于我的样本信号,我感到困惑。采样频率为500000次 我添加了 文件以供

这是一张STFT图,我从信号中得到的。我使用了以下命令:

figure(1)
stft(signals,500000,'Window',kaiser(256,5),'OverlapLength',220,'FFTLength',512);
我使用了Matlab2019b

我的困惑是因为在STFT图上,我看到负震级-20DB。通常在matlab central的示例中,我发现了所有具有正量级的内容,并且对我有意义。然而,对于我的样本信号,我感到困惑。采样频率为500000次

我添加了

文件以供使用

如果有人能引导我了解这里发生的事情,那将非常有帮助

此外,我还添加了原始时域信号

还有频域!

在标准FFT中,振幅有时被称为振幅,但通常不按对数缩放。在您的情况下,它以dB显示,即10*lg(A)。因此,负dB值表示非常低的振幅(-70dB=10^(-70/10)=00000001和-20dB=0,01)。因此,这只是一个缩放的问题。你的原始信号是什么样子的?我猜它的振幅也很低

现在来看看你的图表:看起来你是一个时不变的信号,因此,没有必要执行STFT。进行FFT并查看振幅。它们应该在相同的——非常小的——范围内

已编辑添加到更新的帖子:

好的。你看你的信号是

  • 稳定=>无需STFT和
  • 振幅小=>以dB为单位的负振幅
    然而,整个信号的FFT表明振幅高达16dB。这只是乍一看是矛盾的。如果你把STFT的振幅加起来,你会得到相同的振幅。。。几乎是因为信号长度较小(频率分辨率=1/T_信号),所以频率分辨率较差。

    我已将原始信号添加到mat文件中。samplesignal.mat回答问题,太快了!谢谢。您应该发布绘图,而不是数据。人们对下载数据持怀疑态度+这需要他们先打开MATLAB才能查看;)我编辑了问题,并添加了数字:)