Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

Matlab - Convolucion mediante procedimientos o cáculos matemáticos

Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:

Convolucion mediante procedimientos o cáculos matemáticos

Autor:Juan Arango (2 intervenciones)
Fecha:26/08/2012 18:18:03
Hola,

Tengo que realizar un programa o funcion en matlab algo sencillo pero no se como hacerlo.

El programa empieza cuando se ingresan en la función dos vectores de diferente tamaño. Estos vectores deben multiplicarse distributivamente entre si, es decir, cada elemento del primer vector con cada elemento del siguiente vector. Asi, van arrojando filas. Es como si uno multiplicara un numero normal de varios dígitos, se multiplica el primero con todos, luego el segundo con todos y asi sucesivamente. Luego de tener eso, se necesita que el programa sume los valores resultantes y me de el resultado final.

Lo intente hacer con un for pero no se como hacer para que cada valor del for me lo guarde en un vector y no sencillamente lo remplaze con el siguiente.

function suma(x,h)
clc
n1=length(x);
n2=length(h);
for i=1:n2
y(1)=x(1)*h(i)
y(2)=x(2)*h(i)
end

Por ejemplo, teniendo los valores de h y x, debe realizar el proceso para obtener y.

Es un proceso de convolucion denominado "suma por columnas" pero no es posible usar el comando "conv". Toca todo paso por paso.


h=1 -2 3

x= 1 2 2 3

1 -2 3
2 -4 6
2 -4 6
3 -6 9

y= 1 0 1 5 0 9

Espero me puedan colaborar.
Muchas gracias.
Responder
información
Otras secciones de LWP con contenido similar...
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Convolucion mediante procedimientos o cáculos matemáticos

Autor:Geral (26 intervenciones)
Fecha:28/08/2012 04:34:07
hola!

espero te sirva esto =)

function S = convolucion_disc(h,x) nh = length(h); nx = length(x); % preasignando variables: y = zeros(nx,nh); Y = zeros(nx,nx+nh-1); S = zeros(1,nx+nh-1); % creando matriz: for j = 1:nx for i = 1:nh y(j,i) = h(i)*x(j); end Y(j,j:j-1+nh) = y(j,:); end % sumando: for l = 1:nx + nh - 1; S(l) = sum(Y(:,l)); end S = [Y;S];

salu2!!
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Convolucion mediante procedimientos o cáculos matemáticos

Autor:MAO SAN (1 intervención)
Fecha:05/03/2013 16:33:41
Hola Geral.

Al copiar tu código en Matlab en un archivo .m, genera un error en la línea donde aparece el comando function, diciendo que no está permitido.

Te pido el favor me ayudes con eso, pues requiero hacer la convolución discreta con urgencia.

Gracias por tu atención, espero me puedas colaborar.

Mao.
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Convolucion mediante procedimientos o cáculos matemáticos

Autor:JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (2510 intervenciones)
Fecha:05/03/2013 22:33:13
El codigo de Geral es correcto. El error es en la forma como estas ejecutando. Los archivos de matlab se ejecutan de acuerdo al tipo de tipo que es.

>> y=5*round(rand(1,4)+1), x=5*round(rand(1,6)+1), S = convolucion_disc(y,x) y = 10 5 10 5 x = 5 5 5 10 10 5 S = 50 25 50 25 0 0 0 0 0 0 50 25 50 25 0 0 0 0 0 0 50 25 50 25 0 0 0 0 0 0 100 50 100 50 0 0 0 0 0 0 100 50 100 50 0 0 0 0 0 0 50 25 50 25 50 75 125 200 225 225 175 100 25


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Convolucion mediante procedimientos o cáculos matemáticos

Autor:Cristian Mercdo Castro (1 intervención)
Fecha:06/04/2013 04:41:22
hola, es muy facil utilizar el comando "conv" de matalb, el cual realiza la convolucion entre dos vectores y se ejecuta el programa.
solo se definen los vectores:


h=[1 -2 3];
x= [1 2 2 3];
conv(h,x)
ans =
1 0 1 5 0 9



saludos:
Cristian Mercado Castro
Estudiante de Ingenieria Electronica
correo: camcastro87@hotmail.com
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Convolucion mediante procedimientos o cáculos matemáticos

Autor:JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (2510 intervenciones)
Fecha:06/04/2013 04:53:11
Gracias por tu aporte Cristian.
Pero mira las condiciones del usuario que hace la pregutna:
Es un proceso de convolucion denominado "suma por columnas" pero no es posible usar el comando "conv". Toca todo paso por paso.

Es por esa razón que Geral hace un código.


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
Comentar