How can a make a CSD plot with a 3D matrix

1 回表示 (過去 30 日間)
arteyeiii
arteyeiii 2016 年 12 月 31 日
コメント済み: Image Analyst 2016 年 12 月 31 日
For my thesis project I am making the analysis of signals I get when a sample gets irradiated by a pulsed laser and I make from 10 to 500 pulses for sample so it's a lot of data. For each pulse a signal of the milisecond order is recorded in wfm format and then converted to ascii. I already have a program that performs the FFT for each signal and then makes a waterfall plot with all the signals, so i have (frequency, pulse number, amplitude) for axis like the figure shows.
This is for ten pulses and it is not easy too see how the frequency changes with pulse number (since the peaks interfere) and when it's for 500 it gets worse. So what I would like to know if it is possible to make a CSD plot from the 3D matrix like this:
but that intead of having the time axis I have pulse number. For the examples I've seen for this it's necessary to make a grid but this requires integrer data and my data is decimals so I would really appreciate the help and ideas.

回答 (1 件)

Image Analyst
Image Analyst 2016 年 12 月 31 日
Why is the grid needed? I say that because you can get the grid with pcolor() but the reason I don't like it is that it doesn't show you the last row and column. So I'd use imshow() which is better especially for large arrays where the grid lines could obscure the actual data. You can also put in XData and YData so that the axes tick labels are what you want, instead of in pixels.
  2 件のコメント
arteyeiii
arteyeiii 2016 年 12 月 31 日
I don't understand if I already hace the data why would I use imshow() to extract the information... it's an honest question I have not used this command before
Image Analyst
Image Analyst 2016 年 12 月 31 日
You have the data. I assume that is the information you want, and you just need to display it. Is there other information there that you need to extract, like the area fraction of data greater than some value, or the mean value of data in some region that you define? If so you'll need to do image analysis on the data. If not, then just display it
[rows, columns] = size(data);
frequencyVector = linspace(0, 11000, columns);
timeVector = linspace(0, 5, rows);
imshow(data, [], 'XData', frequencyVector, 'YData', timeVector);
axis on;

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSpectral Measurements についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by