我试图使用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位的毛刺。这些故障不会出现在示波器上,仅出现在捕获的数据上。
这是我的示例数据:
有谁知道是什么导致这种情况以及如何纠正它?
您的示波器数据是12位,但您使用的是16位的“字”。使用'bit12'标志可能会解决您的问题。还记得在fread()
函数中使用'bit12'。