绘制频谱图

Plotting the spectrogram

注意:这道题不是关于使用spectrogram函数,它涉及数据表示。

我设计了自己的函数来计算频谱图,因为我需要针对输入类型和参数的自定义解决方案。它工作得很好,但我在制作输出图时遇到了尴尬。

目标是使用例如surf(X,Y,Z) x,y 轴照常表示时间和频率。我有一个矩阵 spectg,其中包含频谱图系数、向量 f(频率)和向量 t(时间)。

能否请您分享绘制此代码的代码。 meshgrid 我错过了一些非常简单的东西 - 可能今天过得很糟糕......

谢谢!

您的情况甚至不需要 meshgrid。来自documentation,

surf(x,y,Z) and surf(x,y,Z,C), with two vector arguments replacing the first two matrix arguments, must have length(x) = n and length(y) = m where [m,n] = size(Z). In this case, the vertices of the surface patches are the triples (x(j), y(i), Z(i,j)). Note that x corresponds to the columns of Z and y corresponds to the rows.

例如:

s = randi(10,4,5); %// example data
x = 10:10:50; %// example x, of length size(s,2);
y = 21:24; %// example y, of length size(s,1);
surf(x,y,s)

给予