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.

Anúncios

Deixe um comentário »

Nenhum comentário ainda.

RSS feed for comments on this post.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Crie um website ou blog gratuito no WordPress.com.