Info

Break vibration (sound signal) in 3 parts from end to beginning, taking the indeces

1 view (last 30 days)
Christos Antonakopoulos on 23 Jan 2016
Closed: MATLAB Answer Bot on 20 Aug 2021
Hello to all,
I am new to this kind of signals, but i should find a solution to the following problem:
I have a matrix with 4400000 * 24, each column represents a vibration signal, each row the number of data points.
In the end of each signal there is a sparke(peak) that defines the end of the vibration measurements. I shall find an automatized way for those signals to break them in 3 parts(from the end to the beginning and keep the indices). In other words, i must define the almost zero parts between and the three parts and take the indices. I am uploading a jpeg pic for the first column of my picture to get a better idea. So the goal is to start from the peak in the end(consider that as the first index), take 2 indeces(end & starting point for the next in the left) around 3*10^6, 2 around 1.7*10^6 and 2 around 0.4*10^6. Some strange things that happen between the three parts do not interest me and the same stands for the part in the beginning of the figure, (0-0.4 *10^6)
So what is the best way to handle this problem? For me as an amateur i though about the power. So i did the following:
for k=1:size((pvdf_signal),2)
y=pvdf_signal(:,k);
[value,index]=max(y);
length_interval=20000; %trial and error
new_y=flip(y(1:index)); %flip signal until the peak
% plot(new_y)
for i=1:(length(new_y)/length_interval)
flip_powerpwr(k,i) = sum(new_y((i-1)*length_interval+1:length_interval*i).^2)/length_interval;
end
end
I found that power is smaller in some parts, so in the intervales (20000 points, from the first i see power is less than in the other intervals and till it increases again) with lower power i take the 2 indeces. This seems to stand, but seems a rather quick and not good solution
Thank you.