matlab批量读取并处理.csv文件

matlab批量读取并处理.csv文件

在fpga数据处理时往往要对ila的输出的大量csv文件进行分析,而手动一个一个文件的导入处理太过麻烦。因而笔者编写了一段matlab代码可以对csv文件进行批量处理。

clear;
clc;close all;

file_read=dir('C:\Users\admin\Desktop\shuju\水平\*.csv');  %读取文件夹的位置
														   %在对其他文件类型处理时更改*.csv即可     
filename={file_read.name}; 
file_length=length(file_read);
 
for i=1:file_length
     id=file_read(i).name;
     path=strcat('C:\Users\admin\Desktop\shuju\水平\','\',id);
     data=csvread(path,1,0,[1,0,8192,7]);       %ila的108个csv文件依次读入
     [f1(i,1),f1(i,2),f1(i,3)]=ilapro(data);    %此处调用ilapro函数对数据处理
     											%f1为数据结果result为第一列,rx_add为第二列,rx_dif为第三列
    
 end

此程序不光可以对csv文件进行处理,其他文件类型进行相应更改即可。

%%此函数为笔者所用进行信号处理的函数
function [result,rx_add,rx_dif]=ilapro(data)
%导入数据为复数格式
iladata = data;
rx1_comp = iladata(:,4)+1j*iladata(:,5);
rx2_comp = iladata(:,6)+1j*iladata(:,7);

%plot(fft(rx1_comp));

%取幅值
rx1_abs_arr = abs(rx1_comp);
rx2_abs_arr = abs(rx2_comp);

%求平均
rx1_mean = mean(rx1_abs_arr);
rx2_mean = mean(rx2_abs_arr);

%求和与差,并做运算
rx_add = rx1_mean + rx2_mean;
rx_dif = rx1_mean - rx2_mean;
result = rx_dif/rx_add;


% x_axi = [-20,-15,-10,-5,0,5,10,15,20,25,30];
% y_axi = [
% 0.016478528664057,0.069554793670470,0.069554793670470,0.076067360057933,-0.071667912464474,-0.018676870515626,0.009990320734708,-0.003122688821096,0.015848312968234,-0.033048681655585,-0.043266337449823
% ];
% plot(x_axi,y_axi)
% P = polyfit(x_axi,y_axi,1)



file_read即为中间过程生成用来文件读取,读取和处理顺序依照此表。
matlab批量读取并处理.csv文件_第1张图片
另附有代码下载链接
代码下载

你可能感兴趣的:(matlab,fpga开发,开发语言)