주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

TDMS 파일 읽기 시작하기

이 예제에서는 TDMS 파일에서 MATLAB®으로 데이터를 읽어 분석하는 방법을 보여줍니다.

예제 TDMS 파일에는 사인파 진폭과 위상의 측정 데이터가 포함되어 있습니다. 측정은 동일한 채널 그룹의 두 채널에서 수행됩니다.

TDMS 파일 내용 검사

tdmsinfo 함수를 사용하여 TDMS 파일에서 채널 그룹과 채널 이름을 얻습니다.

fileName = "SineWave.tdms";
info = tdmsinfo(fileName);
info.ChannelList
ans=2×8 table
    ChannelGroupNumber    ChannelGroupName    ChannelGroupDescription       ChannelName       ChannelDescription    Unit    DataType    NumSamples
    __________________    ________________    _______________________    _________________    __________________    ____    ________    __________

            1             "Measured Data"               ""               "Amplitude sweep"            ""             ""     "Double"       3500   
            1             "Measured Data"               ""               "Phase sweep"                ""             ""     "Double"       3500   

TDMS 파일에서 데이터 속성 읽기

tdmsreadprop 함수를 사용하여 파일의 데이터 속성을 봅니다.

tdmsreadprop(fileName)
ans=1×7 table
       name       description              datetime               author                title                datestring     timestring
    __________    ___________    _____________________________    _______    ___________________________    ____________    __________

    "SineWave"        ""         2022-01-13 10:03:31.000000000    "Admin"    "Amplitude And Phase Sweep"    "01/13/2022"    "10:03:31"

특정 채널의 속성을 보려면 ChannelGroupNameChannelName 인수를 지정하십시오.

group = "Measured Data";
channel = "Amplitude sweep";
tdmsreadprop(fileName, ChannelGroupName=group, ChannelName=channel)
ans=1×19 table
          name           description    unit_string     datatype      displaytype        monotony        NI_ChannelName    NI_ExpIsRelativeTime        NI_ExpStartTimeStamp                NI_ExpTimeStamp           NI_ExpXDimension       novaluekey       wf_increment    wf_samples    wf_start_offset            wf_start_time            wf_time_pref    wf_xname    wf_xunit_string
    _________________    ___________    ___________    ___________    ___________    ________________    ______________    ____________________    _____________________________    _____________________________    ________________    ________________    ____________    __________    _______________    _____________________________    ____________    ________    _______________

    "Amplitude sweep"        ""             ""         "DT_DOUBLE"     "Numeric"     "not calculated"        "Sine"                 1              2022-01-13 08:38:35.674852848    2022-01-13 08:38:35.674852848          "t"           "not calculated"       0.001           3500              0           1904-01-01 05:21:10.000000000     "relative"      "Time"           "s"      

TDMS 파일에서 MATLAB로 타임테이블 데이터 읽기

타임테이블에 데이터를 읽으려면 일반적으로 채널 속성에 포함된 시작 시간과 시간 스텝를 파생시킵니다.

timeStep = tdmsreadprop(fileName, ChannelGroupName=group, ChannelName=channel, PropertyNames="wf_increment")
timeStep=table
    wf_increment
    ____________

       0.001    

startTime = tdmsreadprop(fileName, ChannelGroupName=group, ChannelName=channel, PropertyNames="wf_start_time")
startTime=table
            wf_start_time        
    _____________________________

    1904-01-01 05:21:10.000000000

시작 시간과 시간 스텝을 tdmsread 함수의 인수로 사용하여 데이터를 테이블로 구성된 셀형 배열로 MATLAB으로 읽어 들입니다. 첫 번째 채널 그룹의 일부 데이터를 봅니다.

data = tdmsread(fileName, StartTime=startTime.wf_start_time, TimeStep=seconds(timeStep.wf_increment));
ttData = data{1};
head(ttData)
                Time                 Amplitude sweep    Phase sweep
    _____________________________    _______________    ___________

    1904-01-01 05:21:10.000000000           0                   0  
    1904-01-01 05:21:10.001000000           0            0.063418  
    1904-01-01 05:21:10.002000000           0             0.12658  
    1904-01-01 05:21:10.003000000           0             0.18923  
    1904-01-01 05:21:10.004000000           0             0.25112  
    1904-01-01 05:21:10.005000000           0               0.312  
    1904-01-01 05:21:10.006000000           0             0.37163  
    1904-01-01 05:21:10.007000000           0             0.42975  

쌓인 플롯을 사용하여 다양한 채널의 데이터 간의 관계를 시각화합니다.

stackedplot(ttData);

Amplitude and Phase Sweep