How can I implement these for loops efficiently using covolution?
显示 更早的评论
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 个评论
Torsten
2023-8-1
If you don't know how to spell the method, you'd better stick to your loop solution.
采纳的回答
更多回答(1 个)
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 个评论
MAWE
2023-8-23
MAWE
2023-8-23
Bruno Luong
2023-8-23
编辑:Bruno Luong
2023-8-25
Have you tried to do some study of the code or you just ask without study conv?
类别
在 帮助中心 和 File Exchange 中查找有关 Dynamic System Models 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
