Eu li o livro DAFX de Udo Zölzer sobre o efeito de distorção nas páginas 124-125 e ele diz que a simulação adequada da distorção é dada pela função:
Alguém pode explicar essa fórmula e que tipo de sinal temos?
Pelo que entendi, 'x' é o sinal amostrado, então essa é uma sequência de números. O que faz | x | significar? Refere-se ao valor absoluto de x para cada valor amostrado?
Então, se eu quiser implementar esta simulação do efeito de distorção,
- Eu preciso saber o comprimento de x (é dado pelo número de amostras)
- Em um loop, preciso calcular esta fórmula para cada valor de amostra
- depois que o loop termina, recebo o sinal distorcido (em formato digital)
Depois disso, preciso convertê-lo em um sinal analógico para ouvi-lo.
audio
algorithms
c
digital
distortion
Elior
fonte
fonte
Respostas:
| x | denota o valor absoluto - x / | x | parte da fórmula existe para garantir que o sinal da entrada seja preservado na saída. Em relação à implementação, sim, as etapas que você listou estão corretas.
fonte
Graças à trama na resposta de Olli Niemitalo, fiquei convencido de que a fórmula dada no livro apresenta um erro de sinal. A não linearidade usada para distorção ou distorção é sempre algum tipo de função de recorte suavizada, que comprime o sinal de entrada. Portanto, amplitudes de entrada pequenas experimentam pouca alteração, enquanto amplitudes de entrada altas são (mais ou menos) suavemente cortadas. E a figura mostrada na resposta de Olli faz exatamente o oposto.
Estou convencido de que a fórmula correta deve ser
fonte
Você pode escrever o corpo da função diretamente no Wolfram Alpha e ele a plotará:
Parece um modelador de ondas para mim, e esses podem ser usados como você descreve.
fonte