Processamento de Sinais Estudo de Caso: Removendo o Bad, mantendo a Boa
O diagrama de blocos de um sistema que usa um filtro digital para remover um SNOI e reter o SOI é mostrado. Este sistema assume que os sinais originários de tempo contínuo e, após filtração, são devolvidos para o domínio de tempo contínuo.
O analógico-digital (ADC) e de digital para analógico (DAC) interfaces representam como um sistema em tempo real é configured- mas mais tarde, quando simulando este sistema, você vai usar arquivos WAV para processar discurso pré-gravado ( as linhas tracejadas).
O sinal recebido, r(t), É de forma
Deste ponto em diante, vamos supor que o ruído é insignificante e soltar W(t) A partir de consideração.
O coração do sistema é o bloco de filtro digital que fica entre o ADC e DAC. A ICE é a fala de largura de banda nominal de 4 kHz, ea SNOI é um ou mais tons sinusoidais em algum lugar na faixa de 0 a 4 kHz
Considere a resposta de impulso finito (FIR), resposta de impulso infinita (IIR) e opções de filtragem FIR adaptativos mostrado.
O filtro FIR entalhe tem a função do sistema
que é um par de zeros conjugadas em ângulo
em relação ao eixo real positivo na z-avião. O filtro de entalhe IIR adiciona um par de poios de conjugado, a raio r por trás dos zeros FIR que estão no círculo unitário:
As parcelas de pólo-zero para estes dois filtros são mostrados. Aqui, as parcelas são criados com funções no módulo Python ssd.py. Para o IIR:
Dentro [528]: B, a = ssd.fir_iir_notch (1000,8000,0) Em [529]: Ssd.zplane (b, um 1.2) Out [529]: (2, 0) Na [532]: B, a = ssd.fir_iir_notch (1000,8000,0.9) Em [533]: Ssd.zplane (b, um 1.2) Out [533]: (2, 2)
O entalhe FIR tem um único parâmetro de projeto, enquanto o entalhe IIR, também tem o raio pólo, r. Dada a taxa de amostragem, fs Hz, ea freqüência tom de interferência, fk Hz, definir
Se mais de um tom de interferência está presente, criar um cascata de filtros notch - um para cada tom de interferência, com
definidos em conformidade.
Com dois filtros notch IIR em cascata, o teorema de convolução para z-transformadas diz que a função geral do sistema é um filtro IIR quarta ordem:
Você pode encontrar os coeficientes através de convolução de segunda ordem do numerador e denominador do coeficiente de sets.
O filtro adaptativo é mais exótico. Este filtro é um exemplo de um sistema linear variável no tempo. Não se preocupe em absorver totalmente a matemática por trás deste sistema de filtragem / algoritmo agora. A intenção aqui é para lhe proporcionar uma sensação geral sobre o seu funcionamento, inspirando-o a estudar este tema ainda mais em algum momento no futuro.
Um filtro FIR está no centro deste sistema, mas os coeficientes não são fixos:
tem N coeficientes umam[n] Que são actualizados (alteradas) na sequência da produção de cada nova amostra de sinal
m dentro umam[n] É o índice de coeficiente do filtro, e n denota a atualização de tempo. o menos mean squares (LMS) algoritmo de adaptação é responsável para ajustar os coeficientes de filtro de tal forma que a média do erro quadrático (erro quadrático [MSE]) no momento n,
é minimizado.
Nesta aplicação, você tem o filtro adaptativo configurado para executar cancelamento de interferência. A saída de erro e[n] É uma estimativa da SOI,
A saída do filtro FIR, denotado
é também uma estimativa da SNOI,
Ao contrário dos filtros de entalhe FIR e IIR, o filtro adaptativo ajusta os coeficientes de modo a formar uma faixa de passagem de resposta (em forma de passa-banda) no local de cada tom de interferência. Dando o filtro de um grande número de torneiras (ou graus de liberdade) permite-lhe formar múltiplas faixas de passagem, se necessário. Ele faz isso por conta própria, sem qualquer informação prévia!
Após a convergência do LMS, a saída tende a conter apenas o SNOI, que é um ou mais sinusóides. A saída de erro é o (SOI + SNOI) - SNOI = SOI. Uma estimativa do SOI é exatamente o que você quer, mas este filtro é mais complexa. Além disso, se o SOI por acaso contém tons constantes, o filtro adaptativo faz o seu melhor para removê-los. Eliminando os tons desejados do seu SOI é provável que um showstopper.
Para cada uma das amostras n, o algoritmo de LMS executa três passos:
Calcula o seguinte, onde n é o índice de tempo
Os coeficientes de filtro utilizados no momento n estamos umam[n], para m = 0, 1,. . ., M.
Constitui a sequência de erro
Actualiza os coeficientes do filtro, utilizando um estocástico (instantâneo) gradiente para estimar a direcção de descida mais acentuada
o parâmetro # 956- é conhecido como o parâmetro de convergência. E se # 956- é muito pequeno, em seguida, filtrar a convergência é lenta, mas se for muito grande, então o algoritmo torna-se instável. Um limite superior aproximadas sobre # 956- é 1 / [(M + 1)Pr], Onde Pr é o poder r[n]. Como condições iniciais, definir todos os coeficientes do filtro a 0.
Para uma FIR de dois torneira, você pode ver a descida mais íngreme, como é mostrado. Cada actualização do algoritmo LMS move-lo, em média, em direcção ao fundo do superfície de erro, minimizando, assim, o MSE.