Processamento de Sinais Estudo de Caso: Removendo o Bad, mantendo a Boa

Simular OPÇÕES a, b, e c usando um arquivo de voz de um homem de frases de leitura de voz. O arquivo entra a simulação como um arquivo WAV:

image0.jpg
Dentro [685]: Fs, s = ssd.from_wav ( 'OSR_us_000_0030_8k.wav')

É possível gerar a combinação SOI + SNOI usando uma função personalizada que retorna R dada a entrada de voz s, a relação sinal-para-interferência (SIR), em dB - # 956- = 0,005 10log10(SIR) - o número de amostras a processar, uma série de frequências de interferência, e a taxa de amostragem.

r = soi_snoi_gen (s, SIR_dB, N, fi, fs = 8000)

Neste caso, SIR é fixada em -10 dB, o que significa que o poder no SNOI é 10 vezes a potência do SOI! Sinusóides em 1000 e 600 Hz estão gritando nos seus ouvidos quando você está tentando ouvir alguém falar com você- quão suave é que?

O processo de filtros FIR e IIR r na linha de comando IPython usando a função SciPy signal.lfilter (b, a, r). Você pode então aplicar o filtro adaptativo usando a seguinte função personalizada:

n, R, r_hat, E,Ao,F,Ao = Lms_ic (R, M,mu,delta = 1)

Esta função retorna um grande número de ndarrays:

  • e, o sinal de erro, e[n] é também

    image1.jpg
  • a matriz Ao é o último conjunto de coeficientes do filtro.

  • F é uma matriz de frequência usado para traçar a magnitude da resposta de frequência do filtro em dB, encontrado em Ao.

Você pode obter uma visão combinação do domínio frequência e no domínio do tempo através do espectrograma. As parcelas spectrogram os termo curto estimativa espectral do sinal vertical versus tempo. As cores brilhantes indicam a intensidade espectral ou altura acima do fundo.

A figura contém três subtramas: s[n] Coberta com r[n] A -10 dB SIR (Figura A),

image2.jpg

a saída do entalhe em cascata usando IIR r = 0,95 para ambas as secções (Figura B), e parcelas do espectrograma da IIR notch cascata de saída (Figura c).

O SNOI poderoso é quando visto no domínio do tempo (Figura a). Figura b mostra que a cascata de filtros notch IIR realiza uma excisão limpa dos dois tons SNOI. O espectrograma (Figura c) confirma o que está acontecendo no domínio da frequência. O entalhe IIR remove apenas uma faixa muito estreita de freqüências, deixando assim o SOI em grande parte intactos.

Você pode exportar a saída de simulação de Python como arquivos WAV usando ssd.to_wav ( 'test_FIR_IIR.wav', fs, s_hat). Um teste de audição é muito melhor do que o que eu posso fazer com gráficos neste livro, de modo a tentar algumas experiências em seu próprio país.

A figura a seguir fornece ambos os resultados tempo e no domínio da frequência para o filtro adaptativo, que é formalmente conhecido como cancelador de interferência adaptativa(AIC). As parcelas de (a) e (c) mostram a notável capacidade da AIC a convergir rapidamente para filtrar coeficientes que removem tons de 1.000 e 600 Hz do SNOI.

o parâmetro # 956- foi reduzida para 0,001 a retardar o processo de convergência e torná-lo visível no gráfico da Figura a. A trama espectrograma da Figura C mostra a curto blip de tons SNOI seguida, convergência e tom de excisão.

A audição é a prova final. O código Python é no módulo ssd.py. O arquivo de voz OSR_us_000_0030_8k.wav também está disponível. encontrar tanto conectados.

menu