How to plot the large set of fft matrices , no. of matrices is i.
1 次查看(过去 30 天)
显示 更早的评论
回答(1 个)
Walter Roberson
2012-2-4
This appears to be the same question as your http://www.mathworks.com/matlabcentral/answers/27995-plot-matrices . I proposed a method there a number of hours ago. If that method was not satisfactory then you should indicate more clearly what you would like to see.
Remember, a mesh is a 3D plot, so if you are going to plot a series of meshes, you need to decide how you want each one to appear relative to the other.
8 个评论
Walter Roberson
2012-2-4
Assuming your array of fft results is named "a" as in your earlier fft question, and assuming that it is the third dimension that selects the plot number, as in that earlier question:
aabs = abs(a);
maxmag = max(aabs(:)) * 1.03; %3 percent spacing between plots
numplots = size(a,3);
zoff = 0;
for P = 1 : numplots
mesh(aabs(:,:,K) + zoff);
hold on
zoff = zoff + maxmag;
end
Note: if your data matrices have not each been normalized to have a mean of 0, then the maximum magnitude for any one fft() is quite likely going to occur at fft output bin index 1, which will have a value of the mean of the signal multiplied by the number of points in the signal (e.g., the total energy that the mean contributes.) For typical non-normalized signals, this first bin will be hundreds of times the rest of the coefficients, giving a spike there that makes everything else hard to see.
The code I gave here assumes that you know what you are doing and will *not* attempt to squish those peaks. The code will space the meshes in Z by a constant Z increment to the base, such that there is no possible Z overlap in drawing the meshes.
If you prefer a different spacing strategy, you can adjust the maxmag calculation.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Spectral Measurements 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!