-
Notifications
You must be signed in to change notification settings - Fork 2
/
BiopacMap_BIN.m
76 lines (65 loc) · 2.35 KB
/
BiopacMap_BIN.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
function saida = BiopacMap_BIN()
global Arquivo Path Sinal Configuracao;
Parametros = [];
Modo = 'Dialogo';
Modo = strcmp(upper(Modo),'DIALOGO');
Resposta = 1;
% PARAMETROS assume o formato { 'Path' 'Arquivo' 'Calibrados'_OU_'Volts' } para as funções AbrirDAS_BIN, AbrirDAS_TXT.
[Arquivo1 Path1] = uigetfile('*.bin','Importar Arquivo Binário do DAS','MultiSelect','on');
% Atualiza variaveis
%LimparTudo;
Path = Path1;
for i = 1:length(Arquivo1)
Arquivo = Arquivo1{i};
%BioMecanica('wait'); % linha 102 comentada!!!
FileID=fopen([Path Arquivo],'r','b');
% Carrega cabecalho da primeira linha - Numero de canais, frequencia de amostragem
frewind(FileID);
dim=fread(FileID,2,'uint32');
temp=fread(FileID,[dim(2) dim(1)],'float32')';
famost=temp(1,1);
ncanais=temp(1,2);
graupoli=dim(2);
temp=temp(2:end,:);
% Carrega Linha de base
BaseLine=temp(1:ncanais,1);
Configuracao.LinhaBaseSinais = temp(1:ncanais,1);
Configuracao.RuidoLinhaBaseSinais = temp(1:ncanais,2);
% Carrega Ganhos positivos
temp=temp(ncanais+1:end,:);
PositiveGain=[fliplr(temp(1:ncanais,:)) zeros(ncanais,1)];
Configuracao.GanhoPositivo = PositiveGain;
% Carrega Ganhos Negativos
temp=temp(ncanais+1:end,:);
NegativeGain=[fliplr(temp(1:ncanais,:)) zeros(ncanais,1)];
Configuracao.GanhoNegativo = NegativeGain;
temp=temp(2:end,:);
temp=temp(ncanais+1:end,:);
% Carrega Nome de Cada Canal
dim=fread(FileID,1,'uint32');
Sinal.Nome = { };
for j = 1:dim
Sinal.Nome(j) = {char(fread(FileID,fread(FileID,1,'uint32'),'uchar')')};
end;
% Carrega a hora de gravacao
Hora=char(fread(FileID,fread(FileID,1,'uint32'),'uchar')');
if isempty(findstr(':',Hora))Linha
Hora = [];
end;
% Carrrega arquivo
Sinal.Dado=fread(FileID,[ncanais inf],'float32');
fclose(FileID);
% Tira linha de base
for k = 1:ncanais
Sinal.Dado(:,k) = (Sinal.Dado(:,k) - BaseLine(k));
end;
Sinal.Mapa{i} = Sinal.Dado;
end
% Salva configuracao
Configuracao.FrequenciaAmostragem = famost;
Configuracao.ArquivoOriginal = Arquivo;
if ~isempty(Hora)
Configuracao.Hora = datestr(datenum(Hora),13);
end;
saida.Sinal = Sinal;
saida.Configuracao = Configuracao;