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.

[参考译文] ADS1292R:如何将其转换为 ECG 信号并将其绘制为 MATLAB?

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1158001/ads1292r-how-can-i-proceed-to-convert-it-to-ecg-signal-and-plot-it-into-matlab

器件型号:ADS1292R

大家好、

使用以下代码,我将原始数据格式打印到 SDcard *.txt 文件中....


   while (!feof(fp)) {
            fread(&rawData, sizeof(ads1292OutputValues), 1, fp);

            printf("id: %d, val[8]: %08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x, %d, %08x, %.6f[v], %.6fºC, %02d, %02d-%02d-%04d : %02d:%02d:%02d\n",
                rawData.id, 
                rawData.sDaqVals[0], rawData.sDaqVals[1], rawData.sDaqVals[2], rawData.sDaqVals[3], 
                rawData.sDaqVals[4], rawData.sDaqVals[5], rawData.sDaqVals[6], rawData.sDaqVals[7],
                rawData.leadoffDetected, rawData.sresultTempResp,
                rawData.vbattery, rawData.temperature,
                rawData.datetime.dayOfWeek, 
                rawData.datetime.dayOfmonth, rawData.datetime.month, rawData.datetime.year,
                rawData.datetime.hours, rawData.datetime.minutes, rawData.datetime.seconds);
        }

这种原始格式看起来像底部的示例、现在我需要将其转换为 ECG 信号、有人能不能帮助我...

id: 0, val[8]: 00002a36, ffff7fff, 40004c01, 0000aae7, 004a030a, 00007a6f, 00000000, 000084f1, 1, 002a3600, 3.298389[v], 0.000000┬║C, 00, 00-00-0000 : 00:00:00
id: 1, val[8]: 00005bf4, 00197fff, 40004c01, 0000aae7, 004a030a, 00007a6f, 00000000, 000084f1, 1, 005bf400, 3.294360[v], 0.000000┬║C, 00, 00-00-0000 : 00:00:00

提前感谢

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

    您好!

    我看到您在中打开了类似的重复线程  

    https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1157999/ads1292r-how-can-i-convert-a-raw-data-into-ecg-signal

    我在这里提出同样的问题和建议-

    您好!

     我是否可以询问您的信号源可能是什么? 例如、ECG 模拟器或函数发生器或一些随机噪声?

     您是否碰巧拥有/使用评估套件/评估板(EVM)来完成您正在做的工作?  您是否使用 MCU 与 EVM 板进行通信?

     您是否尝试过内部测试信号? 或注入已知的稳定电压信号并首先了解/观察结果?

      同时、请查看此主题-

    https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/772488/faq-ads129x-how-do-i-convert-adc-output-codes-to-volts/2856893#2856893

    谢谢、

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

    很抱歉 、我没有注意到我重复了该主题。

    是的、您可以询问并回答、我的信号源是 ads1292R、我的身体中有电极接入、我使用 MSP432 Launch Pad 与 ProtoCentral ADS1292R ECG/呼吸 分线套件进行通信、是的、我已经测试了内部信号、 SDCard 中记录的输出具有更多相关数据。 但我只需要知道如何 在一个图中转换或表示它。 每个样本代表一个包含八个索引值的数组、前六个样本代表 ECG 配置、另外两个样本代表检测 LED 和呼吸信号。
    能不能支持、这个芯片有很多问题、我决定把这个输出降级到125sps、因为我的微控制器没有 足够的内存 RAM。

    有人可以帮帮我吗?

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

    您好!

    虽然不是必需的、但您 可能希望先将 ADC 代码从六十进制转换为十进制表示、然后从十进制 ADC 代码计算输入差分电压。 建议使用已知信号执行此操作、以便您知道转换计算是否正确。

    然后、在这之后、您可以在 Excel、MATLAB 或 Python 中绘制这些数字。  

    顺便说一下、您是否了解从 SD 卡传入和传出的数据? 它们是否匹配? 建议先验证这一点、先验证一些已知信号。

    要将数据速率配置为125sps、您可以设置/配置以下寄存器位

    8.6.1.2 CONFIG1:配置寄存器1 (地址= 01h)

    位[2:0] DR[2:0]:如果 您的(1) fCLK = 512kHz 且 CLK_DIV = 0或 fCLK = 2.048MHz 且 CLK_DIV = 1、则通道过采样率为000。

    谢谢

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

    杨建春  

    我已经将数据配置为125 SPA、我不需要进行配置、抱歉、如果解释不好。

    我已经验证了微控制器和存储在 SDCard 中的数据是否匹配。

    我现在的迪菲尔蒂是:

    val[8]: 00002a36, ffff7fff, 40004c01, 0000aae7, 004a030a, 00007a6f, 00000000, 000084f1, 1, 002a3600

    在此输出中,我从 ADS1292R 中有数千行的位置,就像这样,如何在 ECG 信号中转换它

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

    您好!

     建议首先绕过 SD 卡、即仅使用 MCU 与 ADS1292R 直接通信。 我们对您使用的 SD 卡不是很专业、也不知道 SD 卡的数据流/编码工作原理。

      请问您正在读取多少个通道的数据? 您是在单次模式还是连续模式下进行读取?

     您可能需要首先检查数据格式/类型/表示、或者您的程序解码/斩波/对 SPI DOUT 信号进行分组是否正确。

     ADS1292R 的每个通道都是一个24位数据、因此24位用于表示信号、因此我不知道为什么您有8个十六进制* 4位/十六进制= 32位。

     我可能建议您仅使用一个通道上的内部测试信号进行读取(单次读取和连续读取)、以验证您是否正确解码/斩波/分组数据?

     同时、请查看数据表 9.5.1.4数据输出引脚(DOUT)和此主题 https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/772488/faq-ads129x-how-do-i-convert-adc-output-codes-to-volts/2856893#2856893

     您需要先将十六进制表示转换为十进制表示、然后遵循上述转换公式(需要基准电压 Vref)。

    谢谢

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

    您好!
    由于我没有听到你的反馈,我相信我的建议回答了你的问题。
    我将关闭此帖子、如果您有任何待处理的问题、请随时将其发布在此处或打开新主题。
    谢谢、祝您愉快!