【问题标题】:Can I adjust spectogram frequency axes?我可以调整频谱图频率轴吗?
【发布时间】:2012-10-09 20:45:46
【问题描述】:

MATLAB documentation examples for the spectrogram function 给出了频率轴设置为[0 500] 的示例。我可以将其更改为[0 100] 之类的内容吗?显然,运行axis 命令将为我执行此操作,但这会调整最终结果并“炸毁”结果图,使其像素化。我基本上是想构建一个仅查找 0-100 之间的频率的频谱图,而不是在构建频谱图后重新缩放。

这是该文档中的一个示例:

T = 0:0.001:2;
X = chirp(T,0,1,150);
spectrogram(X,256,250,256,1E3,'yaxis');

这会产生以下结果:

350Hz 以下的一切都不需要。有没有办法在构建频谱图时不包括 350 到 500 之间的所有内容,而不是事后调整轴?

【问题讨论】:

    标签: matlab spectrogram


    【解决方案1】:

    来自文档:

    [S,F,T] = spectrogram(x,window,noverlap,F) 使用频率向量 F,以 Hz 为单位。 F 必须是至少包含两个元素的向量。这种情况下使用 Goertzel 算法计算 F 中频率的频谱图。指定的频率四舍五入到与信号分辨率相称的最接近的 DFT bin。在使用 nfft 或 nfft 的默认值的所有其他语法情况下,使用短时傅立叶变换。返回的 F 向量是舍入频率的向量。 T 是计算频谱图的时间向量。 F的长度等于S的行数。T的长度等于k,定义如上,每个值对应每个段的中心。

    这对你有帮助吗?

    【讨论】:

    • 也许吧。我一直在仔细研究文档,试图了解该函数在做什么;我没有信号分析方面的背景,所以这对我来说都是全新的。您能否提供一个输出频谱图的示例?
    • @DangKhoa 抱歉,我面前没有 MATLAB。如果以后仍然无法解决,我会尝试为您制作一个。但是,这要说的是,如果您为其提供频率向量,例如 F = [1 10 20 50 100]; 并将其传递给 spectrogram 函数,它只会计算这些频率的频谱图(这就是您想要的,我认为)
    • 最终使用spectrogram(x,window,noverlap,F,fs, 'yaxis') 的形式来执行此操作。谢谢!
    • @DangKhoa 太棒了!很高兴它对你有用!如果您有时间,也许您可​​以在问题中发布一些示例代码,以帮助以后查看它的人。但是我什至没有时间打开matlab所以我不应该说呵呵
    • fs must be the fifth input to spectrogram. To input a sample rate and still use the default values of the preceding optional arguments, specify these arguments as empty, []. 来自较新的 Matlab 文档,以防有人也在搜索如何保留默认参数
    【解决方案2】:

    FFT 非常快,最好提高分辨率,然后丢弃不需要的数据。如果您需要更好的光谱分辨率(更多频率区间),则增加 FFT 大小。要在时间维度上获得更平滑的频谱,请增加 noverlap 值以减少每个后续 FFT 的增量。在这种情况下,您无需指定 F。如果 FFT 大小为 1024,那么您将获得 1024/2+1 个频率区间。

    FFTN = 512;
    start = 512*(350/500); % Only care about freq bins above this value
    WIN_SIZE = FFTN;
    overlap = floor(FFTN*0.8);
    [~,F,T,P] = spectrogram(y, WIN_SIZE, overlap, FFTN);
    f = 0:(length(F)-1);
    f = f*((Fs/2)/length(F));
    P = P(start:512,:);
    f = f(1,start:512);
    imagesc(T,f,10*log10(P),[-70 20]); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-14
      • 2016-11-16
      • 1970-01-01
      相关资源
      最近更新 更多