M
mosol2005
Guest
hi ogni uno. dispiace per i miei poveri english.i 'm di lavoro su' formant rilevamento tramite lpc metodo '.
ho trovato qualcosa, ma i cant understand it.can nessuno spiegare è algorithm.please.it' s i necessrary.also non può eseguirlo
Formanti il metodo di rilevamento tramite LPC
LPC
NOME%
% SpLpc - La codifica lineare predittiva (un passo finito di osservazione
Wiener% filtro previsione)
SINOSSI%
% [P e] = spLpc (x, fs, ncoef, show)
DESCRIZIONE%
Ottenere% coefficienti LPC (modello AR)
INGRESSI%
% X (vettore) di dimensioni Nx1 che contiene il segnale
% Fs (scalare) la frequenza di campionamento
% [Ncoef] (scalare) il numero di coefficienti.Le impostazioni di default usa
Ncoef% = 2 fs / 1000;
%, Come una regola di pollice.
USCITE%
% A (vettore) di dimensioni ncoefx1 che contiene i coefficienti LPC
% P (scalare) varianza (potenza) la previsione di errore
% E (vettore) di dimensioni Nx1 che contiene i segnali di errore residuo
AUTORE%
% Naotoshi Seo, aprile 2008
USI%
Lpc.m% (Signal Processing Toolbox)
funzione [P e] = spLpc (x, fs, ncoef)
se esistono ~ ( 'ncoef', 'var') | | isempty (ncoef)
ncoef = 2 round (fs / 1000);% regola di pollice per intervento umano
fine
[P] = lpc (x, ncoef);
se nargout> 2,
est_x = filter ([0-A (2: end)], 1, x);% stimato segnale
e = x - est_x;% residuo del segnale
fine
fine [x, fs] = wavread ( 'bee.wav');
spLpc a = (x, fs, [], 'plot'); formanti di rilevamento
NOME%
% SpFormantsLpc - formanti Stima tramite il metodo LPC
SINOSSI%
% [F] = spFormantsLpc (a, fs)
DESCRIZIONE%
Stima% frequenze formanti
INGRESSI%
% A (vettore) di dimensioni ncoefx1 che contiene i coefficienti LPC
% Del segnale originale.Usa spLpc.m
% Fs (scalare) la frequenza di campionamento del segnale originale
USCITE%
% F (vettore) di dimensioni ncoefx1 che contiene formanti
AUTORE%
% Naotoshi Seo, aprile 2008
VEDERE ANCHE%
SpLpc.m%
funzione [F] = spFormantsLpc (a, fs)
r = radici (a);
r = r (imag (r)> 0,01);
F = sort (atan2 (imag (r), Real (R)) * fs / (2 * pi));
endFormants di monitoraggio in breve tempo Frames
NOME%
% SpFormantsTrackLpc: formanti monitoraggio attraverso il metodo LPC
SINOSSI%
% [F, T] = spFormantsTrackLpc (x, fs, ncoef,
Frame_length%, frame_overlap, finestra, mostra)
DESCRIZIONE%
% Formanti monitoraggio tramite il metodo LPC
INGRESSI%
% X (vettore) di dimensioni Nx1.
% Fs (scalare) la frequenza di campionamento in Hz.
% [Ncoef] (scalare) il numero di LPC coefficienti utilizzati per
% Stima.ncoef = 2 fs / 1000 è il default.
% [Frame_length]
% (Scalare) la lunghezza di ogni fotogramma in micro secondi.
Il valore predefinito è% 30ms.
% [Frame_overlap]
% (Scalare) la lunghezza di ogni fotogramma sovrapposizioni nelle micro secondi.
Il valore predefinito è% frame_length / 2.
% [Finestra]
% (Stringa) la funzione di finestra come rectwin, Hamming.
% Se non è specificato, equivalenti a Hamming
% [Mostra] (booleano) trama o meno.Il valore predefinito è 0.
USCITE%
% F (vettore) formanti (fm = F (trova (T == 0,01))
% T (vettore) formant volte
AUTORE%
% Naotoshi Seo, aprile 2006
funzione [F, T] = spFormantsTrackLpc (x, fs, ncoef, frame_length, frame_overlap, finestra, mostra)
%% Inizializzazione
N = lunghezza (x);
se esistono ~ ( 'frame_length', 'var') | | isempty (frame_length)
frame_length = 30;
fine
se esistono ~ ( 'frame_overlap', 'var') | | isempty (frame_overlap)
frame_overlap = 20;
fine
se esistono ~ ( 'finestra', 'var') | | isempty (finestra)
finestra = 'Hamming';
fine
se esistono ~ ( 'show', 'var') | | isempty (mostra)
show = 0;
fine
se esistono ~ ( 'ncoef', 'var')
ncoef = [];
fine
nsample = round (frame_length * fs / 1000); ms% convertire i punti
noverlap = round (frame_overlap * fs / 1000); ms% convertire i punti
finestra = eval (sprintf ( '% s (nsample)', finestra));% ad esempio, di Hamming (nfft)
pos = 1; t = 1;
F = [];% formanti
T = [];%
del tempo (s) al telaio
= metà ciclo (nsample / 2);
while (pos nsample <= N)
cornice = x (pos: nsample pos-1);
= cornice cornice - media (telaio);
a = spLpc (telaio, fs, ncoef);
fm = spFormantsLpc (a, fs);
per i = 1: lunghezza (fm)
F = [F fm (i)];% del numero formanti non sono uguali per ogni fotogramma
T = [T (pos metà) / fs];
fine
pos = pos (nsample - noverlap);
t = t 1;
fine
se mostrare
% Trama di forme d'onda
t = (0: N-1) / fs;
subplot (2,1,1);
plot (t, x);
leggenda ( 'di forme d'onda');
xlabel ( 'Tempo (s)');
ylabel ( 'ampiezza');
xlim ([t (1) t (fine)]);
% Plot formanti traccia
subplot (2,1,2);
plot (T, F,'.');
tenere spenti;
leggenda ( 'formanti');
xlabel ( 'Tempo (s)');
ylabel ( 'frequenza (Hz)');
xlim ([t (1) t (fine)]);
fine [x, fs] = wavread ( 'bee.wav');
[F, T] = spFormantsTrackLpc (x, fs, [], 30, 20, 'Hamming', 'trama');
ho trovato qualcosa, ma i cant understand it.can nessuno spiegare è algorithm.please.it' s i necessrary.also non può eseguirlo
Formanti il metodo di rilevamento tramite LPC
LPC
NOME%
% SpLpc - La codifica lineare predittiva (un passo finito di osservazione
Wiener% filtro previsione)
SINOSSI%
% [P e] = spLpc (x, fs, ncoef, show)
DESCRIZIONE%
Ottenere% coefficienti LPC (modello AR)
INGRESSI%
% X (vettore) di dimensioni Nx1 che contiene il segnale
% Fs (scalare) la frequenza di campionamento
% [Ncoef] (scalare) il numero di coefficienti.Le impostazioni di default usa
Ncoef% = 2 fs / 1000;
%, Come una regola di pollice.
USCITE%
% A (vettore) di dimensioni ncoefx1 che contiene i coefficienti LPC
% P (scalare) varianza (potenza) la previsione di errore
% E (vettore) di dimensioni Nx1 che contiene i segnali di errore residuo
AUTORE%
% Naotoshi Seo, aprile 2008
USI%
Lpc.m% (Signal Processing Toolbox)
funzione [P e] = spLpc (x, fs, ncoef)
se esistono ~ ( 'ncoef', 'var') | | isempty (ncoef)
ncoef = 2 round (fs / 1000);% regola di pollice per intervento umano
fine
[P] = lpc (x, ncoef);
se nargout> 2,
est_x = filter ([0-A (2: end)], 1, x);% stimato segnale
e = x - est_x;% residuo del segnale
fine
fine [x, fs] = wavread ( 'bee.wav');
spLpc a = (x, fs, [], 'plot'); formanti di rilevamento
NOME%
% SpFormantsLpc - formanti Stima tramite il metodo LPC
SINOSSI%
% [F] = spFormantsLpc (a, fs)
DESCRIZIONE%
Stima% frequenze formanti
INGRESSI%
% A (vettore) di dimensioni ncoefx1 che contiene i coefficienti LPC
% Del segnale originale.Usa spLpc.m
% Fs (scalare) la frequenza di campionamento del segnale originale
USCITE%
% F (vettore) di dimensioni ncoefx1 che contiene formanti
AUTORE%
% Naotoshi Seo, aprile 2008
VEDERE ANCHE%
SpLpc.m%
funzione [F] = spFormantsLpc (a, fs)
r = radici (a);
r = r (imag (r)> 0,01);
F = sort (atan2 (imag (r), Real (R)) * fs / (2 * pi));
endFormants di monitoraggio in breve tempo Frames
NOME%
% SpFormantsTrackLpc: formanti monitoraggio attraverso il metodo LPC
SINOSSI%
% [F, T] = spFormantsTrackLpc (x, fs, ncoef,
Frame_length%, frame_overlap, finestra, mostra)
DESCRIZIONE%
% Formanti monitoraggio tramite il metodo LPC
INGRESSI%
% X (vettore) di dimensioni Nx1.
% Fs (scalare) la frequenza di campionamento in Hz.
% [Ncoef] (scalare) il numero di LPC coefficienti utilizzati per
% Stima.ncoef = 2 fs / 1000 è il default.
% [Frame_length]
% (Scalare) la lunghezza di ogni fotogramma in micro secondi.
Il valore predefinito è% 30ms.
% [Frame_overlap]
% (Scalare) la lunghezza di ogni fotogramma sovrapposizioni nelle micro secondi.
Il valore predefinito è% frame_length / 2.
% [Finestra]
% (Stringa) la funzione di finestra come rectwin, Hamming.
% Se non è specificato, equivalenti a Hamming
% [Mostra] (booleano) trama o meno.Il valore predefinito è 0.
USCITE%
% F (vettore) formanti (fm = F (trova (T == 0,01))
% T (vettore) formant volte
AUTORE%
% Naotoshi Seo, aprile 2006
funzione [F, T] = spFormantsTrackLpc (x, fs, ncoef, frame_length, frame_overlap, finestra, mostra)
%% Inizializzazione
N = lunghezza (x);
se esistono ~ ( 'frame_length', 'var') | | isempty (frame_length)
frame_length = 30;
fine
se esistono ~ ( 'frame_overlap', 'var') | | isempty (frame_overlap)
frame_overlap = 20;
fine
se esistono ~ ( 'finestra', 'var') | | isempty (finestra)
finestra = 'Hamming';
fine
se esistono ~ ( 'show', 'var') | | isempty (mostra)
show = 0;
fine
se esistono ~ ( 'ncoef', 'var')
ncoef = [];
fine
nsample = round (frame_length * fs / 1000); ms% convertire i punti
noverlap = round (frame_overlap * fs / 1000); ms% convertire i punti
finestra = eval (sprintf ( '% s (nsample)', finestra));% ad esempio, di Hamming (nfft)
pos = 1; t = 1;
F = [];% formanti
T = [];%
del tempo (s) al telaio
= metà ciclo (nsample / 2);
while (pos nsample <= N)
cornice = x (pos: nsample pos-1);
= cornice cornice - media (telaio);
a = spLpc (telaio, fs, ncoef);
fm = spFormantsLpc (a, fs);
per i = 1: lunghezza (fm)
F = [F fm (i)];% del numero formanti non sono uguali per ogni fotogramma
T = [T (pos metà) / fs];
fine
pos = pos (nsample - noverlap);
t = t 1;
fine
se mostrare
% Trama di forme d'onda
t = (0: N-1) / fs;
subplot (2,1,1);
plot (t, x);
leggenda ( 'di forme d'onda');
xlabel ( 'Tempo (s)');
ylabel ( 'ampiezza');
xlim ([t (1) t (fine)]);
% Plot formanti traccia
subplot (2,1,2);
plot (T, F,'.');
tenere spenti;
leggenda ( 'formanti');
xlabel ( 'Tempo (s)');
ylabel ( 'frequenza (Hz)');
xlim ([t (1) t (fine)]);
fine [x, fs] = wavread ( 'bee.wav');
[F, T] = spFormantsTrackLpc (x, fs, [], 30, 20, 'Hamming', 'trama');