Как изменить тики по оси X спектрограммы?

Скажем, у меня есть пример сигнала, который представляет собой простой массив 1x1001. Я нанес его на обычный линейный график рядом со спектрограммой (см. ниже). Теперь, как вы можете видеть, ось x линейного графика выражена относительно длины сигнала. Как я могу разделить эту ось X со спектрограммой? К сожалению, решение, предложенное здесь: https://stackoverflow.com/questions/28676100/set-the-same-ticks-range-for-each-subplots-x-axis не работает, и человек, который дал мне ответ, посоветовал мне создать новый, конкретная тема.

Во всяком случае, вот мой код с рабочим примером:

t = 0:0.001:1; % time in milliseconds
f0 = 100;
f1 = 400;               
signal = chirp(t, f0, 1, f1, 'q', [], 'convex');

frequencies = 0:.1:500;
window = 256;
NFFT = 255;

figure;
p1 = subplot(2, 1, 1);
spectrogram(signal, window, NFFT, frequencies, 1E3, 'yaxis'); 
axis xy; axis tight; colormap(jet); view(0,90);
xlabel('Time');
ylabel('Frequency (Hz)');

p2 = subplot(2, 1, 2);
plot(signal);
xlabel('Time (ms)');
ylabel('Amplitude (uV)');

введите здесь описание изображения

Отметки по оси x спектрограммы должны находиться в диапазоне от 0 до 1000.

Заранее спасибо.


person bluevoxel    schedule 23.02.2015    source источник


Ответы (1)


Вот решение, включающее XTickLabel (для вставки после вашего первого сюжета):

Xlim = get(gca, 'xlim');
set(gca, 'XTick', linspace(Xlim(1), Xlim(2), 7);
set(gca, 'XTicklabel', 0:100:1200);

Лучший

person Ratbert    schedule 23.02.2015