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 - Programa

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

Programa

Autor:alexander mora alexander.mora.ext@telmex.com (4 intervenciones)
Fecha:17/02/2012 22:00:28
Buenos dias
Amablemente solicito un programa el cual sujiere: el principio de la convolucion y loops en matlab a partir de dos vectores
a, obtener una señal x(n) y guardarlo en x
b, obtener una señal h(n) y guardarlo en h
c, hacer un loop para simular una sumatoria
d, investigar el codigo de implementacion en tiempo no real

el codigo que estaba desarrollando es asi:
en donde captura la señal en tiempo real atraves de la voz en 2 muestras de 2 segundos

fs1=10000;
z1=wavrecord(2*fs1,fs1);
x=z1;
fs2=5000;
z2=wavrecord(2*fs2,fs2);
h=z2;
y=conv(x,h);
subplot (2,1,1),stem (y)

lo que no entiendo es la implementacion del codigo en tiempo no real y como realizar loops sobre señales netamente estocasticas como la voz

muchas gracias por su apoyo, realmente lo necesito
Responder
información
Otras secciones de LWP con contenido similar...
Imágen de perfil de Dave
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Programa

Autor:Dave correa.dave30@gmail.com (807 intervenciones)
Fecha:18/02/2012 05:27:53
Hola Alexander;

Respecto al ítem c, sobre evaluar la sumatoria, basta con que consideres la sumatoría de cada uno de los valores sobre una variable que cumple el papel de acumulador, con ese procedimiento podría lograr determinar el valor de la sumatoria de todos los elementos de un vector.

fs1=10000; z1=wavrecord(2*fs1,fs1); x=z1; fs2=5000; z2=wavrecord(2*fs2,fs2); h=z2; y=conv(x,h); subplot (2,1,1),stem (y) % Loop para evaluar la sumatoria acumulador=0; for n = 1:length(x) acumulador = acumulador + x(n); end acumulador

Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Programa

Autor:alexander mora alexander.mora.ext@telmex.com (4 intervenciones)
Fecha:18/02/2012 15:59:50
Gracias por tu ayuda, pero ahora no se como representar en codigo matlab la convolucion de un vector pero en terminos de sumatoria

x=[ 1 0 0 0 1 0 0 0 ]
h=[ 1 1 1 ]

debo realizar la convolucion en terminos de sumatoria y despues comprobar con la convolucion para comparar, la idea es que de lo mismo

y = conv(x,h)
n dijeron que con un for y desglosando la formula de la convolucion, pero he intentado y no se como, gracias por tu ayuda
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:

Programa

Autor:JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (2508 intervenciones)
Fecha:19/02/2012 03:11:45
Hola Alexander.
Solo es cuestion de buscar en internet, muchas veces loque uno quiere ya esta resuelto.
Bueno tienes que estudiar lo q te estoy mandando.
%Codigo para convolucionar vectores con matlab, arroja matriz de salida
%y la sumatoria de los elementos de cada fila, esta sería la respuesta.

%Usando una matriz, para llenar clear all clc %1. Definicion de las entradas y de la respuesta al impulso del filtro a implementar. e=[4 5 2 3 -5 6]; h=[3 4 0 1 2 6 7 ]; %2. creando matriz resultado en ceros m=length(h)+length(e)-1; n=length(h); w=zeros(m,n); y=zeros(1,n); W=zeros(1,length(e)+length(h)-1); a=1; %3. Realizando convolucion y llenado de matriz for k=1:m for b=n:-1:2 y(b)=y(b-1); end if k<=(m-n+1) y(1)=e(k); else y(1)=0; end for i=1:n w(k,i)= h(i)*y(i); a=a+1 ; end a=1; end for j=1:m xnuevo=0; xant=0; for c=1:n xant=w(j,c); xnuevo=xant+xnuevo; end W(j)=xnuevo; end %Señal de salida Solucion_Codigo=W; Solucion_Matlab=conv(e,h); display(Solucion_Codigo) display(Solucion_Matlab)

FUENTE:
http://www.taringa.net/posts/apuntes-y-monografias/10857059/codigo-de-convolucion-con-matlab.html


Saludos.
JOSE JEREMIAS CABALLERO

Servicios de programacion matlab


Asesor de Proyectos con Matlab
programador en matlab
"Detalladar sus preguntas, para recibir respuestas acertadas"
jjcc94@hotmail.com
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Programa

Autor:marco triana (5 intervenciones)
Fecha:21/02/2012 18:09:32
Hola cordial saludo Dave es de gran ayuda tu aporte, tu sabes en donde encontar o como generar un codigo en matlab para imagenes en 2D que realice convolucion y se le pueda aplicar un filtro pasabajos para luego ver su respuesta al filtro, lo que pasa es que me exigieron este codigo para imgenes en 2D

lo que hemos adelantado es lo siguiente:

la imagen forma una matriz de MxN
su repuesta H(n) genera una matriz de PxQ siendo de tamaño simetrico
entonces:
1 2 3 4 5 ..M H(n)=1 2 P
2 2
3 Q
4
N


function=y conv programa (I,H)
(N,M) = size(I);
(P,Q)=size(H);
y=zeros(N+P-1, M+P-1)
FOR i=1:M
FOR J=1:N
y=(j:P+(J-1),i:P+(I-1))=I(j,i)H+Y(j;P+(j-1), i:P+(i-1));
end
end


gracias por tu ayuda
Comentar