2010-10-22 3 views
0

Я собираюсь представить свою работу, которую я создал в MATLAB, но мне трудно манипулировать моими данными в презентабельной форме с использованием функции plot.Необходимая справка по графику в MATLAB

Мой код выглядит следующим образом:

[inputname, pathname] = uigetfile('*.wav', 'Select WAV-file'); 

thumb1 = inputname;    %# Get filename information 
fprintf('\n%s is being turned into a 30s thumbnail...\n', thumb1); 
fprintf('Please wait..!\n\n'); 
%# load the signal 
[y, fs, nb] = wavread(thumb1); 
y = mean(y,2);        %# stereo, take avrg of 2 channels 

%# Calculate frame energy 
fWidth = round(fs*10e-3);     %# 10ms 
numFrames = floor(length(y)/fWidth); 
energy = zeros(1,numFrames); 
for f=1:numFrames 
    energy(f) = sum(y((f-1)*fWidth+1:f*fWidth).^2); 
end 

В основном я хочу, чтобы построить энергию дорожки с течением времени (в секундах).

plot(energy) 

почти делает то, что я требую, но у меня есть необычное количество пустого пространства в конце дорожки, которая не присутствует в файле .wav alt text. Это пустое пространство - главная проблема, которая у меня есть. В идеале я хотел бы, чтобы ось x отображалась в секундах! Любая помощь приветствуется.

edit1:

Используя первый предложенный метод:

alt text

ответ

1

Там также

axis tight 

, который устанавливает «жесткие» ограничения на оси. См. Doc:

+0

Это сработало очень хорошо, спасибо. – Velocity

1

По умолчанию Matlab использует некоторые эвристические правила для выбора пределов графа весов. Вы можете переопределить их с помощью функций xlim и ylim (например, xlim([0 length(energy)])).

Если вы хотите построить против фактического времени, вы можете сделать что-то вроде:

t = (0:length(energy)-1)/fs; % Timebase in seconds 
plot(t, energy); 
+0

Это все еще не совсем то, что я ищу, я боюсь. Я обновил исходное сообщение с тем, как он выглядит, используя ваше предложение. – Velocity

+0

@Mark: Не сделал ли 'xlim' то, что вы хотите? –

+0

Извините, я полностью застеклен над этой частью. Я приношу извинения. @ Предложение Эдрика прекрасно работало, но спасибо за помощь. – Velocity

Смежные вопросы