Buscar

listaM4

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

FATORES HUMANOS E ENGENHARIA DE USABILIDADE
Lista de exercícios – Módulo 4
Instruções gerais para a resolução da lista:
a. Revise os slides da aula (arquivo M4-SlidesFHUS.pdf disponível no Moodle).
b. Leia o artigo abaixo (arquivo PaperAOA.pdf disponível no Moodle)
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
c. Estude o programa em C# disponível em 
https://github.com/aoandrade/FHUS/blob/5109372fdd3dbb605c47c1352402c55c9c47abcc/ProgramaEmuladorDeMouse.zip
d. Leia o material disponível em (Arquitetura e organização do jogo.docx e Arquitetura_Organização_RehaBEElitation.pptx – ambos os arquivos estão disponíveis na plataforma Moodle).
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).
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
{
 static double CalculateMAV(double[] x)
 {
 double sum = 0.0;
 foreach (var value in x)
 {
 sum += Math.Abs(value);
 }
 return sum / x.Length;
 }
 static double CalculateStdAbs(double[] x, double mav)
 {
 double sumSquaredDiff = 0.0;
 foreach (var value in x)
 {
 sumSquaredDiff += Math.Pow(Math.Abs(value) - mav, 2);
 }
 return Math.Sqrt(sumSquaredDiff / x.Length);
 }
 static double CalculateAutoCorrAbs(double[] x, int m)
 {
 int N = x.Length;
 double mean = CalculateMAV(x);
 double sum = 0.0;
 for (int t = 0; t < N - m; t++)
 {
 sum += Math.Abs(x[t] - mean) * Math.Abs(x[t + m] - mean);
 }
 return sum / (N - m);
 }
 static void Main()
 {
 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
 double mav = CalculateMAV(X);
 Console.WriteLine($"MAV: {mav}");
 // Calcular StdAbs
 double stdAbs = CalculateStdAbs(X, mav);
 Console.WriteLine($"StdAbs: {stdAbs}");
 // Calcular AutoCorrAbs para m=2
 int m = 2;
 double autoCorrAbs = CalculateAutoCorrAbs(X, m);
 Console.WriteLine($"AutoCorrAbs para m={m}: {autoCorrAbs}");
 }
}
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.
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.
Q4. Defina distância Euclidiana, e desenvolva um programa em C# que realize o cálculo da distância Euclidiana entre dois vetores, de qualquer dimensão. Exemplifique o uso do programa para calcular as distâncias entre os vetores, P1P2, P1P3 e P2P3.
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
{
 static double EuclideanDistance(double[] p, double[] q)
 {
 if (p.Length != q.Length)
 {
 throw new ArgumentException("Os vetores devem ter a mesma dimensão.");
 }
 double sum = 0.0;
 for (int i = 0; i < p.Length; i++)
 {
 double diff = q[i] - p[i];
 sum += diff * diff;
 }
 return Math.Sqrt(sum);
 }
 static void Main()
 {
 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 };
 // Distância entre P1 e P2
 double distanceP1P2 = EuclideanDistance(P1, P2);
 Console.WriteLine("Distância entre P1 e P2: " + distanceP1P2);
 // Distância entre P1 e P3
 double distanceP1P3 = EuclideanDistance(P1, P3);
 Console.WriteLine("Distância entre P1 e P3: " + distanceP1P3);
 // Distância entre P2 e P3
 double distanceP2P3 = EuclideanDistance(P2, P3);
 Console.WriteLine("Distância entre P2 e P3: " + distanceP2P3);
 }
}
Q5. Se na questão 4, os vetores P1 e P2 representassem atividades de ruído, e P3 de sinal eletromiográfico, como poderíamos definir um limiar para discriminar ruído de sinal? 
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:
# Cálculo da média dos vetores de ruído
mean_P1 = np.mean(P1)
mean_P2 = np.mean(P2)
# Escolha de um intervalo como limiar (pode ser ajustado conforme necessário)
limiar_inf = min(mean_P1, mean_P2)
limiar_sup = max(mean_P1, mean_P2)
# Verificação se os valores de P3 estão fora do intervalo
result = (P3 < limiar_inf) | (P3 > limiar_sup)
print("Valores de P3 fora do intervalo:", P3[result]) 
Q6. Definição de ruído e sinal: cálculo de limiares
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 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
{
 static void Main()
 {
 // Exemplo de uso da função
 double[] xn = { /* Sua série temporal discreta aqui */ };
 double w = 50; // Tamanho da janela em ms
 double fs = 1000; // Frequência de amostragem em Hz
 double th = CalcularLimiar(xn, w, fs);
 Console.WriteLine($"O limiar calculado é: {th}");
 }
 static double CalcularLimiar(double[] xn, double w, double fs)
 {
 int tamanhoJanela = (int)(w * fs / 1000); // Convertendo o tamanho da janela para o número de amostras
 int numeroJanelas = xn.Length / tamanhoJanela; // Calculando o número de janelas
 double somaQuadrados = 0;
 // Calculando a soma dos quadrados das amplitudes em cada janela
 for (int i = 0; i < numeroJanelas; i++)
 {
 for (int j = 0; j < tamanhoJanela; j++)
 {
 int indice = i * tamanhoJanela + j;
 somaQuadrados += xn[indice] * xn[indice];
 }
 }
 // Calculando a média dos quadrados das amplitudes
 double mediaQuadrados = somaQuadrados / (numeroJanelas * tamanhoJanela);
 // Calculando o desvio padrão
 double desvioPadrao = Math.Sqrt(mediaQuadrados);
 // Definindo um fator (por exemplo, 3) para multiplicar o desvio padrão e obter o limiar
 double fatorLimiar = 3;
 // Calculando o limiar
 double th = fatorLimiar * desvioPadrao;
 return th;
 }
}
b) Use a função implementada de forma a calcular o valor de th para um ruído xn, amostrado a partir de uma distribuição uniforme. A duração total do ruído deve ser de 10 segundos, a frequência de amostragem deve ser de 500 Hz e o tamanho da janela de processamento deve ser de 50 ms.
R: using System;
class Program
{
 static voidMain()
 {
 // Configuração dos parâmetros
 int duracaoTotalSegundos = 10;
 double frequenciaAmostragem = 500; // Hz
 double tamanhoJanela = 50; // ms
 // Geração de um ruído amostrado a partir de uma distribuição uniforme
 double[] xn = GerarRuidoUniforme(duracaoTotalSegundos, frequenciaAmostragem);
 // Cálculo do limiar usando a função CalcularLimiar
 double th = CalcularLimiar(xn, tamanhoJanela, frequenciaAmostragem);
 Console.WriteLine($"O limiar calculado para o ruído é: {th}");
 }
 static double[] GerarRuidoUniforme(int duracaoSegundos, double frequenciaAmostragem)
 {
 int numeroAmostras = (int)(duracaoSegundos * frequenciaAmostragem);
 double[] xn = new double[numeroAmostras];
 Random rand = new Random();
 for (int i = 0; i < numeroAmostras; i++)
 {
 // Amostrando a partir de uma distribuição uniforme entre -1 e 1
 xn[i] = rand.NextDouble() * 2 - 1;
 }
 return xn;
 }
 static double CalcularLimiar(double[] xn, double w, double fs)
 {
 // Implementação da função CalcularLimiar conforme fornecido anteriormente
 // ...
 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.
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?
Q9: Considerando a arquitetura básica dos componentes básicos de uma interface homem-máquina, responda:
a) Qual a função de um sensor na interação homem-máquina?
R: Um sensor na interação homem-máquina tem a função de coletar informações do ambiente ou do usuário e convertê-las em sinais elétricos ou digitais que possam ser interpretados por um sistema computacional. Essas informações podem ser de natureza variada, como temperatura, pressão, luz, som, toque, movimento, etc. Os sensores são responsáveis por capturar dados do mundo real e torná-los disponíveis para o sistema.
b) Qual a função de um atuador na interação homem-máquina?
R: Um atuador é responsável por converter sinais elétricos ou digitais do sistema em ações físicas no ambiente ou em resposta ao usuário. Isso significa que ele traduz as saídas do sistema em movimento, luz, som ou qualquer outra forma de resposta perceptível pelo ser humano. Por exemplo, um atuador pode ser um motor que move um cursor na tela, um alto-falante que emite som ou um motor que aciona uma válvula.
c) Como o meio de transmissão, representado pelo cabo no diagrama, pode afetar o processo de interação homem-máquina?
R: O meio de transmissão, representado pelo cabo no diagrama, desempenha um papel importante na interação homem-máquina. A qualidade, a velocidade e a confiabilidade da transmissão de dados através desse meio podem afetar significativamente a eficácia da interação. Por exemplo, cabos danificados ou de má qualidade podem causar perda de dados, atrasos na transmissão ou interferências, o que pode prejudicar a experiência do usuário.
d) Como o filtro representado no diagrama acima pode afetar o processo de interação homem-máquina?
R: O filtro representado no diagrama é responsável por limitar ou modificar as características do sinal que passa por ele. Os filtros são usados para remover ruídos, suavizar sinais ou destacar determinadas frequências. A escolha do tipo e das configurações do filtro pode afetar a precisão e a qualidade dos dados que são 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.
e) Como a resolução do conversor analógico digital pode afetar o processo de interação homem-máquina?
R: A resolução de um conversor analógico-digital (ADC) determina a precisão com que um sinal analógico é convertido em um valor digital. Quanto maior a resolução, mais detalhado e preciso será o resultado digital. Uma baixa resolução pode resultar em perda de detalhes importantes, o que pode afetar a qualidade da interação. Por exemplo, em um sensor de temperatura, uma resolução baixa pode não capturar variações sutis de temperatura, enquanto uma resolução alta pode fornecer leituras mais precisas e úteis para o usuário. Portanto, a resolução do ADC é crítica para a precisão da interação homem-máquina em muitos contextos.
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.
R: Sensor de temperatura com infravermelho:
Uma potencial interface derivada da combinação dos sinais de um sensor de temperatura com infravermelho seria um sistema inteligente de controle térmico para ambientes. O sensor coletaria dados precisos sobre a temperatura em diversas áreas, os quais seriam processados para identificar padrões e variações térmicas. Essas informações seriam apresentadas de maneira intuitiva em uma interface gráfica, permitindo que os usuários visualizem mapas de temperatura do ambiente, destacando áreas quentes e frias. 
R: Eletrodos para realização de EEG:
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 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. 
Q11: Dado os trechos de sinais abaixo, proponha/descreva um sistema de reconhecimento capaz de discriminar padrões de oscilação cerebral de crianças e adultos.
Q12: Na figura abaixo, qual é a função dos módulos de segmentação/janelamento de dados, extração de características e de classificação dos dados.
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. 
O módulo de extração de características identifica e extrai informações distintas desses segmentos, como amplitude, frequência ou padrões de oscilação. Essas características são essenciais, pois reduzem a complexidade dos dados, destacando aspectos relevantes para a representação do conteúdo informativo dos sinais. 
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 movimentoou 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.
2
01234
0
1
2
3
4
X
y
Abelha
Flor sem pólen
Flor com pólen
0123
45
6
7
89
0
1
2
3
4
01234
5
6
7
89
0
1
2
3
4
Tempo (s)
Tempo (s)
D
i
s
t
â
n
c
i
a
 
(
m
)
D
i
s
t
â
n
c
i
a
 
(
m
)
X
Y

Continue navegando