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.


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.


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?

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.