HudLac

14/08/2009

Osciladores

Uma ferramenta essencial para a síntese de som é o oscilador, que implementa ou simula um movimento ondulatório periódico, cuja freqüência pode ser controlada.

Há uma variedade de métodos para computar ondas senoidais digitalmente, o que possibilita a implementação de osciladores senoidais que diferem em critérios como velocidade, precisão e uso de memória.

Ondas complexas podem ser obtidas combinando-se vários osciladores senoidais, ou fornecendo-se a forma de onda pré-calculada a um oscilador de tabela de onda.

Formas de onda

Algumas das formas de onda mais usadas são apresentadas a seguir.

  1. Senoidal: Determinada pela função seno (ou cosseno);

    f(x) = cos(x)
    
  2. Dente-de-serra: Um período dessa forma de onda consiste simplesmente de uma rampa ascendente (que então salta abruptamente para o ponto inicial, na passagem para o próximo ciclo).

    Pode-ser obtida com:

    f(x) = x - floor(x)
    

    qué o mesmo que:

    f(x) = mod(x, 1.0)
    

    Pode ser aproximada utilizando-se harmônicos com amplitude inversa ao seu índice (número do harmônico):

    f(x) = cos(x) + cos(2x)/2 + cos(3x)/3 ...
    
  3. Quadrada: Alterna regularmente entre dois valores.
    Pode ser obtida, por exemplo, tomando-se o sinal (+, – ou 0) da saída de um oscilador senoidal:

    f(x) = sgn(sin(x))
    

    ou com o teste:

    mod(x, 1.0) >= 0.5
    

    Nesse caso, se o valor 0.5 for substituído por outro número entre 0 e 1, obtém-se um trem de pulsos ou onda retangular, dos quais a onda quadrada é um caso particular.

    A onda quadrada pode ser aproximada de maneira similar à onda dente-de-serra, mas usando-se somente harmônicos ímpares:

    f(x) = cos(x) + cos(3x)/3 + cos(5x)/5 ...
    
  4. Triangular: Formada por uma rampa ascendente seguida de uma rampa descendente.

    f(x) = abs( x - round(x) )
    

    Pode ser aproximada usando-se harmônicos ímpares, com amplitude inversa ao quadrado do número do harmônico, invertendo-se as fases (sinal) de cada componente com relação ao anterior:

    f(x) = cos(x) + cos(-3x)/9 + cos(5x)/25 + cos(-7x)/49 ...
    

    Usando-se função seno, pode-se inverter as amplitudes (ao invés da fases):

    f(x) = sin(x) - sin(3x)/9 + sin(5x)/25 - sin(7x)/49 ...
    

Como visto acima, as ondas triangular, quadrada e dente-de-serra (ideais) possuem infinitos harmônicos. Devido à limitação de banda determinada pelo Teorema da Amostragem, na forma digital o número de harmônicos deve ser restrito (conforme a freqüência fundamental) quando se quer evitar aliasing.

Tabelas de forma de onda
Para a síntese de sons periódicos complexos, pode-se evitar (re)calcular a função de onda para cada amostra: afinal, uma vez calculado um período da onda, basta repeti-lo ao longo da duração do som. Esse é o princípio básico da síntese por tabela de onda (table-lookup oscilators). Dada uma tabela contendo um período da onda, o oscilador simplesmente repete a tabela na freqüência desejada.

Osciladores com interpolação
O oscilador de tabela deverá decidir entre dois valores adjacentes, quando precisar de algum ponto da onda que inexista na tabela. Para reduzir a distorção causada por esse arredondamento, deve-se utilizar tabelas suficientemente grandes, com alta resolução. A qualidade será claramente superior com o uso de osciladores capazes de interpolar entre dois pontos da tabela, ou seja, calcular valores intermediários (inexistentes na tabela). Contudo, esses osciladores precisam realizar o cálculo de interpolação a cada amostra, o que, dependendo do caso, pode ser menos eficiente (e preciso) do que o cálculo direto da onda.

06/08/2009

Espectro

Além da representação de um som digital no domínio do tempo, há outra forma de representação muito útil: no domínio das freqüências. É o chamado espectro.

A figura abaixo mostra duas representações de um mesmo sinal composto por freqüências de 2, 6 e 20 Hz, sendo que o componente de 20 Hz tem metade da amplitude dos outros. Essas informações são facilmente visualizadas no espectro (parte superior da figura). A onda complexa é mostrada no domínio do tempo, na parte inferior da figura.

Análise de Fourier

Jean-Baptiste Joseph Fourier demonstrou que qualquer função periódica pode ser representada como um somatório de ondas senoidais harmônicas, com amplitudes e fases particulares.

Através da transformada de Fourier, pode-se analisar um sinal (no domínio do tempo) em seus componentes de freqüência. Cada componente é um vetor representado como um número complexo: o comprimento do vetor (distância em relação ao ponto (0,0), ou valor absoluto ou módulo) é a amplitude, e seu ângulo de inclinação em relação ao eixo horizontal é a fase.

Espectro de amplitude e espectro de potência

A amplitude de cada componente senoidal é o valor absoluto do número complexo, calculado através do Teorema de Pitágoras:

amp = sqrt(real(x)^2 + imag(x)^2)

Se a operação de raiz quadrada (sqrt) for omitida, obtemos a potência, que nada mais é do que o quadrado da amplitude:

pot = real(x)^2 + imag(x)^2

Espectrograma

Freqüentemente é útil visualizar a evolução do espectro ao longo do tempo, ou seja, ver como as freqüências e amplitudes variam no decorrer do tempo. A essa forma de visualização chamamos espectrograma.

O sinal é dividido em curtos trechos (“janelas”), cujas transformadas de Fourier são apresentadas lado a lado (seqüencialmente) num gráfico. O eixo horizontal é o tempo, o eixo vertical é a freqüência; as amplitudes são representada por cores ou tons de cinza.

Janelas de análise

A transformada de Fourier é definida somente para sons periódicos, o que não é o caso das porções arbitrárias de um som usadas para gerar um espectrograma. Presumindo-se que essa porção do sinal fosse um período completo de onda, a passagem do final de um ciclo para o início de outro provavelmente causaria uma descontinuidade inexistente no sinal. Em conseqüência, o resultado da análise de Fourier, embora exato, não corresponde ao que é intuitivamente “esperado” ou útil.

Para reduzir esse inconveniente, uma técnica comum é multiplicar o trecho do sinal por uma janela de análise apropriada, que cria uma espécie de “fade-in” e “fade-out” no trecho a ser analizado. O início e o final do pseudo-ciclo seriam próximos (ou iguais) a zero, evitando-se a descontinuidade que poderia ocorrer ao se repetir periodicamente essa porção do sinal (o final de um ciclo “emenda-se” melhor com o início de outro ciclo).

Para esse fim (janelamento), costumam ser usadas as janelas de Hamming e de Hann.

Software

Alguns programas que exibem espectros e/ou espectrogramas de sons são: Audacity, Praat, jaaa, snd e Sonic Visualizer.

27/06/2009

Ondas periódicas

Filed under: Áudio digital — Tags:, , — ? @ 18:55

Ondas sonoras são representadas graficamente em duas dimensões: o tempo (eixo horizontal, x) e amplitude instantânea (eixo vertical, y).

Ondas periódicas são as que repetem um padrão fixo (a forma de onda) ao longo do tempo. A extensão temporal do padrão é chamada período da onda.

Se uma onda se repete duas vezes a cada segundo, sua freqüência é igual a 2 Hertz, e seu período é igual a 1/2 s (ou 500 ms).

Ondas senoidais

O movimento oscilatório mais simples é o da onda senoidal, representada matematicamente pela função seno.

Uma onda periódica possui três características essenciais: freqüência (inverso do período), amplitude e fase.
Freqüência, amplitude e fase

Sons complexos

Sons complexos são constituídos pela sobreposição (somatório) de ondas senoidais.

Na figura abaixo, uma onda complexa (em azul) é resultante da combinação das ondas A (em vermelho) e B (em verde).

Onda complexa

Parciais: harmônicos e inarmônicos

As freqüências componentes de uma sinal complexo são chamadas parciais. Os parciais podem são harmônicos quando suas freqüências são múltiplos inteiros de uma freqüência, que é chamada freqüência fundamental. Caso contrário, os parciais são inarmônicos.

Por exemplo, um som composto por senóides de freqüências {110.1, 220.2, 330.3, 550.5, 880.8 Hz} é harmônico, pois é composto somente por freqüências múltiplas de 110.1 Hz, que é a fundamental. Já um som composto pelas freqüências {111, 121, 333.333, 749, 881 Hz} é inarmônico.

Série harmônica

Série harmônica é o conjunto de todas as freqüências que são harmônicas de uma fundamental.

SH(f) = f, 2f, 3f, 4f...

Ondas periódicas são sempre constituídas exclusivamente por componentes harmônicos, cada um com amplitude e fase específicas.

Blog no WordPress.com.