This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TSW1400EVM:HSDC 原始数据文件混淆(相关)

Guru**** 1129500 points
Other Parts Discussed in Thread: ADC3444EVM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/712164/tsw1400evm-hsdc-raw-data-file-confusion-related

器件型号:TSW1400EVM
主题中讨论的其他器件:ADC3444EVM

这是一个较旧的线程的引用、但我尝试运行脚本以将*。bin ADC 代码二进制文件转换为 MATLAB 中的时域数据。

在 HSDC 中、我注意到对于较长的采样时间(远大于524288个采样)、我可以保存到 Excel 的最大时域数据点数为2^16 (在上部时域窗口中)。 我希望能够运行较长的时间序列、但以最小的分辨率保存所有数据点(即、如果我在100MHz 下收集20ms 的数据、我希望每10ns 而不是305ns 进行一次采样)。

如果我将数据保存到*bin 文件(ADC 代码),则会显示该数据的分辨率。 软件似乎还将所有通道的数据保存到一个位流中。 (因此,如果每通道保存4194304个样本,则该文件将为四通道 ADC 生成(4194304)*4个条目)。

我尝试在 MATLAB 中使用以下脚本来提取时域数据、但它似乎没有意义或与 HSDC 输出不匹配。 (文件名= soming.bin)

FID = fopen ('Filename'、'r');
N=14
x = fread (fid、'int16');
fclose (fid);
X = X-2^(N-1);
X = X/2^(N-1);

我省略了 ReadTiAdcData()函数,因为我没有运行它所需的 spectrum_analyzer.m 文件。

结果数据似乎没有意义、我不确定我是否从 Get Go 正确解析它。 我将 TSW1400EVM 与 ADC3444EVM (14位)配合使用。 ADC 是四通道、但我只有一个通道上的数据。 当我尝试将数据分开4次时、它似乎也没有改变(因为一个通道仅接收数据)、因此我怀疑我对数据如何分开的假设是不正确的。

有关此问题的上一个问题: e2e.ti.com/.../1397498

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Ajay
    我们已收到您的问题。 有人很快会提供更详细的回复。
    此致、
    Jim B
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ajay、
    保存的 CSV 文件应为单个通道的连续时域样本。 您不需要逐通道抽取。 如果您尝试使用.bin 文件、数据将按通道存储为16b 数据结构(即使使用14b 转换器也是如此)。 这是为了保留字节边界、但会牺牲一些文件空间。 我将研究这一点、看看我是否可以找到更多信息来帮助这一点。

    我还将与另一位同事了解 CSV 或.bin 文件导入到 MATLAB 的相关信息。 他在过去做了一些工作、我们可以讨论您的脚本。 我需要一点时间,因为他已经不在办公室几天了。

    此致、
    Brian
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Brian、

    感谢您的回答。 我认为我找到了解决办法,并提到了你的说法。 单击左键保存*。CSV 文件并在上部时域窗口中保存到 Excel 的问题是、它限制为2^16个样本。 因此、如果采样时间为5ms、10ms 等。 只允许从上部时域窗口中将2^16个样本保存到*。CSV。  因此、所收集数据的分辨率取决于所收集数据的长度。

    但是、我可以保存到*。Bin 文件、并以所需的分辨率收集所需的数据。 我的错误是我错误地解析了数据、因为二进制数据应该像 Ch1、CH2、ch3、CH4、CH1、CH2、ch3、ch4、... 我假设是 CH1、CH1、CH1、CH1、CH1。。至 N、CH2、CH2、CH2、CH2。至2N 等。 当我更正此问题时、数据会正确流入并符合我的预期。 这是我的脚本。

    fID = fopen ('filename.bin'、'r');
    N=14;
    x = fread (fid、'int16');
    fclose (fid);
    X = X-2^(N-1);
    X = X/2^(N-1);

    CH1 = X (1:4:端);
    CH2 = X (2:4:端);
    CH3 = X (3:4:端);
    Ch4 = X (4:4:结束);

    感谢您的帮助!