⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readdata.m

📁 整数时延和分数时延的方法。分数时延是用的基于拉格朗日插值的FIR滤波!然后256个点读取数据 进行GCCPHAT的算法
💻 M
字号:
% deal data from specified data file
clear; 
data_fname1='111.bin'; % 这里是文件名
file_id1=fopen(data_fname1,'rb'); 
data_fname2='222.bin'; % 这里是文件名
file_id2=fopen(data_fname2,'rb'); 
s1=[zeros(1,128)];
s3=[zeros(1,128)];
bmaxid=fopen('1111.bin','a');
%dmaxid=fopen('2222.bin','a');
while feof(file_id1)~=1 &feof(file_id2)~=1 
    % 数据类型是int16,每次读入256个数
    % raw_array每次都是256x1的矩阵,ele_count为读入的数的个数(正常情况下应为256)
    [row_array1,ele_count]=fread(file_id1,128,'double'); 
    [row_array2,el_count]=fread(file_id2,128,'double'); 
    if ele_count <128 % elecount < 512代表数据不够,已经到了文件的结尾
        break; 
    else 
        % 将256x1的row_array转置一下,变为1x256的矩阵
        % s1=[zeros(128)];
        %s2=[s1,s(1:128)];
        % y=gccphat(t1,t2);
        % s1=s(129:256);
        row_array1=row_array1'; 
        s2=[s1,row_array1(1:128)]
        s1=row_array1(1:128);
    %[row_array2, el_count]=fread(file_id2,128, 'double'); 
    if el_count <128 % elcount < 512代表数据不够,已经到了文件的结尾
        break; 
    else 
         row_array2=row_array2'; 
        s4=[s3,row_array2(1:128)]
        s3=row_array2(1:128);
        fx1=fft(s2);
        %fx1=fx1(1:256);
        fx2=fft(s4);
        %fx2=fx2(1:256);
        Pxy=fx1.*conj(fx2);
        Rxy=Pxy./abs(Pxy);
        R=ifft(Rxy);
        d1=real(R);
        [dmax,bmax]=max(d1);
        %dmaxid=fopen('1111.bin','a');
        %count1=fwrite(dmaxid,dmax,'double');
        %fclose(dmaxid);
        %bmaxid=fopen('2222.bin','a');
        court1=fwrite(bmaxid,bmax,'double');
        %court1=fwrite(dmaxid,bmax,'double');
        %fclose(bmaxid);
        end
    end
end       
fclose(bmaxid);
%fclose(dmaxid);
fclose(file_id1);
fclose(file_id2);
% 关闭文件
clear data_fname file_id fid ele_count i m n row_array ans;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -