我正在尝试使用Matlab从Lecroy 12位示波器捕获数据。
我创建签证对象“ scope”,将格式长度设置为“ word”(16位),然后使用“ fread”将波形数据获取为16位带符号整数:
fwrite(scope,'comm_format Def9,word,bin'); % The only relevant thing here is the "word" setting
fwrite(scope,'C1:Wf?'); % This gets the waveform from channel 1 on the scope
[wf]=fread(scope,SampleSize,'int16');
问题是捕获的数据上有8位噪声。我附上了一张图片,显示了波形的放大部分。您会看到有一个信号将是示波器的完整12位分辨率,但偶尔会出现数字化为8位的毛刺。这些故障不会出现在示波器上,只会出现在捕获的数据上。
这是我的示例数据:
有人知道是什么原因造成的,我该如何纠正?
答案 0 :(得分:1)
您的示波器数据为12位,但是您使用的是16位的“字”。使用“ bit12”标志可能会解决您的问题。还请记住在fread()
函数中使用'bit12'。