Problemas al muestrear señal usando matlab y arduino
Publicado por Jaime Javier (1 intervención) el 06/01/2014 19:40:11
Saludos y muchas gracias por tener tan excelente pagina donde he podido observar que se tiene el buen deseo de ayudar a quienes lo necesitamos!! Espero alguien pueda ayudarme con mi problema el cual paso a describir a continuacion:
He contruido un circuito generador de señales cuadradas con el famoso 555 a una frecuencia de aproximadamente 20kHz pero cuando intento muestrearlo al utilizar el conjunto Arduino-Matlab tengo las señales indicadas en este mensaje lo que deberia obtener es un tren de ondas cuadradas y esto se relaciona directamente con el tema de muestreo lo cual me ha hecho pensar que puedo estar teniendo un sobremuestreo de la señal que me interesa, y por eso lo que deseo hacer es controlar la frecuencia de muestreo de la señal pero no se como hacerlo a continuacion les adjunto el codigo que he utilizado:
%Script para graficar la tension en un pin de entrada analogico
clc; clear all; close all
a=arduino('COM11');%creamos el abjeto "a" que sera nuestro arduino y asignamos
%el puerto a donde este se encuentra conectado
in=0;%asignamos el pin de entrada analógico
tic;%iniciamos un conteo de tiempo
i=0;
time(150)=0;%preasignamos la memoria para aumentar la
v(150)=0;%velocidad de ejecucion del codigo
%"toc" mide el tiempo trancurrido desde la ultima ejecucion de "tic"
while toc<5%ejecutamos durante x segundos
i=i+1;%incrementamos la variable de control
time(i)=toc;%crea un vector que contiene los difrentes momentos dados por "toc"
v(i)=a.analogRead(in);%vecctor que almacena los valores muestreados de tension
%en cada ciclo de ejecucuion
figure(1);%abre una ventana para graficar
plot(time,v/256,'b');%grafica los valores de tension muestreados
%pause(0.25);%crea una pausa de 1/4 de segundo entre una muestra y otra
%si no se coloca ninguna pausa la señal muestreada será practicamente
%igual a la señal de entrada.
end
lo que quisiera me pudieran ayudar es como ajustar la frecuencia a la cual estoy muestreando, buscando en la red habia pensado que es un parametro que se define en el sketch de compaltibilidad de arduino con matlab es un valor llamado baud rate el cual modifique a 115200 pero el resultado sigue siendo terrible asi que espero me puedan decir como puedo controlar la velocidad en que se ejecuta un bloque si es que es posible me gustaria probar a 50kHz algo que se le aproxime. de antemano muchas gracias
He contruido un circuito generador de señales cuadradas con el famoso 555 a una frecuencia de aproximadamente 20kHz pero cuando intento muestrearlo al utilizar el conjunto Arduino-Matlab tengo las señales indicadas en este mensaje lo que deberia obtener es un tren de ondas cuadradas y esto se relaciona directamente con el tema de muestreo lo cual me ha hecho pensar que puedo estar teniendo un sobremuestreo de la señal que me interesa, y por eso lo que deseo hacer es controlar la frecuencia de muestreo de la señal pero no se como hacerlo a continuacion les adjunto el codigo que he utilizado:
%Script para graficar la tension en un pin de entrada analogico
clc; clear all; close all
a=arduino('COM11');%creamos el abjeto "a" que sera nuestro arduino y asignamos
%el puerto a donde este se encuentra conectado
in=0;%asignamos el pin de entrada analógico
tic;%iniciamos un conteo de tiempo
i=0;
time(150)=0;%preasignamos la memoria para aumentar la
v(150)=0;%velocidad de ejecucion del codigo
%"toc" mide el tiempo trancurrido desde la ultima ejecucion de "tic"
while toc<5%ejecutamos durante x segundos
i=i+1;%incrementamos la variable de control
time(i)=toc;%crea un vector que contiene los difrentes momentos dados por "toc"
v(i)=a.analogRead(in);%vecctor que almacena los valores muestreados de tension
%en cada ciclo de ejecucuion
figure(1);%abre una ventana para graficar
plot(time,v/256,'b');%grafica los valores de tension muestreados
%pause(0.25);%crea una pausa de 1/4 de segundo entre una muestra y otra
%si no se coloca ninguna pausa la señal muestreada será practicamente
%igual a la señal de entrada.
end
lo que quisiera me pudieran ayudar es como ajustar la frecuencia a la cual estoy muestreando, buscando en la red habia pensado que es un parametro que se define en el sketch de compaltibilidad de arduino con matlab es un valor llamado baud rate el cual modifique a 115200 pero el resultado sigue siendo terrible asi que espero me puedan decir como puedo controlar la velocidad en que se ejecuta un bloque si es que es posible me gustaria probar a 50kHz algo que se le aproxime. de antemano muchas gracias
Valora esta pregunta
0