Processamento de Sinais Prof. Dr.-Ing. João Paulo C. Lustosa da Costa Universidade de Brasília (UnB) Departamento de Engenharia Elétrica (ENE) Laboratório de Processamento de Sinais em Arranjos Caixa Postal 4386 CEP 70.919-970, Brasília - DF 1 Homepage: http://www.redes.unb.br/lasp Processamento de sinais de áudio (1) O problema da festa do coquetel: é a matriz de mistura (desconhecida); é a matriz de símbolos ou de sinais (desconhecida); é a matriz de dados com amostras (conhecida); Deseja-se encontrar , dado apenas . Premissas: Os sinais seguem uma distribuição não Gaussiana; Os sinais são independentes e não correlacionados; e são misturados linearmente e instantaneamente. o Observação: Na prática, em aplicações com sinais de áudio, os sinais são misturados de forma convolutiva e não de forma instantânea. Processamento de sinais de áudio (2) Independência versus Ortogonalidade versus não correlação Sejam x e y dois vetores não nulos, então: x e y são linearmente independentes se e somente se existir a seguinte relação não for satisfeita para qualquer constante a x e y são ortogonais se e somente se x e y são não correlacionados se e somente se Fonte: J. L. Rodgers, W. A. Nicewander, and L. Toothaker, „Linearly Independent, Orthogonal, and Uncorrelated Variables“, The American Statistician, Vol. 38, 1984. Processamento de sinais de áudio (3) Os símbolos da i-ésima fonte de sinal são dados por: em que tem média zero e variância unitária enquanto que e variância . tem média Consequentemente a matriz de símbolos é dada por: em que ésima linha são iguais a and e é a matriz cujos elementos na i- . Devido à premissa de que os sinais são independentes, então: Processamento de sinais de áudio (4) Preparação dos dados para a Análise de Componentes Independentes (ICA) Estimando a média em cada linha da matriz X em que é um elemento da matriz X na posição (m,n). Estimando a variância para cada linha da matriz X Transformação dos elementos das linhas da matriz X em média zero e variância unitária para m = 1, ..., M Obtém-se então a matriz X´ Processamento de sinais de áudio (5) Branqueamento da matriz X´ Cálculo da matriz de covariância das amostras Aplicando a Decomposição em Autovalores (EVD) A matriz de branqueamento é então definida como sendo ou Aplicando a matriz de branqueamento, obtém-se: Z corresponde à matriz S´ rotacionada! Processamento de sinais de áudio (6) Maximizando a não Gaussianidade Do teorema do limite central: a média aritmética de um número suficientemente grande de iterações de variáveis aleatórias independentes com médias e variâncias bem definidas será aproximadamente uma distribuição normal. A fim de separar os sinais misturados, usa-se como critério a maximização da não-Gaussianidade. Consequentemente, a ICA não pode ser aplicadas se os sinais originais forem distribuídos de forma Gaussiana! Para o sinal Gaussiano real, tem-se que a Curtose, . Logo, pode-se medir a Gaussianidade de uma variável aleatória por meio de uma função dada pela Curtose: Se a variável aleatória s é Gaussiana, então: Se a variável s é não Gaussiana e tem variância unitária, então: Processamento de sinais de áudio (7) Maximizando a não Gaussianidade Exemplo de função Processamento de sinais de áudio (8) Maximizando a não Gaussianidade Cálculo dos filtros por meio do método do gradiente, do inglês gradient descent, também conhecido como método da descida mais íngreme, do inglês steepest descent Atualização dos filtros iterativamente utilizando uma função custo O método do gradiente é definido pela seguinte função como: em que indica o tamanho do passo para convergência da função, J(n) é a função custo que pretende ser maximizada ou minimizada e éa função filtro que se deseja encontrar. Note que se for muito pequeno a convergência levará mais iterações e se for maior que o valor ideal, então a função não irá convergir. No caso da ICA, a função custo é Processamento de sinais de áudio (9) Maximizando a não Gaussianidade Aplicando o método gradiente, tem-se: em que negativo, é 1 se o argumento for positivo e -1 se o argumento for Note que z tem média zero e variância unitária e o mesmo é válido para y, que é a variável de saída do filtro. Processamento de sinais de áudio (10) Exemplo de aplicação da ICA d = 3 sinais Os sinais originais possuem a seguinte forma. Processamento de sinais de áudio (11) Exemplo de aplicação da ICA d = 3 sinais Os sinais misturados possuem a seguinte forma. Processamento de sinais de áudio (12) Exemplo de aplicação da ICA d = 3 sinais Os sinais misturados após preparação e branqueamento possuem a seguinte forma. Processamento de sinais de áudio (13) Exemplo de aplicação da ICA d = 3 sinais Os sinais separados após encontrar a convergência da matriz de filtros W. Processamento de sinais de áudio (14) Exemplo de aplicação da ICA Aproximação da FDP dos sinais originais por meio dos histogramas. Nenhum dos sinais possui uma distribuição Gaussiana. Logo, ICA pode ser aplicada para separá-los! Curtose: -1.5000 .: Subgaussiana (senóide) 0.7692 .: Supergaussiana -1.2000 .: Subgaussiana (triangular) Processamento de sinais de áudio (14) Exemplo de aplicação da ICA Variação da função baseada na Curtose a cada iteração. Triangular Senóide Processamento de sinais de áudio (15) Mistura de sinais sonoros A representação matemática é dada por uma mistura convolutiva linear. Fonte 1 Sinal misturado 1 Fonte 2 Sinal misturado 2 Fonte 3 Sinal misturado 3 Processamento de sinais de áudio (16) Mistura de sinais sonoros Microfone 1 Q Μ 1 x p(n) hqp,κ sq(n κ) q 1 κ 0 Modelo convolutivo Superposição de Q fontes Sistema de mistura H Microfone P Processamento de sinais de áudio (17) Mistura de sinais sonoros Microfone 1 P L 1 yq (n) wpq ,κ x p(n κ) p 1 κ 0 Microfone P Sistema de separação W Processamento de sinais de áudio (18) ICA Convolutiva ICA instantânea apenas para misturas instantâneas, ou seja, para sinais banda estreita. Os sinais sonoros são sinais com banda extremamente larga, pois estão na faixa da banda básica. Logo, trata-se de um problema de misturas convolutivas. A transformada de Fourier de tempo curto, do inglês short-time Fourier transform (STFT), permite transformar o tempo (amostras) em duas dimensões que são tempo (quadros) e frequência. A STFT é uma técnica de Análise Tempo–Frequência, do inglês Time– Frequency Analysis (TFA). Após a STFT, um único sinal sonoro (banda larga) é transformado em F sinais banda estreita. Logo, após a STFT, F ICA instantâneas podem ser aplicadas para os F sinais banda estreita. Processamento de sinais de áudio (19) ICA Convolutiva Passo 1 da STFT: Segmentação com superposição (overlap) do sinal sonoro em quadros Passo 2 da STFT: Janelamento de cada quadro - Produto entre a janela escolhida e quadro é feito ponto a ponto no domínio do tempo. Janela de Hanning Processamento de sinais de áudio (20) ICA Convolutiva O janelamento reduz significativamente o vazamento espectral vide exemplo. Processamento de sinais de áudio (21) ICA Convolutiva Passo 3 da STFT: Quadros são transformados para o domínio da frequência aplicando a Transformada Discreta de Fourier em cada quadro. A ICA convolutiva então pode ser representada da seguinte forma: Janelamento e segmentação FFT ICA instantâneo p/ f = 1 Janelamento e segmentação FFT ICA instantâneo p/ f = F Ajuste de permutação para os d sinais nas F frequências. IFFT IFFT STFT para cada microfone Após a IFFT, é feita a transformação inversa ao janelamento e à segmentação simplesmete superpondo cada quadro em um único vetor. Processamento de sinais de áudio (22) ICA Convolutiva Exemplo de histogramas de sinais sonoros, em geral, com distribuições Laplacianas. Processamento de sinais de áudio (23) ICA Convolutiva Ambiente de teste com duas fontes sonoras e com um arranjo de microfones. Processamento de sinais de áudio (24) ICA Convolutiva Exemplo com 2 sinais misturados Sinais antes da mistura Sinais misturados Sinais após a separação usando o TRINICON Processamento de sinais de áudio (25) Reconhecimento de Locutor Uma vez que os sinais foram separados, o desempenho das técnicas de reconhecimento de locutor pode melhorado. Para o reconhecimento de locutor, utiliza-se usualmente os Coeficientes Cepstrais nas Frequências de Mel, do inglês Mel Frequency Cepstral Coefficients (MFCC). Note que, após o ajuste de permutação da ICA convolutiva, cada matriz tempo-frequência do sinal obtido pode ser utilizada no cálculo dos MFCC. Locutor Segmentação e janelamento Estimar energia do espectro Banco de filtros Coeficientes cepstrais Computar DCT Computar logaritmo Processamento de sinais de áudio (26) Reconhecimento de Locutor Módulo do quadrado da amplitude do sinal Exemplo de energia do espectro do sinal segmentado Componente de frequência Processamento de sinais de áudio (27) Reconhecimento de Locutor Banco de filtros Processamento de sinais de áudio (28) Reconhecimento de Locutor Banco de filtros - exemplo • Fixar extremos em Hertz e converter para Mels; fs = 16 kHz • 300 Hz e 8000 Hz 401,25 Mels e 2834,99 Mels Processamento de sinais de áudio (29) Reconhecimento de Locutor Banco de filtros - exemplo • 10 pontos equidistantes Processamento de sinais de áudio (30) Reconhecimento de Locutor Banco de filtros - exemplo • Centralizar triângulos nos pontos internos Processamento de sinais de áudio (31) Reconhecimento de Locutor Banco de filtros - exemplo • Conversão para escala Herz Processamento de sinais de áudio (32) Reconhecimento de Locutor Banco de filtros - exemplo • Conversão para escala Herz Processamento de sinais de áudio (33) Reconhecimento de Locutor Banco de filtros - exemplo Processamento de sinais de áudio (34) Reconhecimento de Locutor Cálculo do logaritmo Processamento de sinais de áudio (35) Falante 3 – Tempo 1 Falante 3 – Tempo 2 Falante 1 Falante 2 Mesmo Cepstrum! Cepstrum diferente! Reconhecimento de Locutor Cálculo da DCT 37 Processamento de sinais de áudio (36) Reconhecimento de Locutor Coeficientes Cepstrais Processamento de sinais de áudio (37) Reconhecimento de Locutor Busca iterativa para encontrar parâmetros (média, variância e amplitude) das Gaussiana por meio do algoritmo EM