2013-04-11 1 views
-1

У меня есть матрица данных fft с течением времени, 8192 строк данных x 600 столбцов времени. Первый столбец является меткой частоты, первая строка показана ниже, но на самом деле не существует в файле данных, а также пробелы, они показаны просто для удобства чтения.перевести matlab plot в gnuplot 3d

Frequency, Sec1, Sec2, Sec3...Sec600 
1e8,  -95, -90, -92 
1.1e8, -100, -101, -103 
... 

Она построена в MATLAB с помощью следующего кода (Apologies на другие плакаты, я захватил неправильный код Matlab)

х матрица 8192 строк на 600 столбцов, Р массив частотных меток, FrameLength = 1, figN = 3

function [] = TimeFreq(x,f,FrameLength,figN) 


[t,fftSize] = size(x); 
t = (1:1:t) * FrameLength; 

figure(figN); 
mesh(f,t,x) 
xlabel('Frequency, Hz') 
ylabel('time, sec') 
zlabel('Power, dBm') 
title('Time-Freq Representation') 

Я наклоняю достаточно выяснить, как заставить его работать в Gnuplot. Вот пример изображения того, как он выглядит в Matlab: http://imagebin.org/253633

+0

Хм ... код MATLAB это наверняка что-то еще. – yuk

+0

Более воспроизводимый пример облегчит вам помощь. – Thor

+0

Нет изображения, чтобы увидеть .... – NKN

ответ

0

так вот скрипт команды gnuplot, который я использовал. В нем есть некоторые дополнительные элементы, которые не были в оригинальном сюжете Matlab, но все необходимое.

set term png size 1900,1080 
set datafile separator "," 
set pm3d 

# reverse our records so that time moves away from our perspective of the chart 
set xrange[*:*] reverse 

# hide parts of the chart that would make the 3d view look funny 
set hidden3d 

# slightly roate our perspective and compress the z axis 
set view 45,75,,0.85 

set palette defined (-120 "yellow", -70 "red", -30 "blue") 
set grid x y z 
set xlabel "time (secs)" 
set ylabel "frequency" 
set zlabel "dBm" 

# plot all the data 
set output waterfall.png 
splot 'waterfall.csv' nonuniform matrix using 1:2:3 with pm3d lc palette 
0

Чтобы сделать эту работу в gnuplot, вам нужно взглянуть на команду splot (для «поверхности»). Вы, наверное, можно понять довольно много о нем просто, выполнив следующие команды в терминале:

$ gnuplot 
gnuplot> help splot 

В частности, вы хотите, чтобы прочитать справочную страницу, показанную работает (после того, как выше, когда просит подсказку для подтема): datafile. Это должно сказать вам достаточно, чтобы вы начали.

Кроме того, ответы на вопросы this question могут быть полезны.

+0

Если вам нужно больше, я получил кучу хитов, которые казались разумными в Google для «матрицы файлов данных 3D-графики gnuplot» - стоит сделать снимок =) –