%% 循环读取某路径下相同文件格式的文件
%% 以*.dat文件为例
clear all;
files = dir(strcat('g:\\breath_data\\','*.dat'));
file_num = 100;%文件个数
adc_datai = zeros(file_num,2048);
adc_dataq = zeros(file_num,2048);
for i = 1:file_num
fp = fopen(strcat('g:\breath_data\',file(i).name));
adc_data = fread(fp,2048*2,'int16');
adc_datai(i,:) = adc_data(1:2:4096 - 1);
adc_dataq(i,:) = adc_data(2:2:4096);
end
%% 产生一个单音信号
clear all;
real = zeros(1,1024);
imag = zeros(1,1024);
data_fre = 0.1; %signal_rate
fsample = 2; %sampling_rate
N = 1024; %sample_point
t = (0:N-1)/fsample;
real = 2*cos(2*pi*data_fre*t);
imag = 2*sin(2*pi*data_fre*t);
fft_data = abs(fft(real + 1i*imag,1024));%对复数信号做FFT
figure(1);
plot(fft_data);
%% 原码<--->补码
%% 以16位宽数据为例
clear all;
%%原码到补码
for i = 1:1024
if data(i) < 0
data(i) = data(i) + 2^16;
else
data(i) = data(i);
end
end
%%补码到原码
for i = 1:1024
data(i) = bitshift(data(i),-15);
if data(i) < 0
data(i) = data(i);
else
data(i) = data(i) - 2^16;
end
end