Board: Matlab


Unser Board kann natürlich auch zusammen mit verschiedenen etablierten Entwicklungstools verwendet werden. Exemplarisch stellen wir auf dieser Seite dar, wie die Parametrierung und Dateninteraktion in Verbindung mit der Software Matlab umgesetzt werden kann. Bei Nutzung der Basisbibliothek zur Parametrierung und Dateninteraktion mit dem Deltaboard ist keine weitere Matlab Toolbox notwendig, da alle Schnittstellenzugriffe (USB, Ethernet) durch die Dll umgesetzt werden. Folgendes Codebeispiel zeigt, wie die Bibliothek in Matlab eingebunden wird und die Funktionen aufgerufen werden können. Wie in einer C# Applikation können die Funktionen sowohl statisch als auch objektorientiert verwendet werden.
Einbinden und Nutzen der Basisbibliothek brBaseDLL unter Windows
%load library with absolute path location
dll = NET.addAssembly('C:\brBaseDLL.dll');
%list all methods of the c# class
methods('brBaseDLL.brBase');
 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Examples for object-oriented methods %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
%create instance with usb interface
object = brBaseDLL.brBase('usb', false);
%open interface
object.OpenInterface();
%send heartbeat to user fpga
object.ctrl_heartbeat('user')
%read 65536 data bytes from usb interface in matlab array 
[bool, array] = object.stream_readData_array(65536)
%close interface
object.CloseInterface();
 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Examples for static methods %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
%send heartbeat to user fpga with ethernet interface
brBaseDLL.brBase.ctrl_heartbeat('192.168.0.50', 'user', false)
%read 4096 data bytes from ethernet interface in matlab array 
[bool, array] = brBaseDLL.brBase.stream_readData_array('192.168.0.50', 4096, false)
Die Dateninteraktion mit der USB- bzw. Netzwerkschnittstelle kann unabhängig der Basisbibliothek brBaseDLL auch über die Verwendung der entsprechenden Matlab Toolboxen erfolgen. Folgendes Beispiel zeigt die Anbindung des Deltaboards über eine TCP/IP-Verbindung (erfordert Instrument Control Toolbox).
Auslesen eines Datenpaketes über die Netzwerkschnittstelle und Erzeugen einer FFT Darstellung
%initialize and open connection
tcpip_connection = tcpip('192.168.0.50', 24942);
tcpip_connection.InputBufferSize = 10000;
tcpip_connection.ByteOrder = 'bigEndian';
fopen(tcpip_connection)
 
%initialise variable and read data as 16-Bit signed IQ values
Import_data = zeros(4096, 1);
for i=1:4096
    Import_data(i)= complex(fread(tcpip_connection,1,'int16'),fread(tcpip_connection,1,'int16'));
end
 
%calculate FFT
L=length(Import_data);         
plot_data=fftshift(fft(Import_data,4096));         
 
%plot
nVals=(-4096/2:4096/2-1)*(1/4096);
plot(nVals,10*log10(plot_data/32768),'b');             
xlabel('bandwidth')         
ylabel('dBFS');
 
%close connection and clean up
fclose(tcpip_connection);
delete(tcpip_connection);
clear tcpip_connection
Shop