Escolar Documentos
Profissional Documentos
Cultura Documentos
Andrade AO, Pereira AA, Galvão Pinheiro Jr C, Kyberd PJ (2013) Mouse emulation based on
facial electromyogram. Biomed Signal Process Control 8:142–152.
https://doi.org/10.1016/j.bspc.2012.09.001
https://github.com/aoandrade/FHUS/blob/5109372fdd3dbb605c47c1352402c55c9c47abcc/
ProgramaEmuladorDeMouse.zip
Q1. Dado o diagrama de estados abaixo, e considerando a máquina de estado finito definada
no exemplo dado em aula (disponível no slide), desenhe o diagrama de estados das variáveis
Fx e Fy (veja as definições no slide).
1
Q2. Faça um programa em C# que compute as seguintes características. Para a característica
AutoCorrAbs, adote o valor de m=2. Exemplifique o uso do programa para calcular o valor de
cada uma das características para o vetor
X = [0.25, -2.28, 1.11, 0.42, -1.46, 0.19, -0.75, -0.29, 1.71, -0.78, -1.30, -0.11, -0.76, 1.46,
2.44, 1.83, 0.33, 0.60,-0.74, -1.70]
R:
using System;
class Program
sum += Math.Abs(value);
2
static double CalculateAutoCorrAbs(double[] x, int m)
int N = x.Length;
double[] X = { 0.25, -2.28, 1.11, 0.42, -1.46, 0.19, -0.75, -0.29, 1.71, -0.78, -1.30, -0.11, -
0.76, 1.46, 2.44, 1.83, 0.33, 0.60, -0.74, -1.70 };
// Calcular MAV
Console.WriteLine($"MAV: {mav}");
// Calcular StdAbs
Console.WriteLine($"StdAbs: {stdAbs}");
int m = 2;
Q3. Na interface eletromiográfica definida na aula (ver slide) quais os critérios para a definição
dos estados (LOW ou HIGH) dos 2 canais de eletromiografia (X e Y)?
R: FX (X): LOW: Pode ser definido como LOW quando uma condição específica não é
atendida (por exemplo, uma variável do sistema está abaixo de um limiar). HIGH: Pode ser
definido como HIGH quando a condição é atendida.
3
FY (Y): LOW: Pode ser definido como LOW em uma situação específica (por exemplo, quando
um sensor não detecta uma condição relevante). HIGH: Pode ser definido como HIGH
quando a condição é detectada.
P1 = [1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0]
P2 = [1.2 2.5 3.3 4.7 5.3 6.2 7.1 8.3 9.1 9.8]
P3 = [10 20 30 40 50 60 70 80 90 100]
R:
using System;
class Program
if (p.Length != q.Length)
return Math.Sqrt(sum);
double[] P1 = { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 };
double[] P2 = { 1.2, 2.5, 3.3, 4.7, 5.3, 6.2, 7.1, 8.3, 9.1, 9.8 };
double[] P3 = { 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0 };
4
// Distância entre P1 e P2
// Distância entre P1 e P3
// Distância entre P2 e P3
R: Através da comparação das médias dos vetores P1 e P2 com o vetor P3. Se a média de P3
estiver significativamente diferente das médias de P1 e P2, você pode usar essa diferença
como um critério para discriminar sinal de ruído:
mean_P1 = np.mean(P1)
mean_P2 = np.mean(P2)
a) Implemente uma função em C# que calcule o limiar (th) capaz de discriminar ruído
atividade eletromiográfica. A sua função deve receber como parâmetros de entrada as
seguintes variáveis: xn (série temporal discreta que representa uma atividade de
5
ruído); w (tamanho da janela de processamento em ms); fs (frequência de amostragem
de xn em Hz). A função deve retornar o valor de th.
R: using System;
class Program
double somaQuadrados = 0;
6
// Calculando o desvio padrão
double fatorLimiar = 3;
// Calculando o limiar
return th;
R: using System;
class Program
double[] xn = GerarRuidoUniforme(duracaoTotalSegundos,
frequenciaAmostragem);
7
int numeroAmostras = (int)(duracaoSegundos * frequenciaAmostragem);
xn[i] = rand.NextDouble() * 2 - 1;
return xn;
// ...
return th;
Q7. Implemente em C#, utilizando a instrução switch/case, a máquina de estado abaixo. Ilustre
o funcionamento desta máquina para o diagrama de tempo de estado disponível na questão 1.
8
Q8: Dado o diagrama espacial que ilustra o movimento de uma abelha em um cenário
bidimensional, com coordenadas X e Y, bem como os gráficos do deslocamento da abelha em X
e Y em função do tempo, responda:
a. Considerando que antes do tempo zero a abelha estava parada e que o tempo de
coleta (tc) do pólen é igual ao tempo de depósito (td) do pólen (tc = td = 200 ms),
desenhe o diagrama de estados que ilustre a tarefa da abelha de sair de sua posição
inicial, coletar o pólen (na flor com pólen) e depositar o pólen (na flor sem pólen). Em
sua solução considere uma máquina de 5 estados (1: repouso, 2: movendo ao longo do
eixo X a uma velocidade de 1 m/s, 3: movendo ao longo do eixo Y a uma velocidade de
1 m/s, 4: coleta do pólen, 5: depósito do pólen). Para transitar de um estado para
outro, obrigatoriamente deve-se retornar ao estado 1 e permanecer nele por 200 ms.
O tempo de transição de um estado para outro é desprezível.
b. Desenhe o diagrama da máquina de estados de acordo com as regras definidas no
item a.
c. Como poderíamos controlar a dificuldade do jogo por meio da variável velocidade de
movimento da abelha?
9
4
Abelha
0
0 1 2 3 4
X
X
4
Distância (m)
3
2
1
0
0 1 2 3 4 5 6 7 8 9
Tempo (s)
Y
4
Distância (m)
3
2
1
0
0 1 2 3 4 5 6 7 8 9
Tempo (s)
10
Q9: Considerando a arquitetura básica dos componentes básicos de uma interface homem-
máquina, responda:
11
processados pelo sistema. Um filtro inadequado pode causar distorções nos dados
de entrada ou saída, afetando a interpretação correta da informação.
Q10: Dado as figuras abaixo, identifique os tipos de sensores que poderiam ser utilizados para
detectar os sinais das pessoas, e exemplifique um possível tipo de interface que poderia ser
desenvolvida a partir da combinação dos sinais coletados.
Uma potencial interface que poderia ser desenvolvida a partir dos sinais coletados de um
eletrodo de EEG (eletroencefalograma) consistiria em um sistema de controle cerebral para
12
dispositivos eletrônicos. Ao posicionar o eletrodo no couro cabeludo para capturar os sinais
elétricos gerados pela atividade cerebral, esses padrões seriam processados e classificados
em diferentes estados mentais, como relaxamento, foco, estresse ou atenção.
13
R: Na interface homem-máquina, a aplicação de módulos de segmentação/janelamento de
dados, extração de características e classificação desempenha um papel crucial em sistemas
que envolvem o processamento de sinais, como interfaces baseadas em dados biométricos
(por exemplo, sinais de eletromiografia ou eletroencefalografia). O processo começa com a
segmentação ou janelamento dos dados, onde a informação é dividida em segmentos
temporais menores, permitindo uma análise mais detalhada.
Por fim, o módulo de classificação categoriza os dados com base nessas características,
atribuindo rótulos ou classes a cada segmento, refletindo, por exemplo, a intenção de
movimento ou o estado emocional do usuário. Essa classificação é fundamental para traduzir
os sinais fisiológicos ou comportamentais do usuário em comandos compreensíveis para o
sistema, permitindo uma interação natural e intuitiva em contextos onde interfaces
convencionais podem não ser práticas. A escolha de algoritmos específicos para cada
módulo depende do contexto da aplicação, características dos dados e requisitos de
desempenho da interface homem-máquina.
14