diferencias en tiempos de respuesta de funciones definidas a hechas a mano
Publicado por sebastian lemus (1 intervención) el 12/01/2022 23:14:05
hola, para una tarea de procesamiento de señales en la universidad se nos ha pedido averiguar por qué la respuesta del matlab al hacer una convolución mediante la funcion predefinida es mas rapida que al hacerla mediante un codigo que nosotros mismos redactamos.
gracias por la atención prestada.
V1=[0 1 2 3 4 5 6 7 8 9],
V2=[9 8 7 6 5 4 3 2 1 0]
tic
n=length(V1)+length(V2)-1
mc=zeros(n);
for i=1:length(V1)
mc(i,:)=[fliplr(V1(1:i)),zeros(1,n-i)];
end
for i=length(V1):n
mc(i,:)=[zeros(1,i-length(V1)),fliplr(V1),zeros(1,n-i)];
end
V2c=[V2,zeros(1,n-length(V2))]';
Convol=(mc*V2c)'
toc
tic
Matlabconv=conv(V1,V2)
toc
gracias por la atención prestada.
V1=[0 1 2 3 4 5 6 7 8 9],
V2=[9 8 7 6 5 4 3 2 1 0]
tic
n=length(V1)+length(V2)-1
mc=zeros(n);
for i=1:length(V1)
mc(i,:)=[fliplr(V1(1:i)),zeros(1,n-i)];
end
for i=length(V1):n
mc(i,:)=[zeros(1,i-length(V1)),fliplr(V1),zeros(1,n-i)];
end
V2c=[V2,zeros(1,n-length(V2))]';
Convol=(mc*V2c)'
toc
tic
Matlabconv=conv(V1,V2)
toc
Valora esta pregunta
0