Filtragem adaptativa: comprimento e atraso ideais do filtro

7

Estou tentando encontrar o tamanho ideal do filtro para uma filtragem adaptativa, usando o algoritmo RLS.

Estou usando este design:

Portanto, o sinal de "erro" é o sinal sem ruído (e é esse o sinal que eu quero).

Se eu tiver mas for o sinal desejado, preciso desse para encontrar o comprimento ideal do filtro (e o atraso) usando o critério MSE, mas agora tenho o sinal que quero como erro, por isso não sei como encontrar o tamanho ideal do filtro, porque não faço idéia do que MSE devo obter na saída!e(n)=d(n)y(n)d(n)e(n)0

Alguém pode me dizer o que devo fazer?

Obrigado!

Sem nome
fonte
3
Em geral, essa parece ser uma boa pergunta, mas seu diagrama é confuso para mim. Por exemplo, você nunca removerá a interferência de banda estreita usando o sinal combinado para ... Isso foi intencional? Além disso, você conhece a função de transferência do seu sistema , então por que você precisa de um filtro adaptável? d(n)G(z)=zΔ
lúpulo
O filtro adaptativo filtra o sinal que não está correlacionado com a entrada. Quando você adiciona um atraso, o ruído atrasado não é correlacionado com o ruído original, mas o atrasado ainda está correlacionado com o , é por isso que o ruído é filtrado. Não é? Esse design é do MIT. s(n)s(n)
Unnamed:
2
OK, entendo, mas, para que isso funcione, o atraso deve ser grande o suficiente para que o sinal desejado não seja correlacionado com o sinal atrasado na entrada do filtro. Nesse caso, o filtro irá prever a interferência. Observe que não é o ruído (como você escreveu no comentário), mas o sinal desejado que precisa ser correlacionado com o sinal atrasado. Δs(n)
Matt L.
Sim, acho que você está certo. Então o sinal de erro é ? Quão grande deve ser ? e(n)e(n)=r(n)Δ
Unnamed:
Não, e . O atraso deve ser escolhido de modo que a autocorrelação do sinal desejado seja (próximo a) zero para defasagens , de modo que se torne não correlacionado com a entrada para o filtro. Portanto, a escolha de depende das propriedades de . e(n)s(n)y(n)r(n)ΔΔs(n)f(n)Δs(n)
Matt L.

Respostas:

4

Para poder escolher um valor ideal para o atraso , é importante entender como o sistema funciona. O objetivo do atraso é correlacionar o sinal desejado e o componente de sinal na entrada do filtro adaptativo. Isso significa que deve ser escolhido de modo que a autocorrelação de seja (próxima a) zero para defasagens maiores que :Δs(n)s(nΔ)ΔRss(k)s(n)Δ

Rss(k)0,|k|>Δ

Entretanto, não podemos escolher arbitrariamente grande porque a interferência atrasada na entrada do filtro deve ser correlacionada com a interferência adicionada ao sinal, ou seja, a autocorrelação da interferência ainda deve ser significativa a defasagem de , caso contrário, o filtro adaptativo não pode prever a interferência. Se pudermos assumir que é uma banda estreita em comparação com , sempre é possível encontrar um valor apropriado para .ΔRrr(k)Δr(n)s(n)Δ

Com um valor apropriado para , o filtro adaptativo tentará prever a interferência, ou seja, tentará desfazer o efeito do atraso na banda de frequência em que a interferência possui componentes de frequência significativos. Portanto, a saída do filtro se aproximará de : . Conseqüentemente, o sinal de erro se aproximará do sinal desejado: .Δr(n)y(n)r(n)e(n)s(n)

Depois de escolher um valor para base na autocorrelação de , o comprimento do filtro deve ser escolhido por tentativa e erro. Um filtro longo dará uma melhor supressão ao custo de uma convergência mais lenta.Δs(n)

Matt L.
fonte
Excelente resposta como sempre, Matt.
Jason R
Obrigado Matt, eu entendi muitas coisas! Mas ainda tenho alguns problemas. Dizendo que , e é o que eu ver na Figura que I colocado no posto principal, que calcular a autocorrelação como: mas tenho alguns resultados um pouco confusos: com o comprimento do filtro , tenho:e(n)s(n)e(n)
Rss=n=1 1eue(n)e(n)
M=50.
Δ=2R=0,1950Δ=5R=0,4566Δ=10R=0,1396Δ=11R=0,5913Δ=12R=0,0588Δ=13R=0.1.9348Δ=30R=0,7577
Sem nome
e se eu pegar eu tenho Não sei o que fazer. Eu não esperava esses resultados: SM=20
Δ=2R=0,2310Δ=5R=0,4435Δ=10R=0,9420Δ=30R=0.2.5122
Sem nome
11
@Dylan: O que você esperava e o que você está tentando fazer?
Matt L.
@ MattL .: Pensei que, pelo mesmo tamanho de filtro, eu teria uma autocorrelação menor quando o atraso fosse maior. Calculo partir do design que mostrei no post principal e adiei esse sinal no MATLAB assim: e, em seguida, para calcular a autocorrelação: Δe(n)
edeeuumayed=zeros(1 1,euength(e));for Eu=(Δ+1 1):euedeeuumayed(Eu)=e(Eu-Δ);end
umavocêtocorr=eedeeuumayed
Sem nome