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.
Respostas:
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.
fonte
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?
fonte