# Align signals of different length using Peak

8 vues (au cours des 30 derniers jours)
Ganesh Naik le 7 Juil 2022
Commenté : Ganesh Naik le 7 Juil 2022
Hi all, I have set of signals of varying length stored in a cell array. I would like to align them based on their peaks. I have tried using matlab function "alignsignals" as well but no luck with it due to the varying datasize. I have added the data and my effort below. Any help in this regard is highly appreciated.
figure();
hold on;
for i = 1:length(my_arrays)
T = (my_arrays{i});
[Pks,Locs] = findpeaks(T,'MinPeakHeight',100)
plot(T);
end
Another effort (gives error due to varying datalength)
[r,c] = size(my_arrays)
disp(my_arrays);
for i = 2:c
Aligned_curves(:, i-1) = alignsignals(my_arrays{1:r, i-1}, my_arrays{1:r, i}, []);
end
figure;
plot(Aligned_curves);
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Réponses (1)

KSSV le 7 Juil 2022
Modifié(e) : KSSV le 7 Juil 2022
According to the plot, the peak value which has longest id is third array. So, I would allign signals w.r.t to third array.
N = length(my_arrays) ;
% Get maximum and id of each signal
val = zeros(N,1) ;
id = zeros(N,1) ;
for i = 1:N
[val(i),id(i)] = max(my_arrays{i}) ;
end
% Get the id of signals which has longest maximum id
[~,T] = max(id) ;
X = my_arrays{T} ;
Y = cell(N-1,1) ;
figure();
hold on;
plot(X)
for i = 1:length(my_arrays)-1
if i~=T
[~,Y{i}] = alignsignals(X,my_arrays{i}) ;
plot(Y{i});
end
end
Y{T} = X ;
##### 3 commentairesAfficher 1 commentaire plus ancienMasquer 1 commentaire plus ancien
KSSV le 7 Juil 2022
Yes that can be done. I have edited the code, so that T = 3, is automatically picked up.
You may have a look on id to see what do I mean longest max index.
Ganesh Naik le 7 Juil 2022
Dear KSSV thanks, I am going to accept this answer. Since the data is of varying length is it possible to compute average of data (ensemble average) and plot the average data as a thick line in the plot?
Kind regards

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Get Started with Signal Processing Toolbox dans Help Center et File Exchange

R2021a

### Community Treasure Hunt

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

Start Hunting!

Translated by