AD7606雷达数据采集模块数据分通道提取

AD7606雷达数据采集模块数据分通道提取

AD7606雷达采集模块可以同时采集8通道的数据,使用配套数据采集软件可以将数据导出为txt文件,但直接用txt文件导入到matlab进行进一步的分析比较麻烦,因此闲来无事用python写了可以将八通道分别导出为.mat文件的程序。
在这里插入图片描述

在这里插入图片描述

程序交互

在这里插入图片描述

1、输入数据文件所在的目录
在这里插入图片描述
2、输入需要提取的通道数
这里因为我只需要提取IQ分路,因此填入2
在这里插入图片描述
3、分别输入需要提取的通道号
在这里插入图片描述
在这里插入图片描述
4、最后会在数据文件所在目录生成文件夹,文件夹里面会包含分离好的.mat文件,在matlab里load即可载入对应数据。
在这里插入图片描述

程序源码

import pandas as pd
import numpy as np
import scipy.io as sio
import os


while(1):
    print('\n========================================')
    print('This program is written by kimpa.')
    print('If there is any bug, please feedback to: ' + '\n' + 'kimpa@aliyun.com')
    print('version:1.0')
    print('========================================')

    # 数据路径地址
    # path_name = './data/2021_06_03/'
    print('The form of path: \nD:\\Study files\\data sampling\\data\\2021_06_03\n')
    path_name = input("Please input the data's path: ")
    # path_name = r'D:\Study files\课题研究\data sampling\data\2021_06_03'

    colums_num = input("Please input the number of colums: ")
    colums_num = int(colums_num)
    while colums_num <= 0 or colums_num >= 9:
        colums_num = input('The number of colums must be between 1 ~ 8 !')
        colums_num = int(colums_num)

    col = np.zeros([colums_num, ], dtype=int)
    order_name = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth']
    for i in range(colums_num):
        col[i] = input("Please input the " + order_name[i] + " colum: ")
        col[i] = int(col[i])
        # 判断输入是否在1~8之间
        while col[i] <= 0 or col[i] >= 9:
            col[i] = input('It must be between 1 ~ 8 !')
            col[i] = int(col[i])
        col[i] = col[i] - 1

    # 查找数据文件夹中有多少组数据,以便后续便利操作
    all_files = os.listdir(path_name)
    files_num = len(all_files)


    # 遍历每个数据文件
    for i in range(files_num):
        # 读取单个数据文件
        file_name = all_files[i]
        data = pd.read_csv(path_name + '\\' + file_name, header=None)
        # 将数据调整为numpy格式
        data = np.array(data)

        tmp_data = np.zeros([colums_num, data.shape[0]], dtype=float)
        for k in range(colums_num):
            # print(col[k])
            tmp = data[:, col[k]]

            if col[k] == 0:
                for m, n in enumerate(tmp):
                    tmp_data[k, m] = n.split()[-1]
            else:
                for m, n in enumerate(tmp):
                    tmp_data[k, m] = n

        if not os.path.exists(path_name + r'\mat_' + path_name.split('\\')[-1]):
            os.mkdir(path_name + r'\mat_' + path_name.split('\\')[-1])
        for j in range(colums_num):
            sio.savemat(path_name + r'\mat_' + path_name.split('\\')[-1] + '\\' + file_name[:-4] + '_ch' + str(
                col[j] + 1) + '.mat', {'data': tmp_data[j, :]})

        print(file_name + ' has been saved!')

    print('All files are extracted successfully!')

结尾

能力有限,如果存在问题欢迎指点!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值