【问题标题】:Spectrogram Matlab频谱图 Matlab
【发布时间】:2013-05-05 13:26:55
【问题描述】:

我在matlab中有如下代码:

[Sound Fs bits] = wavread('a.wav');

现在我必须使用函数谱图并绘制它(我必须为函数谱图提供以下参数:Sound 和 Fs,并且该函数应该返回一个带有信号频率成分的向量和一个带有计算成分的频率)。

我的疑问是:我如何使用这些规范的功能?有人可以帮我吗?

【问题讨论】:

  • 您尝试了哪些方法,遇到了哪些问题?如果您不知道如何开始,那么您需要更具体地了解您的困难是什么。
  • 所以我做了:[Sound Fs bits] = wavread('a.wav');现在我必须用幅度和频率做一个图,我必须从频谱图中得到频率,我正在尝试类似:[S,F,T] = 频谱图(声音,Fs),它一直在说:段的长度不能大于输入信号的长度。而且我不知道其他方法可以做到这一点。我想做的是: plot(frequences_of_the_signal,amplitude_of_the_signal) 这个解释清楚了吗?抱歉英语不好,不是我的母语

标签: matlab spectrogram


【解决方案1】:

spectrogram 函数在其第二个参数中期望一个向量窗口参数(如果提供)。您需要为直到并包括Fs 的所有参数提供值。但是这些参数可以选择为空,所以你可以这样做:

[S, F, T] = spectrogram(Sound, [], [], [], Fs);
% Sample rate is the fifth argument        ^^

虽然请注意,要正确使用此功能,您确实应该了解其余参数的作用/含义...(我不打算在这里解释它们;您可以就该主题编写整本书,并且确实有很多人)

【讨论】:

  • 嗯,我明白了,现在如果我要使用 plot 函数,会是:plot(F, S) 还是 plot(F, Sound)?
  • plot(F, S) 将绘制您的频谱图,plot(F, Sound) 毫无意义,因为F 是频率向量,Sound 在时域中...
  • 是的,我想通了。我想就是这样。还有一件事:如果我在matlab上写:spectrogram(Sound, [], [], [], Fs) 它会显示一个数字,但如果我这样做: plot(F, S) 它会显示一些不同的东西,这是正常的?如果是,有什么区别?
  • 注意坐标轴标签:spectrogram 不带输出参数将以 dB / Hz 为单位(要转换,您可以使用 10 * log10(S))。
猜你喜欢
  • 2017-09-08
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 2013-07-25
  • 2019-11-09
  • 2012-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多