Adicionar harmônicos ímpares / pares para sinalizar?


12

Como adiciono harmônicos ímpares ou pares a um sinal de ponto flutuante?

Eu tenho que usar tanh ou pecado?

O que estou tentando fazer é obter alguns efeitos de distorção muito simples, mas estou tendo dificuldades para encontrar referências exatas. O que eu gostaria é algo semelhante ao que o Culture Vulture faz adicionando harmônicos ímpares e pares em suas configurações de pentodo e triodo. O valor flutuante é uma amostra única em um fluxo de amostra.


3
Por que você deseja adicionar harmônicos? O que você está tentando realizar? Com que tipo de sinal você está trabalhando?
— Jim Clay

O que estou tentando fazer é obter alguns efeitos de distorção muito simples, mas estou tendo dificuldade em encontrar referências exatas. O que eu gostaria é algo semelhante ao que o abutre de cultura faz adicionando harmônicos ímpares e pares em suas configurações de pentodo e triodo, o valor flutuante é uma amostra única em um fluxo de amostra.
— Carlos Barbosa

1
@CarlosBarbosa Você deve editar essas informações nos comentários da sua pergunta. Forneça detalhes - quanto mais interessante for a pergunta para a comunidade, mais respostas você poderá esperar e respostas de melhor qualidade.
— Penelope

porque os harmônicos ímpares são mais perigo do que até mesmo harmônica no sistema de energia

Respostas:


17

O que sua caixa de distorção faz é aplicar uma função de transferência não linear ao sinal: output = function(input)ou y = f(x). Você está apenas aplicando a mesma função a cada amostra de entrada individual para obter a amostra de saída correspondente.

Quando o seu sinal de entrada é uma onda senoidal, um tipo específico de distorção é produzido chamado distorção harmônica . Todos os novos tons criados pela distorção são harmônicos perfeitos do sinal de entrada:

  • Se a sua função de transferência tiver simetria ímpar (pode ser girada 180 ° sobre a origem), ela produzirá apenas harmônicos ímpares (1f, 3f, 5f, ...). Um exemplo de sistema com simetria ímpar é um amplificador de corte simétrico.
  • Se a sua função de transferência tiver simetria uniforme (pode ser refletida no eixo Y), os harmônicos produzidos serão apenas harmônicos de ordem par (0f, 2f, 4f, 6f, ...) O 1f fundamental é um harmônico ímpar e é removido. Um exemplo de sistema com simetria uniforme é um retificador de onda completa.

Então, sim, se você quiser adicionar harmônicos ímpares, coloque seu sinal através de uma função de transferência simétrica ímpar como y = tanh(x)ou y = x^3.

Se você deseja adicionar apenas harmônicos uniformes, coloque seu sinal em uma função de transferência que seja simétrica e uma função de identidade, para manter o fundamental original. Algo como y = x + x^4ou y = x + abs(x). A x +mantém o fundamental, que de outra forma seriam destruídos, enquanto o x^4é ainda simétrica e produz apenas harmônicos pares (incluindo DC, que você provavelmente vai querer remover depois com um filtro passa-alta).

Mesmo simetria:

Função de transferência com simetria uniforme:

y = x ^ 6 função de transferência

Sinal original em cinza, com sinal distorcido em azul e espectro de sinal distorcido mostrando apenas harmônicos uniformes e não fundamentais:

y = x ^ 6 espectro

Simetria estranha:

Função de transferência com simetria ímpar:

y = x ^ 7 função de transferência

Sinal original em cinza, com sinal distorcido em azul e espectro de sinal distorcido mostrando apenas harmônicos ímpares, incluindo fundamentais:

y = x ^ 7 espectro

Mesmo simetria + fundamental:

Função de transferência com simetria uniforme e função de identidade:

y = x + x ^ 4 função de transferência

Sinal original em cinza, com sinal distorcido em azul e espectro de sinal distorcido mostrando harmônicos pares mais fundamentais:

y = x + x ^ 4 espectro

É disso que as pessoas estão falando quando dizem que uma caixa de distorção "adiciona harmônicos ímpares", mas não é realmente precisa. O problema é que a distorção harmônica existe apenas para entrada de onda senoidal . A maioria das pessoas toca instrumentos, não ondas senoidais; portanto, o sinal de entrada possui vários componentes de onda senoidal. Nesse caso, você obtém distorção de intermodulação , não distorção harmônica, e essas regras sobre harmônicos ímpares e pares não se aplicam mais. Por exemplo, a aplicação de um retificador de onda completa (simetria uniforme) aos seguintes sinais:

  • onda senoidal (somente harmônica ímpar fundamental) → seno retificado de onda completa (somente harmônicas pares)
  • onda quadrada (somente harmônicos ímpares) → CC (somente 0 ° harmônico)
  • onda dente de serra (harmônicos ímpares e pares) → onda triângulo (somente harmônicos ímpares)
  • onda triângulo (apenas harmônicos ímpares) → 2 × onda triângulo (somente harmônicos ímpares)

Portanto, o espectro de saída depende fortemente do sinal de entrada, não do dispositivo de distorção, e sempre que alguém disser " nosso amplificador / efeito produz harmônicos de ordem par mais musicais ", você deve aceitá-lo com um pouco de sal .

(Há alguma verdade na afirmação de que sons com harmônicos pares são "mais musicais" do que sons com harmônicas ímpares , mas esses espectros não estão sendo produzidos aqui, como explicado acima, e essa afirmação é válida apenas no contexto de Escalas ocidentais de qualquer maneira. Sons ímpares harmônicos (ondas quadradas, clarinetes etc.) são mais consoantes em uma escala musical Bohlen – Pierce baseada na proporção de 3: 1 em vez da oitava de 2: 1.

Outra coisa a lembrar é que processos não lineares digitais podem causar aliases, que podem ser mal audíveis. Consulte Existe distorção não linear com banda limitada?


Observe que as funções de exemplo aqui simplificam o entendimento da matemática, mas geralmente não são usadas em itens de áudio. Com x ^ 7, por exemplo, o sinal fica menos distorcido quanto mais você aumenta o ganho.
— endolith

8

O que você está tentando alcançar é chamado distorção . Essas técnicas são usadas quando você deseja adicionar alguns harmônicos a um determinado sinal. Você tem 2 métodos básicos para fazer isso: modelagem de ondas e modulação de anel . Tentarei explicar o primeiro.

Waveshaping

O Waveshaping permite distorções através do uso de uma função especialmente selecionada . Um dos métodos úteis são os polinômios de Chebyshev . Eles têm uma propriedade muito importante ao apresentar através deles um sinal harmônico com amplitude unitária (por exemplo, uma onda senoidal), obtemos o mesmo sinal, apenas algumas vezes mais alto. O multiplicador de frequência dependerá da ordem do polinômio. Todos os polinômios são assim:

 y=f(x)=d0 0+d1x+d2x2+d3x3+...+dNxN;

No nosso caso, cada elemento gera uma gaita e todos eles se somam. A exibição de cada membro é determinada pela seguinte relação de recorrência:

Tk+1(x)=2xTk(x)-Tk-1(x);

T0 0(x)=1;

T1(x)=x;

T2(x)=2x∗x-1=2x2-1;

T3(x)=2x(2x2-1)-x=4x3-3x;

Como você pode imaginar, o segundo termo - o primeiro harmônico e o terceiro - o segundo e assim por diante.

Outra característica dos polinômios de Chebyshev, quando através deles emite um sinal cuja amplitude é menor que a unidade, a saída é um som menos saturado com harmônicos. Isso permite criar efeito de overdrive.

sEun


Boa resposta, aprendi algo aqui. No entanto, não concordo com o uso da função de transferência de termos . Sua definição comum é a relação de saída para entrada de um sistema linear invariante no tempo no domínio da frequência. Seu sistema não é linear. Prefiro chamá-lo de característica ou apenas funcionar aqui.
— DEVE

@Deve Obrigado. Sim, na verdade eu usei termo incorreto, apenas funcione o suficiente. Eu estava pensando ao exemplo de gravação do sistema linear, mas é bastante simples, de modo prazo permaneceu em meus pensamentos
— sigrlami

Uau, obrigado por tudo isso, eu estarei lendo, apesar de muito, parece, alguma chance de algum exemplo de código c? Obrigado mais uma vez
— Carlos Barbosa

T0 0(x)T1(x)y

@ Mohammad eles não estão relacionados exatamente, é apenas uma descrição simples da função polinomial se o iniciante do tópico não o conhece.
— Sigrlami
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.