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
Download

Slide 1 - Centro de Informática da UFPE