Loss of resolution while transmitting 12 bit data using MATLAB Instrument Driver for LeCroy oscilloscopes.

7 ビュー (過去 30 日間)
I've got an issue with the MATLAB Instrument Driver for LeCroy oscilloscopes. There is a loss of resolution because the transmission of data only works with 8 bit. I'm using an LeCroy HDO 6054A-MS oscilloscope with 12 bit resolution. This means I'm loosing a big part of my data. Is there a possibility to fix this problem?

採用された回答

MathWorks Support Team
MathWorks Support Team 2023 年 11 月 17 日
編集済み: MathWorks Support Team 2023 年 11 月 17 日
The MATLAB Instrument Driver for LeCroy oscilloscopes has a limitation that it can only be used to transfer data with 8 bit resolution and the resolution cannot be adjusted according to the type of oscilloscope. To be able to communicate with LeCroy HDO 6054A-MS, you can use a different driver that is available online. The driver is called (IVI Driver 3.2.9.0 x64) and is created by Pacific Mindworks. You can create your own MATLAB Instrument Driver (.mdd) by calling 'makemid' on the driver.To download the driver please see the link below:
Here is an example script that uses this driver. The example script first creates a .mdd file using the downloaded driver 'lcscope' and then calls 'icdevice' on the .mdd to interact with the oscilloscope. This will then call ‘readwaveform’ to read data from the oscilloscope.
%% Create mdd for driver
% You need to run this only once
makemid('lcscope', 'myscope.mdd', 'ivi-c')
%% Create icdevice object using the mdd file created above.
% You can use instrhwinfo visa to find your device's resource name.
% Note replace 'GPIB0::1::INSTR' with your device resource name.
d = icdevice('myscope.mdd', 'GPIB0::1::INSTR');
% Connect to device
connect(d);
% Auto setup
invoke(d.Configurationconfigurationinformation,'autosetup');
% Configure channel 1
d.RepCapIdentifier = 'C1';
set(d.Channel,'Channel_Enabled',1);
% Read data from oscilloscope
waveformSize = get(d.Acquisition,"Horizontal_Record_Length");
% Set readwaveform(obj, Channel, WaveformSize, MaxTimeMilliseconds, WaveformArray)
[waveform, numActualPoints] = invoke(d.Waveformacquisition,'readwaveform','C1', waveformSize, 10000, zeros(waveformSize,1));
% See waveform
plot(waveform(1:numActualPoints));%% Disconnect and clean up
disconnect(d)
delete(d)
clear d

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by