Dawn@4: function func_VS2ssff(data, id, outfile, variables) Dawn@4: % func_VS2ssff(data, id, outfile, variables) Dawn@4: % Notes: Saves the contents of a matfile into an EMU compatible output. Dawn@4: % Dawn@4: % Author: Yen-Liang Shue and Henry Tehrani, UCLA Dawn@4: % Copyright UCLA SPAPL 2009 Dawn@4: Dawn@4: % ssffsize=str2mat('CHAR', 'BYTE', 'SHORT', 'LONG', 'FLOAT', 'DOUBLE'); Dawn@4: % matsize =str2mat('uchar', 'int8', 'int16', 'int32', 'float32', 'float64'); Dawn@4: Dawn@4: %create ssff header Dawn@4: samplerate = 1000 / variables.frameshift; Dawn@4: starttime = 0.0; Dawn@4: hdr=sprintf('%s\n', 'SSFF -- (c) SHLRC'); Dawn@4: hdr=sprintf('%s%s\n', hdr, 'Machine IBM-PC'); Dawn@4: hdr=sprintf('%s%s %i\n', hdr, 'Record_Freq', samplerate); Dawn@4: hdr=sprintf('%s%s %5.2f\n', hdr, 'Start_Time',starttime); Dawn@4: %hdr=sprintf('%s%s %s\n', hdr, 'Comment', comment); Dawn@4: Dawn@4: hdr = sprintf('%s%s %s %s %i\n', hdr, 'Column', id, 'FLOAT', 1); Dawn@4: hdr=sprintf('%s%s\n', hdr, '-----------------'); Dawn@4: %done with ssff header Dawn@4: Dawn@4: % added 3/17/2010 - EMU is unable to read NaN Dawn@4: NaNvalue = str2double(variables.NotANumber); Dawn@4: if (isnan(NaNvalue)) Dawn@4: NaNvalue = 0; % this is the default NaN value Dawn@4: end Dawn@4: Dawn@4: data(isnan(data)) = NaNvalue; Dawn@4: data(isinf(data)) = NaNvalue; Dawn@4: Dawn@4: fid=fopen(outfile,'w'); Dawn@4: %write the header Dawn@4: fprintf(fid, '%s', hdr); Dawn@4: %write the parameter Dawn@4: fwrite(fid,data,'float32', 0,'ieee-le'); Dawn@4: Dawn@4: fclose(fid); Dawn@4: Dawn@4: Dawn@4: