由于最近项目需要使用Labview开发解调设备,对于高速采集卡就需要使用tdms存储数据(存储的数据量较大),而用matlab无法对tdms格式文件进行直接读取,所以查找一些相关博客,解决了读取的问题。(以下操作在matlab2016b(非正版)上执行)注:低版本的matlab不适用。
插件安装
matlab看不懂tdms是啥东西,所以需要安装个编译器给matlab翻译一下:我要你执行这个文件。编译器有两种:
cnvertTDMS,需要在mathwork官网下载,并要提供matlab正版账号,所以不选择这种方式,正版同学可以参考:https://blog.csdn.net/qq_24598387/article/details/83148325?utm_medium=distribute.pc_relevant.none-task-blog-title-3&spm=1001.2101.3001.4242,非正版可以使用tdm64-gcc,可参考https://blog.csdn.net/weixin_41968197/article/details/106287744
链接:https://pan.baidu.com/s/1-bwJ6fABsytApdxJwtzvAA
提取码:2d43
安装其中的tdm64-gcc.exe程序
Create-64位/32位自行选择-其余默认就可以,大约1分钟安装好。
注册环境变量:
找到计算机-高级系统设置-高级-环境变量-在系统变量中点新建,变量名为MW_MINGW64_LOC,变量值为C:\tdm(刚才安装tdm-gcc的路径)
好了,翻译软件安装完了
打开MATLAB TDM Example文件
用记事本打开Readfile.m文件,翻到最后,确定clear chanvals被%%忽略掉了
matlab运行Readfile.文件,打开了如下界面
在文件名那里选择MATLAB-dev-bin-64/32bit-nilibddc.dll
打开后来到第二个窗口
此时找到MATLAB-dev-include-64/32bit-nilibddc.h为文件
打开后来到第三个界面,在这里打开要读取的数据(将文件名后缀tms改成tdms)
等待几秒钟,就打开了tdms文件,自动化成一张图
在matlab工作区就可以看到chanvals大小,双击打开就能看到采集到的数据。
附上一段程序,就能看到某条通道的波形了。
clear;clc;close all
x=load(‘chanvals1.mat’);
a=(1:50000);
b=x.chanvals(:,1);
plot(a,b)