Projetando um filtro passa-baixo para minimizar o alias no áudio de streaming pré-dizimado

7

Preciso aplicar o filtro passa-baixa aos arquivos PCM. Existem vários métodos, como filtros FIR, filtros IIR (butterworth-chebyshev ..), mas me parece que aplicar a transformação Fast Fourier e eliminar frequências mais altas é a maneira mais próxima de um filtro ideal.

Qual é o método de filtragem ideal mais rápido e mais próximo?

É necessário para anti-aliasing antes de alterar a taxa de amostragem do som (Fcutoff = Fs / 2) E será aplicado a cada bloco de 1 segundo. dados. O principal requisito é que, após alterar a taxa de amostragem, a nova qualidade de áudio deve estar o mais próxima possível da qualidade de áudio original. (Não é barulhento.)

Obrigado.

Mete
fonte
4
Você provavelmente deve explicar por que deseja filtrar esses dados e quais são seus requisitos na filtragem (ou seja, qual é a sua especificação de filtro ?).
Paul R
Quais são os seus requisitos em termos de atenuação de banda de parada, inclinação, ondulação na banda de passagem etc ...? Quanto você se importa com a latência (por exemplo, se seguirmos sua abordagem de FFT, um bloco de N amostras deverá estar disponível antes que possamos escrever a primeira amostra de saída)?
Pichenettes
É necessário para anti-aliasing após alterar a taxa de amostragem do som. E será aplicado a cada bloco de 1 s. dados. O principal requisito é que, após alterar a taxa de amostragem, a nova qualidade de áudio deve estar o mais próxima possível da qualidade de áudio original. (Não é barulhento) #
31712 Mete
Nota: para realizar uma nova amostragem, é necessário aplicar o filtro antes de alterar a taxa de amostragem (por dizimação ou o que for).
Paul R
Quais são as taxas de amostra antes e depois? Eles estão consertados? Eles são sempre uma proporção inteira (por exemplo, 44,1 kHz => 22,05 kHz)?
Paul R

Respostas:

8

A melhor escolha de filtro depende dos requisitos específicos de sua aplicação. Existem duas opções básicas: FIR e IIR. O IIR será muito mais eficiente, porém resultará em distorções de fase. As distorções de fase são completamente inaudíveis (a menos que seja um caso estranho e estranho), mas claramente mensuráveis. Portanto, depende se você pode tolerar isso ou não.

Em qualquer um dos casos, você precisa decidir o quão perto precisa da nova frequência Nyquist e quanto ruído você pode tolerar. Um exemplo típico seria que você deseja que a banda passante se estenda até 90% da nova frequência Nyquist e que gostaria que seus produtos com aliases estivessem abaixo de -80dB. Com base nessas especificações, você pode projetar o filtro apropriado. Outras considerações incluem quanta ondulação da banda de passagem você pode aceitar e se você tiver alguma restrição quanto ao atraso e / ou latência máxima do grupo.

Aqui está um exemplo: Digamos que você queira reduzir a amostra de 44,1 kHz para 32 kHz e a nova frequência Nyquist é 16kHz. Ir para 90% Nyquist (14400 Hz), com ondulação da banda de passagem de 0,1 dB e 80 dB de atenuação a 16 kHz pode ser feito com um filtro elíptico de 9ª ordem.

Como o nibot apontou, zerar os compartimentos FFT é uma má escolha para um filtro passa-baixo, pois o passa-baixo resultante tem lóbulos laterais muito grandes e a rejeição de aliasing será bastante ruim. Também exigiria uma implementação adequada de um algoritmo de sobreposição de adição ou economia de sobreposição para lidar com um sinal contínuo.

Hilmar
fonte
11
A distorção de fase é realmente inaudível? Isso já foi demonstrado em experimentos?
endolith 29/03/12
11
Há um grande corpo de trabalho científico sobre o assunto. O ouvido humano é bastante insensível a mudanças de fase monoaurais (mas MUITO sensível à fase binaural). Nesse caso, qualquer distorção de fase estaria próxima do cruzamento em altas frequências, onde há pouca energia para começar. A menos que seja extrema é improvável fazer uma diferença audível
Hilmar
Certo, então é audível. :) É realmente uma questão de quão distorcida você pode distorcer antes que os humanos percebam, não uma coisa binária audível / inaudível. Portanto, um design de filtro realmente ruim pode ser audível, especialmente se estiver operando com dados estéreo, o que quase sempre é verdade.
endolith 29/03/12
@ endolith: na verdade - a distorção de fase seria normalmente a mesma nos canais esquerdo e direito em qualquer frequência, portanto não haveria distorção de fase binaural perceptível , que é o que o cérebro é bom em detectar (é uma grande parte de como localizamos som). Não percebemos distorção de fase monoaural porque ela não tem valor evolutivo.
Paul R
11
A percepção humana raramente é preto e branco. Aqui está uma visão geral interessante da pesquisa de percepção de fase monaural music.princeton.edu/~john/monauralphaseexperiments.htm . Meu argumento foi que o ouvido humano não é muito sensível à fase monofônica e que é improvável que o tipo de atraso de fase ou grupo introduzido por um filtro anti-aliasing seja audível.
Hilmar
0

Não existe um "melhor" ou "ideal" simples. Existem apenas trade-offs que melhor atendem às suas necessidades ou prioridades específicas (sendo, portanto, uma correspondência pior para os outros).

No caso de anti-aliasing, os requisitos podem incluir ondulação máxima, largura de transição, linearidade de fase, tolerância para pré-toque, latência máxima, ciclo de computação ou requisitos ou limitações de energia ou limitações, limitações de memória, frequências de entalhe específicas e etc.

A zeragem das caixas FFT é excelente para fornecer transições íngremes e entalhes afiados, e uma das piores soluções possíveis para atender a qualquer especificação de ondulação de banda de parada (além disso, pode tocar na banda de passagem). O que você quer?

hotpaw2
fonte