Marcelo Lucena de Souza mls2@cin.ufpe.br Análise de Voz e Vídeo.

Post on 22-Apr-2015

104 views 2 download

Tags:

transcript

Marcelo Lucena de Souzamls2@cin.ufpe.brAná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