📄 ge_readrawheaderrdbrec.m
字号:
function rdb_hdr = GE_readRawHeaderRdbRec(fid)
%
% rdb_header = GE_readRawHeaderRdbRec(fid)
%
% Loads the rdb_header located in a file with file id fid
% and returns it as a structure.
%
% Souheil J. Inati
% Dartmouth College
% August 2000
% souheil.inati@dartmouth.edu
% define the structure and read in the data
% to overcome the line length limit
% break up the assignment into pieces using the setfield function
rdb_hdr = struct('rdb_hdr_rdbm_rev', fread(fid,1,'float32'));
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_run_int', fread(fid,1,'int32')); % Rdy pkt Run Number %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_scan_seq', fread(fid,1,'int16')); % Rdy pkt Sequence Number %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_run_char', fread(fid,6,'char')); % Rdy pkt Run no in fread(fid,1,'char') %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_scan_date', fread(fid,10,'char')); %%
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_scan_time', fread(fid,8,'char')); %%
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_logo', fread(fid,10,'char')); % rdbmused to verify file %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_file_contents', fread(fid,1,'int16')); % Data type 0=emp 1=nrec 2=rw 0, 1, 2 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_lock_mode', fread(fid,1,'int16')); % unused %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_dacq_ctrl', fread(fid,1,'int16')); % rhdacqctrl bit mask 15 bits %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_recon_ctrl', fread(fid,1,'int16')); % rhrcctrl bit mask 15 bits %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_exec_ctrl', fread(fid,1,'int16')); % rhexecctrl bit mask 15 bits %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_scan_type', fread(fid,1,'int16')); % bit mask 15 bits %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_data_collect_type', fread(fid,1,'int16')); % rhtypebit mask 15 bits %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_data_format', fread(fid,1,'int16')); % rhformatbit mask 15 bits %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_recon', fread(fid,1,'int16')); % rhrecon proc-a-son recon 0 - 100 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_datacq', fread(fid,1,'int16')); % rhdatacq proc-a-son dacq %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_npasses', fread(fid,1,'int16')); % rhnpasses passes for a scan0 - 256 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_npomp', fread(fid,1,'int16')); % rhnpomp pomp group slices 1,2 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_nslices', fread(fid,1,'int16')); % rhnslices slices in a pass 0 - 256 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_nechoes', fread(fid,1,'int16')); % rhnecho echoes of a slice 1 - 32 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_navs', fread(fid,1,'int16')); % rhnavs num of excitiations 1 - 32727 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_nframes', fread(fid,1,'int16')); % rhnframes yres 0 - 1024 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_baseline_views', fread(fid,1,'int16')); % rhbline baselines 0 - 1028 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_hnover', fread(fid,1,'int16')); % rhhnover overscans 0 - 1024 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_frame_size', fread(fid,1,'int16')); % rhfrsize xres 0 - 1024 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_point_size', fread(fid,1,'int16')); % rhptsize 2 - 4 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_vquant', fread(fid,1,'int16')); % rhvquant 3d volumes 1 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_cheart', fread(fid,1,'int16')); % RX Cine heart phases 1 - 32 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_ctr', fread(fid,1,'float32')); % RX Cine TR in sec 0 - 3.40282e38%
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_ctrr', fread(fid,1,'float32')); % RX Cine RR in sec 0 - 30.0 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_initpass', fread(fid,1,'int16')); % rhinitpass allocate passes0 - 32767 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_incrpass', fread(fid,1,'int16')); % rhincrpass tps autopauses 0 - 32767 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_method_ctrl', fread(fid,1,'int16')); % rhmethod0=recon, 1=psd 0, 1 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_da_xres', fread(fid,1,'int16')); % rhdaxres 0 - 1024 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_da_yres', fread(fid,1,'int16')); % rhdayres 0 - 2049 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_rc_xres', fread(fid,1,'int16')); % rhrcxres 0 - 1024 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_rc_yres', fread(fid,1,'int16')); % rhrcyres 0 - 1024 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_im_size', fread(fid,1,'int16')); % rhimsize 0 - 512 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_rc_zres', fread(fid,1,'int32')); % power of 2 > rhnslices 0 - 128 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_raw_pass_size', fread(fid,1,'int32')); % rhrawsize 0 - 2147483647%
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_sspsave', fread(fid,1,'int32')); % rhsspsave 0 - 2147483647%
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_udasave', fread(fid,1,'int32')); % rhudasave 0 - 2147483647%
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_fermi_radius', fread(fid,1,'float32')); % rhfermr fermi radius 0 - 3.40282e38%
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_fermi_width', fread(fid,1,'float32')); % rhfermw fermi width 0 - 3.40282e38%
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_fermi_ecc', fread(fid,1,'float32')); % rhferme fermi excentiricty 0 - 3.40282e38%
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_clip_min', fread(fid,1,'float32')); % rhclipmin 4x IP limit +-16383 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_clip_max', fread(fid,1,'float32')); % rhclipmax 4x IP limit +-16383 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_default_offset', fread(fid,1,'float32')); % rhdoffset default offset = 0 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_xoff', fread(fid,1,'float32')); % rhxoff scroll img in x +-256 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_yoff', fread(fid,1,'float32')); % rhyoff scroll img in y +-256 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_nwin', fread(fid,1,'float32')); % rhnwin hecho window width 0 - 256 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_ntran', fread(fid,1,'float32')); % rhntran hecho trans width 0 - 256 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_scalei', fread(fid,1,'float32')); % PS rhscalei +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_scaleq', fread(fid,1,'float32')); % PS rhscaleqdef = 0 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_rotation', fread(fid,1,'int16')); % RX 0 90 180 270 deg 0 - 3 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_transpose', fread(fid,1,'int16')); % RX 0, 1 n / y transpose 0 - 1%
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_kissoff_views', fread(fid,1,'int16')); % rhblank zero image views 0 - 512 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_slblank', fread(fid,1,'int16')); % rhslblankslice blank 3d 0 - 128 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_gradcoil', fread(fid,1,'int16')); % RX 0=off 1=Schnk 2=Rmr 0 - 2 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_ddaover', fread(fid,1,'int16')); % rhddaover unused %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_sarr', fread(fid,1,'int16')); % SARR bit mask 15 bits %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_fd_tr', fread(fid,1,'int16')); % SARR feeder timing info %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_fd_te', fread(fid,1,'int16')); % SARR feeder timing info %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_fd_ctrl', fread(fid,1,'int16')); % SARR control of feeder %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_algor_num', fread(fid,1,'int16')); % SARR df decimation ratio %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_fd_df_dec', fread(fid,1,'int16')); % SARR which feeder algor %
% NOTE: this is different from the rdbm.h style %
% rdb_hdr_dab is a 4 element array of structures of type RDB_MULTI_RCV_TYP
% RDB_MULTI_RCV_TYP is a struct of two elements
% typedef struct
% {
% short start_rcv;
% short stop_rcv;
% } RDB_MULTI_RCV_TYPE;
% instead of this I'm using 8 shorts named as expected
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_dab1_start_rcv', fread(fid,1,'int16')); % rhdab0s rhdab0e st, stp rcv 0 - 15 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_dab1_stop_rcv', fread(fid,1,'int16')); % rhdab0s rhdab0e st, stp rcv 0 - 15 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_dab2_start_rcv', fread(fid,1,'int16')); % rhdab0s rhdab0e st, stp rcv 0 - 15 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_dab2_stop_rcv', fread(fid,1,'int16')); % rhdab0s rhdab0e st, stp rcv 0 - 15 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_dab3_start_rcv', fread(fid,1,'int16')); % rhdab0s rhdab0e st, stp rcv 0 - 15 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_dab3_stop_rcv', fread(fid,1,'int16')); % rhdab0s rhdab0e st, stp rcv 0 - 15 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_dab4_start_rcv', fread(fid,1,'int16')); % rhdab0s rhdab0e st, stp rcv 0 - 15 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_dab4_stop_rcv', fread(fid,1,'int16')); % rhdab0s rhdab0e st, stp rcv 0 - 15 %
% end change
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user0', fread(fid,1,'float32')); % rhuser0 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user1', fread(fid,1,'float32')); % rhuser1 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user2', fread(fid,1,'float32')); % rhuser2 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user3', fread(fid,1,'float32')); % rhuser3 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user4', fread(fid,1,'float32')); % rhuser4 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user5', fread(fid,1,'float32')); % rhuser5 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user6', fread(fid,1,'float32')); % rhuser6 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user7', fread(fid,1,'float32')); % rhuser7 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user8', fread(fid,1,'float32')); % rhuser8 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user9', fread(fid,1,'float32')); % rhuser9 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user10', fread(fid,1,'float32')); % rhuser10 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user11', fread(fid,1,'float32')); % rhuser11 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user12', fread(fid,1,'float32')); % rhuser12 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user13', fread(fid,1,'float32')); % rhuser13 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user14', fread(fid,1,'float32')); % rhuser14 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user15', fread(fid,1,'float32')); % rhuser15 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user16', fread(fid,1,'float32')); % rhuser16 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user17', fread(fid,1,'float32')); % rhuser17 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user18', fread(fid,1,'float32')); % rhuser18 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_user19', fread(fid,1,'float32')); % rhuser19 +-3.40282e38 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_type', fread(fid,1,'int32')); % rhvtypebit mask 31 bits %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_coefxa', fread(fid,1,'float32')); % RX x flow direction control 0 - 4 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_coefxb', fread(fid,1,'float32')); % RX x flow direction control 0 - 4 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_coefxc', fread(fid,1,'float32')); % RX x flow direction control 0 - 4 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_coefxd', fread(fid,1,'float32')); % RX x flow direction control 0 - 4 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_coefya', fread(fid,1,'float32')); % RX y flow direction control 0 - 4 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_coefyb', fread(fid,1,'float32')); % RX y flow direction control 0 - 4 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_coefyc', fread(fid,1,'float32')); % RX y flow direction control 0 - 4 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_coefyd', fread(fid,1,'float32')); % RX y flow direction control 0 - 4 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_coefza', fread(fid,1,'float32')); % RX z flow direction control 0 - 4 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_coefzb', fread(fid,1,'float32')); % RX z flow direction control 0 - 4 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_coefzc', fread(fid,1,'float32')); % RX z flow direction control 0 - 4 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_coefzd', fread(fid,1,'float32')); % RX z flow direction control 0 - 4 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_vm_coef1', fread(fid,1,'float32')); % RX weight for mag image 1 0 - 1 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_vm_coef2', fread(fid,1,'float32')); % RX weight for mag image 2 0 - 1 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_vm_coef3', fread(fid,1,'float32')); % RX weight for mag image 3 0 - 1 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_vm_coef4', fread(fid,1,'float32')); % RX weight for mag image 4 0 - 1 %
rdb_hdr = setfield(rdb_hdr, 'rdb_hdr_v_venc', fread(fid,1,'float32')); % RX vel encodeing cm / sec 0.001 - 5000 %
rdb_hdr = setfield(rdb_hdr, 'spectral_width', fread(fid,1,'float32')); % specwidthfilter width kHz 500 - 3355432 %
rdb_hdr = setfield(rdb_hdr, 'csi_dims', fread(fid,1,'int16')); % spectro %
rdb_hdr = setfield(rdb_hdr, 'xcsi', fread(fid,1,'int16')); % rhspecrescsix 2 - 64 %
rdb_hdr = setfield(rdb_hdr, 'ycsi', fread(fid,1,'int16')); % rhspecrescsiy 2 - 64 %
rdb_hdr = setfield(rdb_hdr, 'zcsi', fread(fid,1,'int16')); % spectro %
rdb_hdr = setfield(rdb_hdr, 'roilenx', fread(fid,1,'float32')); % RX x csi volume dimension %
rdb_hdr = setfield(rdb_hdr, 'roileny', fread(fid,1,'float32')); % RX y csi volume dimension %
rdb_hdr = setfield(rdb_hdr, 'roilenz', fread(fid,1,'float32')); % RX z csi volume dimension %
rdb_hdr = setfield(rdb_hdr, 'roilocx', fread(fid,1,'float32')); % RX x csi volume center %
rdb_hdr = setfield(rdb_hdr, 'roilocy', fread(fid,1,'float32')); % RX y csi volume center %
rdb_hdr = setfield(rdb_hdr, 'roilocz', fread(fid,1,'float32')); % RX z csi volume center %
rdb_hdr = setfield(rdb_hdr, 'numdwell', fread(fid,1,'float32')); % specdwells 0 - 3.40282e38%
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -