Marcelo Lucena de Souza [email protected] Análise de Voz e Vídeo Roteiro Signal Processing LPC Analysis of Speech Random Numbers and Probability Distributions Signal Processing findpeaks maxfilt meansqrt zerocross ditherq schmitt dlyapsq momfilt findpeaks (Signal Processing) Encontra os picos de um sinal usando interpolação quadrática Uso: [k,v]=findpeaks(x,m,w) Entradas x → sinal de entrada m → modo 'q' interpolação quadrática 'v' encontra os vales ao invés dos picos w → tolerância, picos fora do intervalo +-w são ignorados Saídas k → localização dos picos V → amplitude dos picos findpeaks - Exemplo Sinal de entrada: m='q' w=1 findpeaks - Exemplo Saída: k → peak locations Findpeaks - Exemplo Saída: v → peak amplitudes maxfilt (Signal Processing) Encontra o máximo valor do sinal dentro de uma janela ponderada exponencialmente Uso: [y,k]=maxfilt(x,f,w) Entradas x → sinal de entrada f → fator de esquecimento exponencial [f = exp(-1/T)]. f=1 para nenhum esquecimento w → janela de +-w Saídas y → vetor de saída (mesmo tamanho de x) k → array de índices, y=x(k) maxfilt - Exemplo [y,k]=maxfilt(x,1,9) maxfilt - Exemplo Resultado meansqrtf (Signal Processing) Calcula a média quadrática da função de transferência de um filtro Uso: d=meansqtf(b,a) Entrada b → coeficientes do numerador da F.T. do filtro a → coeficientes do denominador da F.T. Do filtro Saída d → nova função de transferência meansqrtf - Exemplo Filtro de Pré-Enfase H(z) = 1 – 0.95/z b = [1 -0.95] a=1 Resultado d=meansqtf(b,a) d = 1.9025 windows – (Signal Processing) Gera uma função de janela Uso: w = windows(wtype,n,mode,p) Entrada: wtype → tipo da janela (Hamming, Hanning, Kaiser,...) n → número de pontos Mode → sequencia de 3 caracteres de configuração da janela. Padrão 'ubv'. p → parâmetro específicos para a janela Saída: w → função janela windows – Exemplo Janela de Hamming w = windows('hamming',100) windows – Exemplo Hamming zerocros (Signal Processing) Encontra as passagens pelo zero de um sinal Uso: [t,s]=zerocros(x,m) Entrada x → sinal m → modo, pode ser passagens positivas, negativas ou ambas (padrão) Saída t → posições das passagens pelo zero s → inclinação estimada na passagem pelo zero zerocros - Exemplo ditherq (Signal Processing) Adiciona dither e quantiza o sinal. Dither é a adição de um ruído para randomizar o erro de quantização. Uso: [y,zf]=ditherq(x,m,zi) Entrada X → sinal de entrada M → modo. Tipo do dither: ruído branco (padrão), passaalta, passa-baixa, sem dither. Zi → número randômico Saída y → sinal de saída zf → número randômico ditherq - Exemplo schmitt (Signal Processing) Passa o sinal por um schmitt trigger Uso: [y,t]=schmitt(x,thresh,minwid) Entrada x → sinal de entrada thresh → vetor com os limiares superior e inferior do schmitt trigger midwin → largura mínima. Pulsos menores que midwin são ignorados Saída y → sinal de saída t → contém o índice das amostras na qual x atravessou os limiares schmitt - Exemplo y = schmitt(x, [-0.05 0.05]); dlyapsq (Signal Processing) Soluciona a equação de Lyapunov (AV'VA' - V'V +BB' =0), usada na análise de estabilidade em teoria do controle Uso: v=dlyapsq(a,b) Entrada a, b → parametros da equação Saída V → solução da equação momfilt (Signal Processing) Calcula o momento de um sinal usando uma janela Uso: [y,mm]=momfilt(x,r,w,m) Entrada x → sinal de entrada r → lista de momentos (relativo a média ou a zero) w → janela (hamming é o padrão) m → índice de w usado como centro (padrão é o meio) Saída y → sinal de saída mm → m usado no momento LPC Analysis of Speech lpcauto lpccovar lpcrr2am lpcbwexp ccwarpf lpcifilt lpcrand lpcauto (LPC) Realiza a análise LPC baseada na autocorrelação Uso: [ar,e,k]=lpcauto(s,p,t) Entrada s → sinal de entrada p → ordem da análise (Padrão: 12) t → vetor com parametros opcionais dos frames Saída ar → coeficientes LPC e → energia do sinal residual k → primeira e última amostra do intervalo de análise lpcauto - Exemplo x = sinal dos exemplos anteriores [ar e k] = lpcauto(x); ar = [1.0000 -1.0169 0.0903 0.4222 -0.2532 - 0.2300 0.5742 -0.2297 -0.2633 0.1441 0.1043 -0.0837 -0.0438] e = 0.0038 k = [1 100] lpccovar (LPC) Realiza a análise LPC baseada na covariância Uso: [ar,e,dc]=lpccovar(s,p,t,w) Entrada s → sinal de entrada p → ordem da análise (Padrão: 12) t → parametros opcionais dos frames w → erro de ponderação para cada amostra (Padrão: 1) Saída ar → coeficientes LPC e → energia do sinal residual dc → componente DC do sinal de entrada lpccovar - Exemplo x = mesmo sinal do exemplo anterior [ar e dc] = lpccovar(x); ar = [1.0000 -1.1087 0.4279 0.0894 0.0695 - 0.2697 0.3888 -0.0864 -0.3764 0.3216 0.0043 -0.0714 -0.0445] e = [0.0145 0.0512] dc = -1.5469e-04 lpcrr2am (LPC) Converte coeficientes de autocorrelação para a matriz de autocorrelação Uso: [am,em]=lpcrr2am(rr); Entrada Rr → coeficientes Saída Am → matriz de autocorrelação (Toeplitz) Em → coeficientes LPC lpcbwexp (LPC) Expande a largura de banda do filtro LPC Uso: arx=lpcbwexp(ar,bw) Entrada ar → coeficientes LPC bw → largura de banda mínima a ser expandida Saída arx → novos coeficientes LPC ccwarpf (LPC) Realiza warping de coeficientes cepstral Uso: m=ccwarpf(f,n,s) Entrada F → [f1 f2], vetor com a frequencia de amostragem original (f1) e a nova frequencia de amostragem (f2) N → [n1 n2], vetor com o número original de coeficientes (n1) e o novo número (n2). S → escala linear, 'l' ou mel, 'm' Saída m → matriz de transformação lpcifilt (LPC) Aplica filtro inverso no sinal de voz. Usado na estimação do glottal waveform. Uso: u=lpcifilt(s,ar,t,dc,fade) Entrada S → sinal de voz Ar → coeficientes LPC T → índice da primeira amostra Dc → Componente DC a ser subtraído do sinal Fade → amostras de fade Saída U → resultado do filtro lpcrand (LPC) Gera polinômio randômico estável de ordem p. Usado para fins de teste. Uso: ar=lpcrand(p,n,bw) Entrada P → ordem do polinômio N → número de polinômios a serem gerados Bw → largura de banda Saída Ar → coeficientes do(s) polinômio(s) gerado(s) lpcrand - Exemplo teste = lpcrand(12,1); teste = [1.0000 -0.1091 -0.2139 -0.7055 -0.3406 0.6335 0.5740 -0.0618 -0.3154 -0.1504 0.2432 0.3939 -0.3346] Random Numbers and Probability Distributions Random Number Generation Randvec Randiscr Usasi Randfilt Rnsubset Probability Density Functions Gmmlpdf Lognmpdf Miscellaneous Histndim Gausprod Maxgauss histndim Gera e ou plota um histograma n- dimensional Uso: [v,t]=histndim(x,b,mode) Entrada X -> dados de entrada, x = (m,d) B -> níveis do histograma para cada dimensão Mode -> configuração Saída V -> histograma T -> dimensão do histograma histndim - Exemplo [v t] = histndim(v1,20,'h'); Referências Voicebox home page http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voi cebox.html Wikipedia http://em.wikipedia.org