Existe distorção não linear limitada por banda?

12

Portanto, se você gerar uma onda quadrada apenas alternando um sinal entre dois valores, nos limites da amostra, ela produzirá uma série infinita de harmônicas, que alternam e produzem tons abaixo do fundamental, o que é muito audível. A solução é a Síntese limitada por banda , usando síntese aditiva ou etapas com limitação de banda para produzir formas de onda iguais às das bandas matemáticas ideais antes da amostragem:

http://flic.kr/p/83JMjT

insira a descrição da imagem aqui

Mas acabei de perceber que, se você aplicar amplificação grande a uma onda senoidal digital e, em seguida, cortá-la digitalmente, ela produzirá a mesma forma de onda quadrada, sem que o fenômeno Gibbs se agite. Então, também está produzindo produtos de distorção com alias, certo? Então, qualquer distorção não linear no domínio digital que produz harmônicos fora dos limites de Nyquist produzirá produtos de distorção com alias? (Edit: Eu fiz alguns testes e confirmei que esta parte é verdadeira.)

Existe distorção limitada pela banda, para simular (no domínio digital) os efeitos da distorção (no domínio analógico) antes da limitação e amostragem da banda? Se sim, como você faz isso? Se eu procuro por "distorção ilimitada de banda", encontro algumas referências aos polinômios de Chebyshev, mas não sei como usá-los ou se eles funcionam apenas para ondas senoidais ou o que:

Este instrumento não tenta gerar distorção com banda limitada. Os interessados ​​em distorção com banda limitada devem investigar o uso de polinômios de Chebyshev para gerar o efeito. Distorção Tangencial Hiperbólica

 

"Polinômio de Chebyshev" - funções de modelagem com a propriedade importante de serem intrinsecamente limitadas por banda, ou seja, elas não introduzem harmônicas espectrais espúrias devido à sobreposição etc. Wave Shaper

endólito
fonte
Não tenho certeza do que você está perguntando. Se você executar uma operação que cause a geração de conteúdo de frequência fora da região de Nyquist em que você está operando, verá um alias, independentemente de como você gerou o conteúdo. Que tipo de distorção analógica você está tentando simular? Uma abordagem poderia ser aumentar a amostra do sinal para uma taxa de amostragem suficientemente alta primeiro e depois usar a região mais ampla de Nyquist para executar o processamento do sinal. Você pode reduzir a amostra novamente para a taxa original após concluir.
Jason R
@JasonR: Sim, para gerar ondas quadradas, você pode usar um método verdadeiramente limitado por banda, como síntese aditiva, ou pode aproximar primeiro por upsampling, gerando a onda quadrada de maneira ingênua e depois por downsampling (mas ainda haverá algum apelido, apenas em um nível mais baixo). Da mesma forma, você pode aproximar a distorção como você disse primeiro, ampliando a amostragem, mas existe uma maneira de gerá-la diretamente, com aliasing zero, análogo ao método de síntese aditiva para geração de onda quadrada?
endolith 11/06/12
@ JasonR: Estou perguntando sobre qualquer distorção não linear, em geral, mas algo como emular o circuito de distorção de um amplificador de guitarra analógico seria um bom exemplo. Se eu entendi corretamente, fazê-lo ingenuamente no domínio digital produziria produtos de distorção que não existem quando distorcidos no domínio analógico, alguns dos quais podem ser claramente audíveis em frequências mais baixas do que o fundamental etc.
endolith
2
Os polinômios @endolith Chebyshev podem ser o que você deseja.
datageist
@ datageist: Você pode escrever uma resposta sobre como usar os polinômios Chebyshev? Mesmo uma curta.
Endolith 15/04

Respostas:

5

A aplicação de uma função não linear sempre introduzirá harmônicos, e a mistura de funções não lineares com versões amostradas de sinais contínuos adiciona as rugas que você observa acima (onde harmônicos de alta frequência são alias às baixas frequências).

Eu posso pensar em algumas maneiras de proceder:

  1. Você pode usar um fator de superamostragem alto o suficiente para capturar harmônicos extras (até alguma precisão arbitrária, por exemplo, seu nível de ruído),
  2. Você pode usar uma função de recorte "mais suave" (veja, por exemplo, aqui ) que possui harmônicos que desaparecem mais cedo que o cortador rígido. Isso é mais fácil de modelar, mas introduz sua própria distorção em baixas frequências.
  3. Com base na abordagem sugerida acima, interpole o sinal amostrado (por exemplo, usando um interpolador Lagrange ou Chebyshev) para construir um modelo de tempo contínuo. Em seguida, aplique o cortador rígido e o passe baixo em um domínio de tempo contínuo simulado. Prove o resultado.

Você pode combinar (1) e (2). A terceira abordagem é complexa, mas oferece o melhor controle sobre quanta distorção deve ser admitida e provavelmente escalará melhor para requisitos de fidelidade muito alta.

Para funções não lineares que admitem uma expansão em série (por exemplo, Taylor / Maclaurin), você pode obter uma intuição decente sobre a rapidez com que os harmônicos decaem. A expansão de Maclaurin de uma função é:f(x)

f(x)=n=0[f(n)(0)n!xn]

No seu caso, é a função de recorte. (Você não pode fazer isso com um cortador de disco rígido, pelo menos não ingênuo!) Se você considerar a substituição x = g ( t ) , onde g ( t ) é o seu sinal de entrada, x n se tornará g ( t ) nf(x)x=g(t)g(t)xng(t)n , que você pode considerar a convolução do seu sinal de entrada vezes. Assim, para os sinais de passa-baixos, o n ésimo termo da soma infinita tem uma largura de banda nnnnvezes o do seu sinal. Para completar a figura, você precisa descobrir a amplitude associada a cada termo e decidir quantos termos na soma são relevantes.

(Com um pouco de reflexão, você também poderá usar esse formulário diretamente para aproximar a não linearidade filtrada. Isso exigiria uma boa representação em série para o clipper.)

Graeme
fonte
Para esclarecer, o nº 3 não é apenas uma amostragem excessiva com interpolação, está encontrando parâmetros de um polinômio Chebyshev contínuo que se encaixa nos pontos amostrados e depois trabalhando com esses parâmetros e um modelo do polinômio?
endolith 12/06
1
Estou imaginando uma sequência de interpoladores polinomiais que estão ativos em um curto intervalo de amostras. Assim, à medida que um lote de novas amostras chega, você constrói um interpolador que está ativo apenas em um intervalo definido. Sua aproximação em tempo contínuo ao sinal amostrado consiste nesses polinômios. (Estou pensando em Lagrange, mas Chebyshev provavelmente é a mesma coisa. Não me lembro se os interpoladores Chebyshev correspondem exatamente aos pontos de amostra. Caso contrário, você teria descontinuidades ao alternar entre interpoladores.)
Graeme
4

Algumas abordagens para distorção não-linear sem alias (em ordem crescente de dificuldade):

  1. Distorção de sub-banda : use um filtro passa-baixo para extrair a extremidade inferior do sinal. Se você escolher uma frequência de corte de você pode aplicar qualquer função de transferência não linearfcom derivadas começando emfN+1desaparecendo para evitar aliases. Adicione apenas a saída de distorção da banda baixa ao sinal original. Para isso, modifique sua função de transferência não linear para produzir apenas a distorção, não o sinal recebido. Essa abordagem costuma ser totalmente suficiente para o áudio, porque a contribuição de distorção das frequências mais altas seria inaudível na maioria dos casos.fs2NffN+1

  2. Sobreamostragem : É semelhante à abordagem 1, mas requer etapas extras de subamostragem e redução de amostragem para garantir que todas as informações na faixa de sinal original contribuam para o sinal distorcido, se você achar necessário. Também permite distorcer para uma ordem superior, porque partes do espectro dobrado para trás serão removidas pelo filtro de redução de amostragem. Isso significa que, se você exagerar na amostra por um fator , as derivadas da função de transferência não linear começando na ordem 2 N terão que desaparecer. O procedimento é simples como upsampling, aplicando a função de transferência não linear, downsampling.N2N

  3. Usando uma solução analítica local : Qualquerfunção de transferência não-linear suave pode ser aplicada a um sinal descrito por uma série de potências. Se você deixar a função de transferência atuar em uma série de potências, você receberá uma série de potências de volta. Se você se restringir a séries de potência truncadas de uma determinada ordem e a função de transferência com um certo grau de suavidade, poderá escrever a função de transferência como um mapa nos coeficientes da série truncada. Isso significa que, em vez de , você considera f : R NR M levar uma expansão em série de entrada de comprimento N para uma expansão em série de saída de comprimento Mf:RRf:RNRMNM>N . Com esse entendimento, você pode usar uma aproximação finita local do sinal de entrada em termos de uma série de potências e mapeá-la para uma aproximação de uma série de potências da saída. Em seguida, você pode integrar analiticamente a série de saída para criar um filtro de suavização de borda de carro para obter o valor da amostra de saída. Todos esses cálculos podem ser feitos simbolicamente e, como você precisa incluir recursos locais do sinal de entrada, você finalmente obterá um filtro não linear que usa valores passados ​​do seu sinal de entrada para gerar a saída atual.

  4. Design algébrico baseado em restrições : No item anterior, você viu que a distorção não-linear com suavização de borda leva a filtros não-lineares. Obviamente, nem todos os filtros não lineares são isentos de alias, mas alguns podem ser. Portanto, a pergunta óbvia é que um critério torne esse filtro estritamente livre de alias e como projetá-lo. Como se vê, uma declaração equivalente a estar livre de aliasing é que o filtro não linear comuta com traduções de subamostras. Portanto, você deve certificar-se de que não faz diferença se você traduzir primeiro e depois filtrar ou filtrar primeiro e depois traduzir. Essa condição leva a restrições de design muito rígidaspara filtros não lineares, mas depende de como você realiza a tradução do sinal. Por exemplo, a tradução ideal exigiria infinitos coeficientes para o filtro não linear. Portanto, você precisa aproximar a tradução do sinal para uma ordem finita para obter um filtro não linear finito. O alias-freeness é dimensionado com a aproximação usada, mas você tem um controle muito bom sobre ela. Depois de trabalhar com a matemática dessa abordagem, é possível projetar qualquer função de transferência não linear (não apenas suave) como um modelo digital quase ideal na forma de um filtro não linear. Não posso esboçar os detalhes aqui, mas talvez você possa encontrar alguma inspiração nessa descrição.

Jazzmaniac
fonte
y[t]=x[t]k
Ou, outra pergunta (talvez relacionada) - se você seguir a abordagem finita local mencionada, obterá um mapa de séries de poder truncadas para séries de poder truncadas. Quando você tenta passar por baixo da série de potências truncadas, que normalmente convoluiam com uma função sinc, obtém alguma expressão simples para o resultado? O resultado pode ser expresso novamente como uma série de potências truncada? Em caso afirmativo, como é?
Mike Battaglia
1
@ MikeBattaglia, talvez você possa criar uma nova pergunta para que eu possa dar uma resposta completa lá. Para responder sua segunda pergunta, você não usa um kernel SINC, mas no caso mais simples, um kernel de vagão. Os kernels de ordem superior funcionam, mas, para obter um resultado analítico, você precisa se restringir a certos kernels.
22418 Jazzmaniac
Obrigado - criou uma nova pergunta aqui para a questão do design do filtro: dsp.stackexchange.com/q/51533/18276 #
Mike Battaglia
2

Tn(x)=cos(narccos(x)).

Tn(x)

(1)Tn(cos(kx))=cos(numarccos(cos(kx)))=cos(nkx).

Os próprios polinômios podem ser facilmente gerados usando a seguinte relação de recorrência :

T0(x)=1T1(x)=xTn(x)=2xTn1(x)Tn2(x).

Aqui estão os primeiros:

T0(x)=1T1(x)=xT2(x)=2x(x1)=2x21T3(x)=2x(2x21)x=4x33xT4(x)=2x(4x33x)(2x21)=8x48x2+1

Outra maneira de ganhar intuição por propriedade (1)T2cos(x)

2cos2(x)1=2(eix+eix2)21=24(ei2x+2eixeix+ei2x)1=(ei2x+ei2x2)+221=cos(2x).

Computando uma série Chebyshev

f(x)=n=0anTn(x)

nf(x)

datagrama
fonte
Obrigado! Para formas de onda que não sejam um único senoide, o que acontece? Intermodulação com banda ilimitada ou não?
Endolith 21/04
1
xn
1

@ robert-bristow-johnson explica isso muito claramente em comp.dsp :

você precisa exagerar em uma medida finita. se você representa a não linearidade (sem memória, presumo) como um polinômio de ordem finita (que se aproxima de qualquer curva que você está tentando implementar), então qualquer que seja a ordem do polinômio é o mesmo fator de superamostragem necessário e nenhum alias ocorrerá. depois passe o filtro passa-baixo (nessa taxa superamostra) para se livrar de todos os componentes de frequência mais altos que o Nyquist original e reduza a amostragem e você não terá alias.

Em outras palavras, se a sua não linearidade for um polinômio, a frequência mais alta que pode ser produzida pela distorção será a frequência mais alta no seu sinal vezes a ordem N do polinômio. (A não linearidade polinomial está multiplicando o sinal por si só N vezes, de modo que seu espectro se convolve e se espalha pela mesma proporção.)

Então, você conhece a frequência máxima (Nyquist ou algum limite inferior para sua aplicação) e conhece a ordem do polinômio, para poder fazer uma amostra excessiva o suficiente para evitar aliases, fazer a distorção e, em seguida, filtro passa-baixo e amostra reduzida.

Na verdade, você pode reduzir a taxa de superamostragem permitindo que alguns aliases aconteçam, desde que contidos na banda que será removida antes da redução de amostragem:

Outro pequeno truque é que você não precisa se preocupar com o alias que se dobra para a área em que você fará o LPF. portanto, um polinômio de 5ª ordem precisa apenas ter uma taxa de superamostragem de 3. esses 2 harmônicos principais podem ser alias, mas não retornam à banda base. ao reduzir a amostragem, você filtra esses harmônicos com alias. então eu acho que a regra difícil e rápida é

razão de superamostragem = (ordem polinomial + 1) / 2

endólito
fonte
2
NN+12fs
@robert eu vi e adicionei essa parte como você estava comentando. Se você reescrever isso como sua própria resposta eu vou apagar e aceito a sua
endolith
1
Oh céus. vestir uma boa resposta requer trabalho.
Robert Bristow-Johnson
@ robertbristow-johnson Bem, os pontos de internet imaginários são o seu, se você quer que eles
endolith