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.

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.