Товарищи, помогите, пожалуйста.
Делаю конвертацию float (single) отсчетов моего сигнала из десятичной системы счисления в шестнадцатеричную. Пишу скрипт в матлабе, т.к. сэмплы оттуда получаю.
Для конвертации использую
num2hex( single( value ) );
И полученный массив сэмплов в hex'е надо бы вывести в *dat-файл (чтоб в hex внутри все было). но чего-то не выходит =(
Код
% Create scrip that convert float numbers to hexidecimal.
% This file is useful for example if we need to load *.dat file to Code
% Composer Studio. But this dat-file can understand only hexidecimal format
% of number types such as int, long, float.
% For start to work You must to set the input/output file name and path
%and data type working with
filename = 'dspInputSamples.dat';
outFileName = 'dspInputSamplesHEX.dat';
dataType = 'single'; %data of this type we read from input file with
% "filename" name
%descriptor of the file that must be opened
%fid = fopen('my_file.dat', 'wb'); % открытие файла на запись
inputFID = fopen( filename, 'rb');
if inputFID == -1
error('input File is not opened');
end
%descriptor of teh output file
outputFID = fopen(outFileName, 'wb+');
if outputFID == -1
error('output File is not opend');
end
%initialize the 1-D row vector. In this value we will save unput data
rowVec = 0;
%READ FROM FILE
%samplesCnt - the number of elements read
[rowVec, samplesCnt ] = fscanf( inputFID, '%f', inf );
%preallocate 1D column vector
rowVecHEX = zeros( 1, samplesCnt, dataType);
%CONVERTION
rowVecHEX = num2hex( single( rowVec ) );
%WRITE TO FILE
%fprintf( outputFID, '%.9f\r\n', rowVec );
fprintf( outputFID, '%s\r\n', rowVecHEX );
%save( outFileName, rowVecHEX);
%display the row vector
disp( rowVecHEX );
fclose( inputFID );
fclose( outputFID );
прилагаю всю папку из матлаба.
P.s. гуглить -гуглил, дельное найти не могу. ТО, что нашел - не помогает, но толи формулировка не та, то ли ....
В консоль матлаба то выводит нормально.
Из консоли:
bd3e4111
3c5fb523
3d1456b1
3d03ea5e
bc624bc3
Вот надо типа этого получить, только в файле
Сообщение отредактировал beaRTS - Nov 26 2012, 05:27