Gostaria de saber como remover o ruído ambiental de uma gravação de fala.
Eu fiz algumas pesquisas e notei que a maioria dos métodos propostos usa a rápida transformação de Fourier. Mas por que você não pode usar um filtro eletrônico clássico para remover as frequências de ruído? Por que se preocupar em fazer uma FFT?
Respostas:
Bem, ele é armazenado digitalmente agora, certo? Então, você planeja colocar o microfone ao lado do alto-falante após um filtro analógico para regravá-lo?
Chega de brincar, vou levar a sério.
Para fazer um filtro atenuar mais em uma faixa menor de frequências, também conhecida como tornar a curva de resposta em frequência mais vertical, basta aumentar a ordem do filtro.
Isso é algo que é razoavelmente fácil de fazer no Matlab. Também é algo possível de fazer pós-processamento. Também se trata de repetibilidade. Se você aplicar o filtro em um dia ensolarado hoje, espera que ele funcione de maneira idêntica a amanhã, quando estiver chovendo. Você espera que funcione exatamente da mesma forma, certo?
Nos circuitos analógicos, você tem todos esses "resistores de 5%", "capacitor de 1%" e todas as outras coisas. Portanto, se você quiser fazer algo exato , definitivamente precisará aparar o circuito posteriormente para que ele corresponda perfeitamente ao filtro desejado. Se você deseja aumentar a ordem do filtro ... então, infelizmente ... isso tornará o filtro muito maior fisicamente. Em vez de assumir o tamanho de um cartão de crédito, ele terá o tamanho de, eu não sei, depende da ordem do filtro e do que você está bem.
Com relação à repetibilidade, fazer algo hoje .. quente .. amanhã .. mais frio ... as resistências mudarão um pouco, a resposta de frequência mudará, alguns Hz lá, alguns lá, mais componentes você terá em seus circuitos , é mais provável que seus componentes alterem seus valores. E então você tem umidade, oxidante ...
E aqui está a frase que eu deveria ter dito primeiro, você não pode pós-processá-la, a menos que tenha fitas cassete. Não tenho 100% de certeza sobre o meio musical analógico que está sendo usado para gravar / excluir facilmente. Discos LP seria um pesadelo ...
E não vamos esquecer o preço. Um é o software, se você mesmo o escreve, é essencialmente de graça, o outro exige componentes, partes físicas.
Mas não pense que os filtros analógicos são ruins, eles têm seus usos, como remover harmônicos desagradáveis em grandes motores DC ou criar motores de passo ultra silenciosos para impressoras 3D, suavizando a corrente. E toneladas de outros usos. - Além disso, se você o resolver com um filtro analógico, ninguém pensaria que seria uma solução ruim.
Acredito que estou respondendo indiretamente por que a FFT é a melhor maneira de fazer isso, pós-processamento. A linha inferior é que é muito mais barato fazer. Você também pode aplicar um filtro de entalhe se souber em que frequência o ruído está. Ou um filtro mais amplo, também conhecido como bandstop.
E a última coisa que quero acrescentar ... como essa resposta é tão longa, me desculpe. Mas se você usa um filtro analógico e ... mexe nos seus cálculos, pensa que está tudo bem e elegante e o usa em algum evento sério, como entrevistar o rei da Suécia (Knugen). E você estragou o tamanho de um capacitor, em vez de filtrar o ruído de 16kHz, está filtrando o "ruído" de 4kHz. Se você lidar com isso digitalmente, é apenas uma questão de alterar algumas variáveis, não é necessário dessoldar -> soldar outro componente. Também a entrevista está arruinada.
fonte
Mas por que você não pode usar um filtro eletrônico clássico para remover as frequências de ruído?
Quem disse que você não pode? É assim que isso foi feito nos dias anteriores ao processamento do sinal digital. O problema é que o ruído de filtragem é sempre um compromisso entre manter intacto o sinal desejado (fala, música) e diminuir o ruído.
Para fitas cassete e outros sistemas de gravação analógica como DNL e Dolby, foram utilizados filtros que somente quando o sinal é fraco, significando que o ruído é mais audível. Então, quando o sinal é mais forte, o filtro desaparece. Veja: Artigo da Wikipedia sobre Redução de ruído
A fala pode ser limitada a uma banda de frequência estreita, como 300 Hz a 3 kHz, enquanto ainda é perfeitamente compreensível. Você poderia criar um filtro analógico simples para essa banda, mas isso limitaria a quantidade de ruído suprimida. Para filtrar com mais eficiência as frequências fora desta banda, seria necessário um filtro analógico complexo. Esses filtros são difíceis de projetar, construir e fabricar.
É aqui que entra o processamento do sinal digital. No domínio digital, é muito mais fácil implementar filtros complexos com muitos pólos e zeros. Além disso, como a localização (no domínio da frequência) desses polos e zeros está vinculada ao relógio do DSP (Processador de sinal digital), que é um relógio preciso (cristal), o filtro será muito mais preciso em comparação com uma implementação analógica .
fonte
Bem, o primeiro passo para entender por que precisamos da FFT é entender como a filtragem digital funciona.
Então, basicamente, você tem uma estrutura, como um registro de deslocamento, com vários elementos de memória, uma entrada e uma saída. Um valor de amostra entra na entrada, é deslocado pelo registrador e passa para a saída. Em cada estágio do registro, ele é multiplicado por um número chamado coeficiente de filtro.
Essa idéia funciona bem quando você tem um registro rápido, fazendo multiplicações rápidas, e as amostras aparecem lentamente uma a uma.
Na vida real, em vez disso, você provavelmente obterá um quadro que consiste em várias amostras. Quando você deseja filtrar isso, convolve as amostras com os coeficientes do filtro. É o mesmo que fazer a abordagem anterior, mas parece um pouco diferente.
Agora vem a parte FFT. Acontece que a convolução cresce em complexidade numérica muito rapidamente com o número de amostras. Por outro lado, a FFT é numericamente complicada no início, mas o número de operações necessárias cresce muito mais lentamente com o aumento dos coeficientes do filtro em comparação com a convolução.
O que significa acima é que, acima de um certo número de amostras, será muito mais rápido converter um sinal no domínio da frequência usando uma FFT, filtrar o sinal no domínio da frequência e depois convertê-lo novamente usando o IFFT. O truque que estamos usando é uma das propriedades da convolução, a saber, que a convolução no domínio do tempo pode, em algumas circunstâncias, ser modelada como multiplicação no domínio da frequência.
Então, para resumir, se o número de coeficientes de filtro que você possui for suficientemente grande, a FFT será mais rápida. O "grande" pode ser tão pequeno quanto cem.
fonte
Os métodos baseados em FFT (você ainda precisará trabalhar com modificações de janelas e sobreposição-adição ou sobreposição-deslocamento) têm como principal vantagem que o design esteja solidamente no domínio da frequência, e um filtro Wiener ou subtração espectral ou várias outros sistemas baseados em estatísticas de sinal e um modelo realmente funcionam fundamentalmente no domínio da frequência.
Por outro lado, o cancelamento de eco e várias variantes não dependem de um modelo de ruído, mas de uma gravação imperfeita altamente correlacionada com o ruído. Isso é feito usando filtros variados (geralmente FIR) para subtrair uma estimativa de ruído do sinal e atualizar os filtros para manter a correlação do sinal restante com o canal de ruído mínima. Para essas técnicas, a FFT não é tão útil (quando atrasos consideráveis no sinal resultante e nas atualizações do filtro são permitidos, eles podem ser empregados como componente em uma FIR da caixa preta com atraso por razões de desempenho, mas não são realmente úteis para seus capacidade de representação no domínio da frequência).
fonte
Os filtros analógicos são fáceis de projetar, mas a limitação é que você precisa continuar adicionando elementos de filtro físicos para obter a filtragem de parada de banda de determinadas frequências. E você precisa ajustar os valores dos componentes se quiser mover os entalhes. Um único opamp pode fazer um entalhe de parada de banda; portanto, você precisa adicionar outro amplificador para cada entalhe desejado. Para um entalhe mais seletivo, você precisará de dois amplificadores por entalhe.
Em termos práticos, você provavelmente seria melhor atendido por um filtro passa-baixo de 3ª ordem que você pode fazer com um único opamp ou talvez um filtro passa-baixo de quinta ordem que requer dois. Use o (s) filtro (s) de passa-baixo para atenuar as frequências acima da frequência Nyquist (1/2 frequência de amostragem) com alguma margem e você terá uma amostra digital de alta qualidade para pós-processamento. Com uma gravação limpa como essa, você pode aplicar filtros FFT para criar filtros passa-alto, passa-banda e interrompe-banda, conforme necessário.
fonte
A filtragem invariante no tempo linear que um "filtro eletrônico clássico" faz é apenas uma multiplicação "burra" no domínio de Fourier. Mas as informações que você encontra em uma FFT informa mais detalhes do que apenas a resposta de um filtro, que é apenas uma combinação linear desses componentes. Usando essas informações, você pode orientar o processamento de dados e adaptá-lo aos dados. O ruído possui algumas características que os vocais nítidos e os tons musicais não possuem, por exemplo, a correlação entre sobretons não é a mesma para ruído e voz ou música.
Portanto, se pudermos identificar as correlações entre os componentes de frequência - ou seja, encontrar um "tom de fundo" de alguma forma, podemos orientar a filtragem e torná-la mais adaptada aos dados.
fonte