Tengo un alcance DSO-S 104A. Lo tengo conectado a través de un cable USB 3.0 a una PC con MATLAB. Quiero que MATLAB lea la forma de onda del alcance en un vector. Estoy muestreando paquetes de pulsos, la frecuencia de los paquetes es de 10 KHz. Actualmente estoy usando el siguiente código:
h=1; %Number of packets to sample (from 1 to 10K)
for k=1:h
empty=0;
data0 = query(scop1, 'WAVeform:DATA?');
r=0;
while not(empty)
data1=fscanf(scop1);
empty=isempty(data1);
data0 = sprintf('%s%s', data0,data1);
r=r+1;
end
Data=str2num(data0);
DATA(:,k)=Data;
end
Esto lee cada punto en el alcance y los ensambla en una cadena, que luego se convierte en un vector. Mi problema es que este proceso es increíblemente lento. A la velocidad de paquetes de 10 KHz para obtener una resolución aceptable, necesito muestrear al menos 3000 paquetes, y a la velocidad que lo estoy haciendo actualmente, tomará una hora por lo menos. ¿Alguien tiene una mejor manera de leer desde un ámbito?