gpt4 book ai didi

matlab - 如何绘制频谱图函数的结果?

转载 作者:太空宇宙 更新时间:2023-11-03 19:42:51 24 4
gpt4 key购买 nike

在我的图中,我有 2 个轴,第一个是信号的时间序列,第二个是信号的 ifft。我想添加一个包含信号频谱图的第三轴。我该怎么做?

% Create the raw signal
fs = 40;
t = 0:( 1/fs ):4;
y1 = [ sin( 2*pi*5*t( t<=2 ) ), sin( 2*pi*10*t( t>2 ) ) ];

% Compute the ifft of the signal
Fy1 = abs(ifft(y1));
N = numel(t);
idx = 1:numel(Fy1) / 2;
f = fs*(0:(N-1)) / N;

% Plot the raw signal as a time series
subplot(311);
plot(t,y1,'k');
xlabel('Time (s)');
ylabel('Amplitude');

% Plot the spectrum of the signal
subplot(312);
plot(f(idx),2*Fy1(idx),'k')
xlabel('Frequency (cycles/second)');
ylabel('Amplitude');

我尝试过使用 spectrogram 函数,但是我很难将其结果解释为图形。如何计算频谱图,以便我有时间沿 x 轴运行,振幅沿 y 轴运行?

最佳答案

您需要为 spectrogram 提供更多输入参数。你需要的函数形式是:

[S,F,T]=spectrogram(x,window,noverlap,F,fs)

参见 http://www.mathworks.com/help/signal/ref/spectrogram.html完整的文档,但基本上你需要定义:

  • windows:用于每个频谱估计计算的样本数
  • noverlap:频谱N中的频谱N-1的计算要包括多少个样本
  • F:您希望频谱评估的频率
  • fs:信号的采样频率。

然后绘制频谱图:

subplot(313);
imagesc( T, F, log(S) ); %plot the log spectrum
set(gca,'YDir', 'normal'); % flip the Y Axis so lower frequencies are at the bottom

注意:频谱图的质量可解释性取决于在频谱图函数中使用正确的输入.

关于matlab - 如何绘制频谱图函数的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13858807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com