Os sinais acompanham as pessoas desde o momento em que chegam ao mundo. Prova disso é que, a primeira ação executada por um médico na ocasiação do nascimento consiste justamenente da exposição do bebe a determinado nível de stress de modo que, em função disso, o mesmo emita seu primeiro sinal, isto é, o choro.
Durante a vida, as pessoas entram em contato com sinais de diferentes grandezas, de diferentes formas e em diferentes situações. Ao falar, ao ouvir, ao visualizar determinada cena, ao utilizar utilizar um telefone celular, ao navegar na internet com ou sem um cabo de rede conectado ao computador, dentre outras situações, somos involuntáriamente levados a interagir em grande intensidade com sinais.
Trazer esta interação entre as pessoas e os sinais para o ambiente computacional pode resultar em ganhos consideráveis, tanto para as pessoas de forma geral, quanto para as áreas de negócios. Algumas áreas que podem ser amplamente beneficiadas são:
- Medicina: sinais processados computacionalmente na área médica podem resultar em diagnósticos mais assertivos, por exemplo, o que resulta em um tratamento mais adequado e, por înércia, maior índice de cura.
- Telefonia: se existe uma área que pode tirar amplas vantagens do processamento de sinais é a de telefonia. Uma ampla gama de serviços podem ser oferecidos, tais como: SMS, dados e telefone em um mesmo canal físico, efeitos sonoros, identificação de chamadas, reconhecimento de padrões de fala, dentre outros.
- Computadores: sinais processados no computador implicam necessariamente em grandes ganhos para os usuários de computadores. Alguns exemplos são: imagens e vídeos digitais, arquivos de áudio com baixa capacidade de armazenamento, dentre outros.
Poderíamos citar incontáveis cenários que podem de alguma forma receber algum tipo de benefício proveniente do processamento computacional de sinais. A compreensão da necessidade de se estudar sinais e após, processá-los, é fundamental pois de forma geral, é o que incentiva e norteia todo esfoço realizado nesta direção.
Nesta série de artigos serão apresentadas as linhas gerais, conceitos e alguns algoritmos fundamentais para se processar sinais computacionalmente e apresentando cenários web para aplicação de tais características.
Pré-requisitos
Se você que está lendo este artigo cursou Ciência da Computação, Engenharia da Computação, Engenharia Elétrica ou algum outro curso correlato, por certo estará familiarizado com muitas terminologias e conceitos apresentados nesta série. Se este não é seu caso, ainda que alguns conceitos sejam novos e assustem, não corra, tentarei detalhar o máximo possível estas ideias. Além disso, existem ótimos pontos de pesquisa na internet que podem o ajudar a encontrar mais informações.
Nesta série não me aterei a explicações detalhadas acerca de formalismos matemáticos por assumir que estes conceitos já lhe são familiares. Assim, caso encontre alguma fórmula matemática e/ou teorema que lhe seja novo, por favor, pare a leitura deste texto e imediatamente busque o conceito equivalente pois a ausência deste, certamente lhe fará falta no decorrer da série.
Todos os códigos nesta série serão apresentados em linguagem C++ e posteriormente migrados para C# para que possamos apresentar os mesmos no contexto da internet. Assim, se você não possui conhecimentos sobre a linguagem C/C++, recomendo fortemente que busque-os antes de prosseguir com a leitura deste texto.
Let’s go?!
Sinais. O que são? Onde estão?
Não há como falar em processamento de sinais sem antes definir-se formalmente o conceito de “sinal”. O problema aqui é que não existe uma definição formal para sinal, justamente pelo fato de se tratar de uma entidade física amorfa. Assim, para fins de contextualização nesta série, chamaremos de sinal o elemento físico que possui características semelhantes aquelas apresentadas abaixo:
Um sinal pode ser entendido como uma entidade física que descreve o comportamento de determinada grandeza em função da variação de outra(s) grandeza(s).
Para tornar esta definição palatável, consideremos um exemplo da vida real. Um som qualquer da natureza (fala, música, um instrumento tocando, um pássaro cantando, etc.) é de fato um sinal. Esta afirmação justifica-se pelo fato de identificarmos facilmente o fato de que, a medida em que o tempo passa, diferentes amplitudes são alcançadas pelo som. Assim, graficamente temos um sinal representado na Figura 1.
Figura 1. Amplitude variando em função do tempo (Fonte: Blog Ciências)
Analisando o gráfico apresentado pela Figura 1, torna-se fácil notar a variação mencionada anteriormente. No instante 0 (zero) de tempo, note que a amplitude também é 0 (zero). Quando o instante de tempo é imaginaginariamente t + 4, provavelmente a amplitude é a + 7, logo, o sinal (áudio) é representado pela grandeza amplitude variando em função do tempo. Matematicamente, teríamos o eixo y da imagem como A = f(t) enquanto x como t(s).
Alternativamente pode-se considerar também o esquema apresentado pela Figura 2.
Fugura 2. Interação de um sinal unidimensional
A pergunta que pode estar surgindo neste momento: mas Fabrício, sinal é uma entidade bem definida e com comportamento previsível. Porque ele é dito amorfo?
Um sinal é dito amorfo justamente porque não possue comportamento idêntico na natureza. Da mesma forma que o áudio é um sinal uma imagem fotográfica também o é. Neste caso, temos a estrutura do ente físico totalmente modificada pois, x e y não mais são suficientes para representar o sinal. Assim, afirmar que sinais são amorfos justifica-se.
Parte da justificativa apresentada acima injeta novos conceitos para o completo entendimento. Alguns dos conceitos aos quais me refiro são: periodicidade, dimensão e continuidade, os quais permitem identificar exatamente o tipo de sinal a ser processado. Este será o tema do próximo artigo desta série.
Outros sinais da mesma família dos sinais de áudio:
-
Sinal elétrico
-
Eletrocardiograma
-
Wireless
-
Dentre outros
É importante mencionar que, todas as menções realizadas até aqui em relação a sinais dizem respeito a sinais em seu estado original na natureza, isto é, sinais analógicos. Mais adiante nesta série realizaremos o processo de discretização dos sinais. Com a submissão do sinal a este processo algumas características são modificadas, mas estas, são cenas para os próximos capítulos.
Por hoje é só pessoal. Por favor, deixem seus comentários. É fundamental para saber que caminho tomar no prosseguir da série.
Pingback: Processamento digital de sinais: do desktop para a internet – Classificação dos sinais – Fabrício Sanchez