Marcelo Lucena de [email protected]álise de Voz e Vídeo
RoteiroRoteiro
Signal Processing LPC Analysis of Speech Random Numbers and Probability
Distributions
Signal ProcessingSignal Processing
findpeaks maxfilt meansqrt zerocross ditherq schmitt dlyapsq momfilt
findpeaks (Signal Processing)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 - Exemplofindpeaks - Exemplo
Sinal de entrada: m='q' w=1
findpeaks - Exemplofindpeaks - Exemplo
Saída: k → peak locations
Findpeaks - ExemploFindpeaks - Exemplo
Saída: v → peak amplitudes
maxfilt (Signal Processing)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 - Exemplomaxfilt - Exemplo
[y,k]=maxfilt(x,1,9)
maxfilt - Exemplomaxfilt - Exemplo
Resultado
meansqrtf (Signal meansqrtf (Signal Processing)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 - Exemplomeansqrtf - 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 windows – (Signal Processing)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 – Exemplowindows – Exemplo
Janela de Hamming w = windows('hamming',100)
windows – Exemplowindows – Exemplo
Hamming
zerocros (Signal Processing)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 - Exemplozerocros - Exemplo
ditherq (Signal Processing)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), passa-alta, passa-baixa, sem dither. Zi → número randômico
Saída y → sinal de saída zf → número randômico
ditherq - Exemploditherq - Exemplo
schmitt (Signal Processing)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 - Exemploschmitt - Exemplo
y = schmitt(x, [-0.05 0.05]);
dlyapsq (Signal Processing)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)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 SpeechLPC Analysis of Speech
lpcauto lpccovar lpcrr2am lpcbwexp ccwarpf lpcifilt lpcrand
lpcauto (LPC)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 - Exemplolpcauto - 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)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 - Exemplolpccovar - 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)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)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)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)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)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 - Exemplolpcrand - 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 Random Numbers and Probability DistributionsProbability 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/voic
ebox/voicebox.html Wikipedia
http://em.wikipedia.org