How can I implement these for loops efficiently using covolution?
Mostrar comentarios más antiguos
I have this code
for xx=1:length(x)
for kk=1:length(x)
xSinc(xx) = xSinc(xx)+x(kk)*sinc(xx-kk-delta/T);
end
end
How can implement this efficiently using convultion in MATLAB?
1 comentario
Torsten
el 1 de Ag. de 2023
If you don't know how to spell the method, you'd better stick to your loop solution.
Respuesta aceptada
Más respuestas (1)
Bruno Luong
el 23 de Ag. de 2023
Editada: Bruno Luong
el 25 de Ag. de 2023
Use conv
x = (0:0.2:5).^2;
L = 3;
delta = rand; T = rand;
% Your method
xSinc = zeros(size(x));
for xx = 1:length(x)
for kk=max(xx-L,1):min(xx+L,length(x))
xSinc(xx) = xSinc(xx)+x(kk)*sinc(xx-kk-delta/T);
end
end
xSinc
% conv method
xSinc2 = conv(x, sinc((L:-1:-L)+delta/T), 'same')
norm(xSinc2-xSinc)
plot(xSinc, 'b')
hold on;
plot(xSinc2, 'r.')
3 comentarios
MAWE
el 23 de Ag. de 2023
MAWE
el 23 de Ag. de 2023
Bruno Luong
el 23 de Ag. de 2023
Editada: Bruno Luong
el 25 de Ag. de 2023
Have you tried to do some study of the code or you just ask without study conv?
Categorías
Más información sobre Dynamic System Models en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
