MATLAB讀寫txt文件,並對數據進行二/十/十六進制轉換(量化)


clear;
close all;
clc;

% 讀取數據txt(任意進制、整型、浮點型)
fileID1 = fopen('D:\設計文檔\dataset1_I.txt','r');
[dat_i]=textscan(fileID1,'%f');
fclose(fileID1);

fileID2 = fopen('D:\設計文檔\dataset1_Q.txt','r');
[dat_q]=textscan(fileID2,'%f');
fclose(fileID2);

% cell轉化為數組
dat_i_h = cell2mat(dat_i);
dat_q_h = cell2mat(dat_q);

% 量化為十進制有符號數(含符號位共14bit)
m = max(max(abs(dat_i_h),abs(dat_q_h)));
DATA_I = round(dat_i_h/m*(2^(14-1)-1));
DATA_Q = round(dat_q_h/m*(2^(14-1)-1));

% 將十進制數據寫入txt
fileID_I = fopen('D:\intel_pro\RadarECG\rtl\dataset1_I_dec.txt','w');
if fileID_I == -1
  disp('fopen failed');
else
  for i=1:length(DATA_I)
    fprintf(fileID_I,'%d\n',DATA_I(i));
  end
end
fclose(fileID_I);

fileID_Q = fopen('D:\intel_pro\RadarECG\rtl\dataset1_Q_dec.txt','w');
if fileID_Q == -1
  disp('fopen failed');
else
  for j=1:length(DATA_Q)
    fprintf(fileID_Q,'%d\n',DATA_Q(j));
  end
end
fclose(fileID_Q);

% % 量化為十六進制有符號數(含符號位共14bit)
% m = max(max(abs(dat_i_h),abs(dat_q_h)));
% DATA_I = dec2hex(round(dat_i_h/m*(2^(14-1)-1)));
% DATA_Q = dec2hex(round(dat_q_h/m*(2^(14-1)-1)));
%
% % 將十六進制數據寫入txt
% fileID_I = fopen('D:\intel_pro\RadarECG\rtl\dataset1_I_hex.txt','w');
% if fileID_I == -1
%    disp('fopen failed');
% else
%    for i=1:length(DATA_I)
%       fprintf(fileID_I,'%c%c%c%c\n',DATA_I(i,1),DATA_I(i,2),DATA_I(i,3),DATA_I(i,4));
%    end
% end
% fclose(fileID_I);
%
% fileID_Q = fopen('D:\intel_pro\RadarECG\rtl\dataset1_Q_hex.txt','w');
% if fileID_Q == -1
%    disp('fopen failed');
% else
%    for j=1:length(DATA_Q)
%      fprintf(fileID_Q,'%c%c%c%c\n',DATA_Q(j,1),DATA_Q(j,2),DATA_Q(j,3),DATA_Q(j,4));
%    end
% end
% fclose(fileID_Q);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM