Metode de Analiza a Vorbirii. Exemplificari
Cuprins
Capitolul 1 Analiza vorbirii………………………………………………………………3
1.1 Istoric………………………………………………………………………….3
1.2 Producerea vorbirii umane…………………………………………………….3
1.3 Aplicatii ale analizei și sintezei vorbirii………………………………………4
Capitolul 2 Producerea vorbirii……………………………………………………………5
2.1 Limba………………………………………………………………………….5
2.2 Lingvistica……………………………………………………………………..5
2.3 Fonetica………………………………………………………………………..5
2.4 Clasificari ale semnalelor………………………………………………………5
2.5 Prozodia……………………………………………………………………….6
2.6 Ortografia………………………………………………………………………6
2.7 Transmiterea foneticǎ…………………………………………………………6
2.8 Adaptarea, asimilarea și coarticularea…………………………………………6
2.9 Aspecte elementare ale producerii vorbirii……………………………………7
2.10 Voce și vorbire……………………………………………………………….8
2.11 Modele sursǎ – filtru………………………………………………………….8
2.12 Clasificarea fonemelor……………………………………………………….8
2.12.1 Acustica…………………………………………………………………8
2.12.2 Articulație………………………………………………………………8
2.12.3 Fonemele……………………………………………………………….9
2.13 Vocale………………………………………………………………………..9
2.15.1 Vocale schwa…………………………………………………………..9
2.15.2 Vocale rigide și relaxate………………………………………………..9
2.15.3 Jitter și shimmer la vocale………………………………………………9
2.15.4 Diftongi…………………………………………………………………9
2.15.5 Semivocalele……………………………………………………………9
2.14 Consoane……………………………………………………………………..9
2.15 Africate……………………………………………………………………..10
2.16 Aspirate……………………………………………………………………..10
2.17 Continuante…………………………………………………………………10
2.18 Necontinuante………………………………………………………………10
2.19 Sibilante…………………………………………………………………….10
2.20 Nesibilante………………………………………………………………….10
2.21 Sonorante……………………………………………………………………10
2.22 Obstruente…………………………………………………………………..10
2.23 Bara vocalǎ………………………………………………………………….10
2.24 Alofonele……………………………………………………………………11
2.25 Statistici……………………………………………………………………..11
2.26 Șoapta……………………………………………………………………….11
Capitolul 3 Predicția liniară……………………………………………………………..11
3.1 Introducere……………………………………………………………………11
3.2 Estimări ale funcției de autocorelație…………………………………………13
3.3 Estimarea spectrului de putere……………………………………………….14
3.3.1 Estimarea clasică……………………………………………………….14
3.3.2 Estimarea spectrală parametrică……………………………………….15
3.3.3 Metoda celor mai mici pătrate…………………………………………17
3.3.4 Estimarea spectrală de putere folosind predicția liniară……………….19
Capitolul 4 Analiza cepstrală……………………………………………………………21
4.1 Introducere………………………………………………………………………………………….21
4.2 Istoric…………………………………………………………………………21
4.3 Cepstrul real………………………………………………………………….21
4.4 Cepstrul complex…………………………………………………………….22
4.5 Concluzii……………………………………………………………………..24
Capitolul 5 Bancuri de filtre…………………………………………………………….26
5.1 Introducere……………………………………………………………………26
5.2 Modele de filtre………………………………………………………………27
5.2.1 Filtre cu raspuns finit la impuls………………………………………..27
5.2.2 Filtre cu raspuns infinit la impuls………………………………………28
5.3 Functii utile ale filtrului………..…………………………………………….29
5.4 Transformǎri pentru proiectarea filtrului digital…………………………….30
5.5 Proiectarea filterlor FIR………………………………………………………31
5.5.1 Introducere……………………………………………………………..31
5.5.2 Filtrul ideal “trece-jos”…………………………………………………31
5.5.3 Versiune realizabilǎ……………………………………………………32
5.5.4 Îmbunǎtǎțirea filtrelor FIR “trece-jos” cu funcții fereastrǎ…………….32
5.5.5 Filtre “trece-sus”, “trece-bandǎ” și “stop-bandǎ”………………………34
5.5.6 Alte tipuri de filtre FIR…………………………………………………36
5.6 Proiectarea filtrelor IIR………………………………………………………37
5.6.1 Introducere……………………………………………………………..37
5.6.2 Faza liniarǎ……………………………………………………………..38
5.6.3 Filtrele Butterworth……………………………………………………39
5.6.4 Filtrele Chebyshev……………………………………………………..41
5.6.5 Decodificarea frecvenței……………………………………………….44
5.6.6 Transformarea biliniarǎ………………………………………………..46
5.6.7 Filtrele digitale IIR…………………………………………………….48
5.6.8 Alte tipuri de filtre IIR…………………………………………………50
5.7 Proiectarea bancurilor de filtre………………………………………………52
5.8 Transformata Fourier Discretǎ (DFT)……………………………………….52
5.9 Transformata Fourier Rapidǎ (FFT)…………………………………………54
5.10 Relatia dintre DFT și filtrele digitale……………………………………….55
5.11 Analiza spectrului vocal folosind FFT.…………………………………….56
5.12 Concluzii……………………………………………………………………56
Capitolul 6 Spectrograme……………………………………………………………….57
Capitolul 7 Aplicatii……………………………………………………………………..59
7.1 Analiza înregistrǎrii vocii feminine………………………………………….59
7.2 Analiza înregistrǎrii vocii masculine…………………………………………82
Anexa 1 Ferestre – prezentare generală…………………………………………………………………105
Anexa 2 Programe sursă……………………………………………………………………………………..110
Anexa 3 Constatǎri…………………………………………………………………………………………….116
=== Metode de analiza a vorbirii. Exemplificari. ===
Cuprins
Capitolul 1 Analiza vorbirii………………………………………………………………3
1.1 Istoric………………………………………………………………………….3
1.2 Producerea vorbirii umane…………………………………………………….3
1.3 Aplicatii ale analizei și sintezei vorbirii………………………………………4
Capitolul 2 Producerea vorbirii……………………………………………………………5
2.1 Limba………………………………………………………………………….5
2.2 Lingvistica……………………………………………………………………..5
2.3 Fonetica………………………………………………………………………..5
2.4 Clasificari ale semnalelor………………………………………………………5
2.5 Prozodia……………………………………………………………………….6
2.6 Ortografia………………………………………………………………………6
2.7 Transmiterea foneticǎ…………………………………………………………6
2.8 Adaptarea, asimilarea și coarticularea…………………………………………6
2.9 Aspecte elementare ale producerii vorbirii……………………………………7
2.10 Voce și vorbire……………………………………………………………….8
2.11 Modele sursǎ – filtru………………………………………………………….8
2.12 Clasificarea fonemelor……………………………………………………….8
2.12.1 Acustica…………………………………………………………………8
2.12.2 Articulație………………………………………………………………8
2.12.3 Fonemele……………………………………………………………….9
2.13 Vocale………………………………………………………………………..9
2.15.1 Vocale schwa…………………………………………………………..9
2.15.2 Vocale rigide și relaxate………………………………………………..9
2.15.3 Jitter și shimmer la vocale………………………………………………9
2.15.4 Diftongi…………………………………………………………………9
2.15.5 Semivocalele……………………………………………………………9
2.14 Consoane……………………………………………………………………..9
2.15 Africate……………………………………………………………………..10
2.16 Aspirate……………………………………………………………………..10
2.17 Continuante…………………………………………………………………10
2.18 Necontinuante………………………………………………………………10
2.19 Sibilante…………………………………………………………………….10
2.20 Nesibilante………………………………………………………………….10
2.21 Sonorante……………………………………………………………………10
2.22 Obstruente…………………………………………………………………..10
2.23 Bara vocalǎ………………………………………………………………….10
2.24 Alofonele……………………………………………………………………11
2.25 Statistici……………………………………………………………………..11
2.26 Șoapta……………………………………………………………………….11
Capitolul 3 Predicția liniară……………………………………………………………..11
3.1 Introducere……………………………………………………………………11
3.2 Estimări ale funcției de autocorelație…………………………………………13
3.3 Estimarea spectrului de putere……………………………………………….14
3.3.1 Estimarea clasică……………………………………………………….14
3.3.2 Estimarea spectrală parametrică……………………………………….15
3.3.3 Metoda celor mai mici pătrate…………………………………………17
3.3.4 Estimarea spectrală de putere folosind predicția liniară……………….19
Capitolul 4 Analiza cepstrală……………………………………………………………21
4.1 Introducere………………………………………………………………………………………….21
4.2 Istoric…………………………………………………………………………21
4.3 Cepstrul real………………………………………………………………….21
4.4 Cepstrul complex…………………………………………………………….22
4.5 Concluzii……………………………………………………………………..24
Capitolul 5 Bancuri de filtre…………………………………………………………….26
5.1 Introducere……………………………………………………………………26
5.2 Modele de filtre………………………………………………………………27
5.2.1 Filtre cu raspuns finit la impuls………………………………………..27
5.2.2 Filtre cu raspuns infinit la impuls………………………………………28
5.3 Functii utile ale filtrului………..…………………………………………….29
5.4 Transformǎri pentru proiectarea filtrului digital…………………………….30
5.5 Proiectarea filterlor FIR………………………………………………………31
5.5.1 Introducere……………………………………………………………..31
5.5.2 Filtrul ideal “trece-jos”…………………………………………………31
5.5.3 Versiune realizabilǎ……………………………………………………32
5.5.4 Îmbunǎtǎțirea filtrelor FIR “trece-jos” cu funcții fereastrǎ…………….32
5.5.5 Filtre “trece-sus”, “trece-bandǎ” și “stop-bandǎ”………………………34
5.5.6 Alte tipuri de filtre FIR…………………………………………………36
5.6 Proiectarea filtrelor IIR………………………………………………………37
5.6.1 Introducere……………………………………………………………..37
5.6.2 Faza liniarǎ……………………………………………………………..38
5.6.3 Filtrele Butterworth……………………………………………………39
5.6.4 Filtrele Chebyshev……………………………………………………..41
5.6.5 Decodificarea frecvenței……………………………………………….44
5.6.6 Transformarea biliniarǎ………………………………………………..46
5.6.7 Filtrele digitale IIR…………………………………………………….48
5.6.8 Alte tipuri de filtre IIR…………………………………………………50
5.7 Proiectarea bancurilor de filtre………………………………………………52
5.8 Transformata Fourier Discretǎ (DFT)……………………………………….52
5.9 Transformata Fourier Rapidǎ (FFT)…………………………………………54
5.10 Relatia dintre DFT și filtrele digitale……………………………………….55
5.11 Analiza spectrului vocal folosind FFT.…………………………………….56
5.12 Concluzii……………………………………………………………………56
Capitolul 6 Spectrograme……………………………………………………………….57
Capitolul 7 Aplicatii……………………………………………………………………..59
7.1 Analiza înregistrǎrii vocii feminine………………………………………….59
7.2 Analiza înregistrǎrii vocii masculine…………………………………………82
Anexa 1 Ferestre – prezentare generală…………………………………………………………………105
Anexa 2 Programe sursă……………………………………………………………………………………..110
Anexa 3 Constatǎri…………………………………………………………………………………………….116
Bibliografie
Capitolul 1 Analiza vorbirii
1.1 Istoric
Într-un articol interesant despre istoria dezvoltǎrii vorbirii, Flanagan (1972) vorbește despre fascinația umanǎ pentru vorbire și voce încǎ din antichitate și plaseazǎ apariția studiului stiințific al vorbirii în perioada Renașterii când modele mecanice inteligente au fost construite pentru a imita vorbirea. Primele sintetizatoare mecanice de vorbire au aparut în St. Petersburg și Viena la sfarșitul secolului al 18-lea. In 1930, un secol și jumatate mai târziu, se considerǎ a fi începutul erei de tehnologie modernǎ a vorbiri, în mare parte datoratǎ celor douǎ soluții de dezvoltare a cercetǎrii de la laboratoarele Bell. Prima a fost dezvoltarea PCM, prima reprezentare digitalǎ a vorbirii care a ajutat la deschiderea câmpului de comunicare digitalǎ. A doua a fost demonstrația Vocoder-ului (codificator vocal) fǎcutǎ de Dudley (1939), un sintetizator de voci, proiect care a demonstrat pentru prima datǎ posibilitatea reprezentǎrii parametrice a vorbirii și codarea.
Menționǎm câteva soluții de dezvoltere a procesului de vorbire: o intensǎ cercetare asupra aspectului de bazǎ acustic al producerii vorbirii și concomitent interesul în sintetizatorul electronic de la sfarșitul anului 1940. Dezvoltarea a fost sporitǎ de invenția unui spectrograf în 1946, de avansare în analiza și codarea algoritmilor în 1960 fǎcutǎ posibilǎ de mașini digitale computerizate și asociat cu munca în semnal digital. Interesul în recunoașterea cercetǎrii vorbirii a continuat pânǎ în anul 1990.
1.2 Producerea vorbirii umane
Examinarea propagǎrii acustice și propagǎrii sunetului pentru sistemul vorbirii umane include descrierea tractului vocal, tractului oral și tractului nazal. Astfel, discutǎm despre rolul faringelui, velumului și articulației, incluzând gura, buzele, cerul gurii, limba și dinții, în producerea vorbirii. Modele de tract vocal pot fi descries folosind tuburi concatenare. Articulația este importantǎ pentru cǎ schimbǎ forma tractului vocal, astfel, schimbând sunetul produs. Articulatorii afecteazǎ comprimarea în tractul vocal și locul articulației, afecteazǎ producerea vocalelor, consoanelor și sunetelor silențioase precum fricativele. Comprimarea în tractul vocal produce turbulențe în fluxul aerului, astfel, influențând producerea fricativelor, sibilantelor și altor consoane.
Câmpul fonetic cuprinde numele sau denumirea sunetelor, care cuprinde fonuri, alofonuri, fonemuri, silabe, demisilabe, difonuri, diade, morfi. Alte tipuri de denumiri includ clasificarea sunetelor conform tipului excitației tractului vocal, precum sunetul, nesunetul, amândouǎ sunetul și nesunetul, nazalizare și chiar, tǎcerea. Alt caracteristic al vorbirii este prozodicul, care includ sincronizarea sunetelor și durata, pauzele, incordarea, intensitate și intonație. Lingvistica include sintaxa și semantica.
Analiza vorbirii și tipul sintezei vorbirii sistemelor de recunoaștere cere modele variate pentru perceperea vorbirii, producerea vorbirii, forma de undǎ și modele spectrale.
Aceste modele includ modelul tuburilor acustice, modelul filtrelor, modelul poli-zerouri, modelul tractului oral și nasal și modelul radiației vorbirii.
Sursa de date pentru analiza și modelarea vorbirii include fotografii și casete, tehnologia x-ray, imaginea radiațiilor magnetice (MRI) și filtrul inversat al vorbirii.
1.3 Aplicații ale analizei și sintezei vorbirii
Analiza vorbirii și recunoasterea aplicațiilor include sisteme telefonice, codǎri, strângerea de date, mesagerie vocalǎ, stații de lucru, calculatoare și rețele. Vorbirea și codarea audio include modele statistice, cuantificǎri. Analiza vorbirii include mai multe forme, cum ar fi predicție liniarǎ, sisteme text-cǎtre-vorbire și sintetizatori amestecați. O aplicație a analizei vorbiri se numește conversia vocalǎ, unde obiectivul este sǎ sintetizeze o voce cu caracteristici dorite. Sinteza text-cǎtre-vorbire necesitǎ vorbire sintetizatǎ-de-regulǎ, ce includ reguli pentru conversia text-la-fonem, fonem-la-reguli caracteristice, caracteristicǎ-la-reguli parametrice și parametrii-la-regulile vorbirii. O altǎ aplicație este recunoașterea, identificarea și verificarea vorbirii. Sistemul de comunicare om-mașinǎ ce s-a dezvoltat include metode de a acomoda furnizarea vocii cǎtre multiple tipuri de voci, multiple dialecte sau accente. Aceste sisteme pot fi dependente de vorbitor sau sisteme independente.
Unele aplicații recente pe calculator pentru e-mail și aplicații web examineazǎ folosirea segmentelor vorbirii pentru sinteza acesteia. Aceasta este o abordare mai veche ce a fost revitalizatǎ din cauza descifrǎrii mai ușoare. Aplicațiile apar cu o vorbire animatǎ “helpers” pentru procesoare, aplicații web și e-mail. Acestea sunt sisteme text-cǎtre-vorbire cu caracter special.
Capitolul 2 Producerea vorbirii
Limba
Limba este definitǎ astfel: aspect al comportamentului uman care include folosirea sunetelor vocale în comunicare și când existǎ, transmiterea prin vorbire a simbolurilor și formelor scrise, exprimarea și comunicarea sentimentelor și gândurilor.
O alternativǎ a definiției poate fi: orice metodǎ de comunicare a ideilor de cǎtre un sistem de semne, simboluri, gesturi, sau ca limbajul algebric, sau limbajul computerizat cum ar fi C sau FORTRAN.
Lingvistica
Lingvistica se ocupǎ cu studiul regulilor prin care sunetele vorbite se asambleazǎ într-o limbǎ. Lingvistica studiazǎ unitǎțile limbii și cum funcționeazǎ.
Fonetica
Fonetica se ocupǎ cu studiul și clasificarea sunetelor din vorbire. Fonetica include:
Psihologia produsului vorbirii și mișcarea organelor vocale pentru a produce sunete și cuvinte.
Acustica foneticǎ, ce include descrierea acusticǎ a sunetelor vorbite.
Clasificǎri ale semnalelor
O unitate de bazǎ a lingvisticii este fonul, care este un sunet articulat. Articularea este procesul prin care se produc sunete manipulând articulatorii, care schimbǎ configurația tractului vocal. Tractul vocal include faringele și cavitatea oralǎ pânǎ la buze. Producând sunete prin lovirea unei mâini sau bǎtând din picior nu e o formǎ de articulare dar poate fi un mijloc de comunicare. Mai multe fonuri alcǎtuiesc foneme. Fonurile sunt sunete. Fonemele sunt elementele vorbirii. Fonemele pot fi combinate în unitǎți mai mari care se numesc silabe, o definiție care nu întotdeauna este de acord cu lingvistica. O definiție comunǎ a silabei este: fiecare dintre unitǎțile sonore ale cuvantului, formatǎ dintr-unul sau mai multe foneme cu o culme de sonoritate și de expirație și despǎrțitǎ de celelalte prin depresiuni de sonoritate și expirații. Definiția fonemului este cǎ atunci când un fonem este înlocuit de altul înțelesul cuvantului se poate schimba. O altǎ definiție este cea mai micǎ unitate fonicǎ a limbii având funcțiunea de a diferenția invelisul sonor al cuvintelor și al morfemelor.
O combinație de silabe formeazǎ un cuvânt care este de obicei o combinație de la douǎ la cinci foneme .
Propozițiile sunt unitǎți lingvistice mai mari care necesitǎ reguli prin care cuvintele se vor alǎtura. Propozitiile nu trebuie sǎ respecte doar regulile ci trebuie sǎ aibe și sens.
Cu cât înaintǎm în structura limbii ajungem la semanticǎ care se ocupǎ cu studiul înțelesului cuvintelor. Maniera prin care folosim cuvintele este influențatǎ de gramatica limbii și de ințelesul pe care vrem sǎ îl transmitem.
Prozodia
Caracteristicile prozodice ale vorbirii transmit informația despre o variație pe termen lung a nivelului, intensitǎții și sincronizǎrii. Percepem caracteristicile prozodice ca încordare și intonație, care sunt greu de mǎsurat, modelat și simulat în sinteza vorbirii. De exemplu aratǎm diferența dintre o întrebare și o relație și ne îndoim de schimbǎrile în intonație sau de schimbǎri în frecvența fundamentalǎ a vocii. Statutul emoțional a unui vorbitor, starea de sǎnǎtate și alți factori pot fi transmiși de variații în intonație. Accentuarea e folositǎ în conversație pentru a indica importanța cuvintelor. Nu existǎ nici o cale de a indica accentuarea și intonația în scris, acești doi factori sunt folosiți aproape exclusiv numai în vorbire. Apǎsarea lexicalǎ e folositǎ de vorbitor pentru a accentua silabele în cuvânt. Apǎsarea și intonația sunt tehnici de comunicare foarte folosite și au conexiune cu sensul, deoarece variațiile acestor factori pot transmite informații despre statutul emoțional, sǎnǎtate și alți factori ce influențeazǎ vorbitorul.
Accentuarea și intonația dau informații importante pentru calitatea semnalului vorbirii și sunt importante pentru sinteza vorbirii. Intonația e perceputǎ ca schimbare în frecvența fundamentalǎ a sunetului, F0.
Accentuarea e perceputǎ ca o schembare în creșterea efortului vorbirii la fel ca și schimbarea în intensitate, schimbarea duratei sunetului și nivelului.
Accentuarea și intonația reprezintǎ douǎ trǎsǎturi suprasegmentale, alta fiind durata. Termenul de caracteristicǎ suprasegmentalǎ se referǎ la caracteristicile vorbirii ce se extind pe un segment scurt.
Sunetele vorbite variazǎ în duratǎ. De exemplu unele vocale sunt mai lungi decât altele și unele consoane la fel. Este posibil ca o aceeași vocalǎ sǎ varieze în duratǎ în funcție de pozitia sa într-un cuvânt. Spre exemplu vocalele terminale tind sǎ fie mai lungi decât cele de început.
2.6 Ortografia
Ortografia e un sistem de scriere, rostire ce urmarește un set de reguli.
Scrierea, rostirea ne asigurǎ un înțeles vizual a reprezentǎrii cuvintelor rostite cu caractere scrise.
2.7 Transmiterea foneticǎ
Aceasta este o procedurǎ de a transmite informații de pronunțare cât se poate de ambiguu.
Este o tehnicǎ de a obține o transcriere alotropicǎ care este mult mai corectǎ decât regulile vorbirii.
Adaptarea, asimilarea și coarticularea
Sunetele produse sunt influențate și modificate de sunete învecinate. Un tip de astfel de influențǎ se numește adaptare foneticǎ. Astfel de adaptǎri sunt rezultatul unor variații în maniera în care vorbitorul mișcǎ articulatorii, acestea vor cauza schimbǎri în cavitǎțile vocale. Moduri și extinderea la care cavitațile vocale sunt schimbate, sunt afectate de trecut, prezent și foneme într-un enunț deosebit. Poziția articulatorilor și forma cavitǎții pentru un fonem influenteazǎ mișcarea articulatorilor pentru a produce foneme alǎturate. Un exemplu de adaptare vine atunci când crește rata vorbirii. Cu cât vorbim mai repede cu atât mai putin limba va ajunge la poziții specifice pentru specificul fonemelor. În sumar, adaptarea este procesul varierii sau schimbǎrii unui fonem datorat influenței formei tractului vocal pentru fonemele învecinate. Adaptarea este rezultatul modificǎrii mișcǎrii unui articulator datorat contextului fonemic. Producerea unui fonem este influențatǎ de forma tactului vocal învecinat. Totuși manifestarea acusticǎ a fonemului nu se schimbǎ.
Asimilarea este o formǎ excesivǎ de adaptare. Dacǎ un fonem se schimbǎ suficient de mult încât sǎ devinǎ ca fonemul învecinat, atunci astfel de schimbǎri în fonem se chiamǎ asimilare. Asimilarea rezultǎ într-o schimbare actualǎ în sunetul fonemului.
Coarticularea este definitǎ ca mișcarea a doi articulatori în același timp pentru foneme diferite. Coarticularea poate exista cu sau fǎrǎ o schimbare în producerea sunetului.
Termenul de coarticulație este folosit des pentru a arǎta cǎ asimilația poate avea loc.
Aspecte elementare ale producerii vorbirii
Majoritatea limbilor au între 30 și 50 de foneme. Vorbirea nu este un șir ordonat și precis de foneme. Este mai degraba o serie de fenomene ce au pantele offset și onset în amplitudine, care contribuie la transmisia dintre foneme. Vorbirea este o secvențǎ de foneme “neclare” care de obicei nu sunt pronunțate precis, astfel fǎcând identificarea fonemelor din spectrograme dificilǎ.
Introducere sumarǎ în sistemul vocal: principala funcțiune a laringelui este sǎ ofere o închizǎturǎ protectoare pentru sistemul respirator. Laringele, susținut de ligamente și controlat de mușchi activați de numeroși nervi și compuse dintr-un țesut moale ce îmbracǎ un schelet cartilaginos. O membranǎ mucoasǎ cǎptușește laringele și traheea. În sistemul vocal avem douǎ perechi de membrane care se extind în canalul de aer, coardele
vocale și ventricol. Pentru sunetele vocale presiunea aerului crește formând o deschizǎturǎ numitǎ glotǎ.
Tractul vocal este considerat a fi întreaga cavitate de la glotǎ pânǎ la buze. Ipoteza de bazǎ la aproape toate modelele de vorbire este aceea cǎ glota este independentǎ fațǎ de
tactul vocal. Tractul vocal poate fi modelat în mai multe feluri. Totuși presupunerea independenței dintre glotǎ și tractul vocal nu este întotdeauna adevǎratǎ.
Elementul principal ce controleazǎ tractul vocal este limba, care divide tractul vocal în douǎ cavitǎți rezonante, faringele și gura, care în schimb determinǎ transmiterea caracteristicilor tractului vocal. Caracteristicile pot fi modificate prin cuplarea în cavitatea nazalǎ sub controlul cerului gurii sau a velumului.
Caracteristica transmiterii tractului vocal este aceea cǎ, cauzeazǎ frecvențe certe, componente ale semnalului laringelui, sǎ treacǎ cu o atenuare mai micǎ. Rezonanțele în interiorul spectrului poartǎ denumirea de formate. Fiecare format are o lungime de bandǎ. Formatele superioare sunt importante pentru vorbirea de înaltǎ calitate. Cel mai semnificant șir de frecvențe pentru vorbire este aproximativ între 250 și 3000Hz.
Formatele au loc la o frecvențǎ naturalǎ a tractului vocal uman, care este actualmente un tub acustic nonuniform.
2.10 Voce și vorbire
Este adevǎrat cǎ configurația suprafeței de excitație a formei de unda afecteazǎ calitatea și tipul caracteristicilor vocale. Tipul vocii este afectat și de mișcarea și plasamentul articulatorilor, de rata vorbirii și de alți factori. Deci configurația tractului vocal afecteazǎ caracteristicile vocale.
Ca un exemplu dialectele din New England și New York se numesc “clipped” deoarece locuitorii din New England vorbesc foarte repede, foarte des deformând unele foneme. Din obicei habitual înlocuiec sau omit anumite foneme. Un alt exemplu este acccentul. O propeziție poate fi rostitǎ în standardul american englez ca și cu accent spaniol sau german. În acest caz diferențele de accent se pot datora diferențelor de mișcare a articulatorilor și probabil din cauza diferențelor în configurația excitațiilor formei de unda. Lucrul pe care trebuie sǎ îl ținem minte este cǎ vocea sau caracteristicile vocale sunt diferite de vorbire. Primul țel al sintezei vorbirii este de a produce o vorbire ce este bine ințeleasǎ, cu calitǎți vocale bune. Sinteza vorbirii pentru majoritatea aplicațiilor comerciale nu cere imitarea unui caracterister vocal specific sau tip de voce.
Un scop al sintezei vocale este de a fi în stare sǎ creeze noi caracteristici vocale ca un compozitor ce creeazǎ muzicǎ. Deci vocea și sinteza vorbirii sunt diferite. Caracteristicile vocii nu sunt aceleași ca și caracteristicile vorbirii. Parametrii pe care îi folosim pentru a modela o voce diferǎ de parametrii folosiți pentru modelarea vorbiri.
2.11 Modele sursǎ – filtru
Modelul sursǎ – filtru a fost descoperit de Fant în 1960. Acest model de producere a sunetului este liniar. Sursa furnizeazǎ excițarea care este formatǎ spectral de filtrul tractului vocal. Deoarece sursa este periodicǎ pentru vocale, spectrul lor constǎ din fundament și armonicǎ, sau o linie spectralǎ. Aceastǎ linie spectralǎ este filtratǎ pentru a produce vorbirea. Filtrul se schimbǎ cu timpul pentru a simula efectul schimbǎrilor în forma tractului vocal. Deci filtrul tractului vocal este factorul principal în producerea sunetelor variate.
Clasificarea fonemelor
Pentru o limbǎ vorbitǎ semnalul acustic radiazǎ de pe buze și constǎ în elemente de sunet numite foneme. Existǎ mai multe cǎi de a clasifica fonemele.
Acustica
O clasificare se referǎ la tipul de excitare, de exemplu, sonor și nesonor.
2.12.2 Articulație
Altǎ clasificare se face dupǎ maniera și locul articulației. Locul pentru articulație include: labial, dental, labiodental, glotal, alveolar.
Fonemele
Altǎ clasificare este faǎutǎ cu ajutorul vocalelor și consoanelor. Aceste clase de foneme conțin mai multe subclase. Vocalele tind sǎ fie stabile, cel putin pentru interval de timp lung, în timp ce consoanele tind sǎ fie scurte.
2.13 Vocale
Cosiderǎm 14 vocale care sunt toate sonore. Vocala este sunet al vorbirii la a cǎrui emitere curentul de aer sonor iese liber, fǎrǎ sǎ întâlneascǎ nici un obstacol.
Vocale schwa
Vocala schwa este numitǎ de obicei vocala degeneratǎ. Aceasta este o vocalǎ la care tind sǎ se alǎture alte vocale când articulǎrile cuvintelor se fac rapid sau neglijent în timpul vorbirii fluente. Vocala ințialǎ în cuvântul “ahead” este o vocala schwa. Vocala schwa tinde sǎ fie scurtǎ în duratǎ și slabǎ în amplitudine.
Vocale rigide și relaxate
Unele vocale și diftongi sunt mai lungi decât altele și sunt produse când limba ajunge în poziții extreme. Vocalele cu ajustǎri mai extreme ale limbii și durata mai lungǎ se numesc vocale rigide. Vocalele scurte care pot apǎrea în silabe închise dar nu și în cele deschise se numesc vocale relaxate, deoarece sunt prodese cu mișcǎri mai puțin extreme.
Diftongi
Un diftong este un fonem monosilabic care începe la o poziție articularǎ pentru o consoanǎ și mutânduși poziția mai departe pentru altǎ vocalǎ. Va exista și o schimbare în rezonanața vocalei.
Jitter și shimmer la vocale
In timp ce vocalele și diftongii sunt considerați a fi stabili în natura produceri lor este o variație între perioade successive. Aceastǎ variație se numeste “jitter”. Mai exista și o schimbare de amplitudine care se numeste “shimmer”.
Semivocalele
Vocalele lichide miscǎ limba înainte. Vocalele alunecatoare sunt similare cu diftongii, dar o vocalǎ alunecǎtoare are o trecere mai rapidǎ.
Consoane
Consoanele se împart în mai multe subclase. Consoana este sunet al vorbirii format
mai ales din zgomote produse fie prin închiderea totalǎ și deschiderea bruscǎ a canalului vorbitor într-un punct oarecare al parcursului sǎu, fie prin strǎmutarea lui.
Fricativele sunt de obicei clasificate dupǎ tipul de excitație, acesta poate fi sonor și mut. Existǎ patru fricative sonore și patru mute. Nazalii sunt generați coborând velumul pentru a se conecta în cavitatea nazalǎ pânǎ la faringe și tractul oral. Gura este și ea închisǎ. Uneori diftongii și semivocalele sunt grupate în consoane.
2.15 Africate
Africatele sunt pauze cu eliberǎri fricative. Una este sonora și una mutǎ.
2.16 Aspirate
O aspiratǎ e produsǎ de un suflu de aer ferm ce trece prin cute vocale deschise.
2.17 Continuante
Aceste foneme au un tract vocal fix nevariabil în timp care este excitat de o sursǎ.
Vocalele, fricativele, semivocalele, aspiratele și nazalele sunt toate susținute.
2.18 Necontinuante
Aceste foneme au un tract vocal schimbǎtor, de exemplu: diftongi și affricate.
2.19 Sibilante
Sibilantele sunt sunete ascuțite cu un sâsâit evident. Ca în “sigh” și “shy”.
2.20 Nesibilante
Nesibilantele sunt alte fricative ce nu au clasificare ca sibilantele.
2.21 Sonorante
Acestea include nazalele și semivocalele și sunt produse cu mai puțin aer decât obstruentele.
2.22 Obstruente
Acestea include pauzele și fricativele.
2.23 Bara vocalǎ
O barǎ vocalǎ are un format de frecvențǎ foarte joasǎ, aproximativ 150 Hz. O barǎ vocalǎ se produce atunci când undele vocale vibreazǎ și excitǎ un nazal închis și un tract oral. Fricativele sonore de cele mai multe ori conțin o barǎ vocalǎ.
2.24 Alofonele
Alofonele sunt o variantǎ de foneme ca pentru /k/ ca în cuvintele keel și cool.
2.25 Statistici
Cele mai cunoscute foneme ale limbii engleze sunt
/AX/, 9.04% ca în cuvântul about /L/ , 5.69% ca în cuvântul let
/T/ , 8.40% ca în cuvântul ten /M/ , 5.29% ca în cuvântul met
/IH/ , 8.25% ca în cuvântul bit /DH/, 2.99% ca în cuvântul that
/EN/, 7.08% ca în cuvântul net /K/ , 2.90% ca în cuvântul kit
/S/ , 4.09% ca în cuvântul sat /AY/, 2% ca în cuvântul buy
/D/ , 5.18% ca în cuvântul debt
2.26 Șoapta
O șoaptǎ e produsǎ ca o aspirație de un curent de aer ferm ce trece prin glotǎ.
Capitolul 3 Predicția liniară
3.1 Introducere
Un tub închis la un capăt și deschis la celălalt suportă unde staționare care depind de lungimea tubului. Pentru scopuri de modelare, tractul vocal poate fi considerat drept (nu curbat) și, astfel, aproximat cu un tub de secțiune variabilă. Propagarea sunetului prin tractul vocal este planară, rezultă că forma tractului vocal poate fi modelată printr-o funcție ce depinde de poziția de-a lungul tractului.
Efectele neliniare devin importante numai pentru curentul de aer ce trece printre corzile vocale și prin constricțiile strâmte ale tractului vocal, ca în cazul producerii fricativelor.
Pentru un tub ideal, fără pierderi și rigid, cu o secțiune transversală A(x), se pot folosi ecuațiile mișcării și continuității pentru a descrie propagarea undei sonore prin tractul vocal. Dacă u(x, t) este viteza volumică și p(x, t) presiunea, atunci:
ecuația mișcării (3.1)
ecuația de continuitate (3.2)
Pentru un tub de lungime L cu o excitație exponențială complexă se pot folosi ecuațiile (3.1) și (3.2) pentru calculul răspunsului în frecvență și al impedanței tubului. Efectuând aceste calcule, găsim că răspunsul în frecvență este:
răspunsul în frecvență = (3.3)
Această ecuație are poli la:
, n = 0, 1, 2, … (3.4)
Pentru c = 35.000 cm/sec și L = 17,
Hz (3.5)
care sunt multiplii impari ai frecvenței de 500 Hz. Acestea sunt frecvențele naturale sau frecvențele proprii ale modelului sistemului și reprezintă formanții tractului vocal. Asemenea formanți se întâlnesc indiferent de forma tractului vocal, modificandu-se atunci când se modifică tractul vocal.
În cazul unui tub real (ne-ideal), apar pierderi datorită frecării vâscoase, condițiilor termice și pereților (elasticității acestora). Efectul elasticității pereților este acela de a deplasa ușor formanții frecvențelor joase, ridicându-i în frecvență, acestora crescându-le lățimea de bandă.
Efectul de radiație la buze și nări este acela de filtru trece-sus aproximat printr-o diferențială în domeniul timp. Acest efect tinde să urce amplitudinea formanților, la frecvențe înalte.
Tractul vocal poate fi modelat printr-un set de rezonanțe (formanți sau poli) care depind de forma acestuia. Lățimile de bandă ale celor mai mici doi formanți depind în primul rând de pierderile datorate elasticității pereților. Lățimile de bandă ale celor mai mari formanți depind în primul rând de pierderile prin frecare vâscoasă, pierderile termice și cele datorate radiației.
Figura 3.1 Modelul producerii sunetului prin tractul vocal.
Excitația este modelată prin două surse: un generator periodic de forme de undă (aproximat cu o funcție de transfer cu doi poli) pentru sunetele sonore și un generator de zgomot pentru sunetele nesonore. Există, de asemenea, radiație la buze, care se modelează printr-un singur zerou, care este echivalat cu o diferențială în domeniul timp. Modelul complet este prezentat în figura 3.1, unde AV și AN sunt termenii ce reprezintă câștigul (amplificarea) pentru modelul sursei sonore, respectiv pentru modelul sursei nesonore. Aspectul major al acestui model, este că modelul tractului vocal V(z) poate fi un model numai cu poli, fără zerouri. Din această cauză modelarea predictivă liniară este importantă în analiza, sinteza și recunoașterea vorbirii.
3.2 Estimări ale funcției de autocorelație
Estimările (funcției) de autocorelație sunt folosite în diverse aplicații, inclusiv în modelarea de date, cum este cazul predicției liniare și cel al estimării spectrale de putere.
Există doi estimatori majori pentru funcția de autocorelație, aceștia fiind folosiți în mod obișnuit.
Primul estimator se numește funcția de autocorelație fără abatere sistematică și se definește în felul următor:
, pentru (3.6)
numărul total de termeni este N, acesta semnificând numărul de puncte de date disponibile. X(n) este o secvență aleatoare, R-ul cu căciulă semnifică un estimat.
Această estimare este fără abatere sistematică, deoarece speranța matematică a estimatului este autocorelația adevărată, respectiv:
(3.7)
unde E semnifică valoarea speranței matematic. Când variabilele aleatoare sunt gaussiene și de medie nulă, varianța estimării este:
(3.8)
Presupunând k fixat, estimatul funcției de autocorelație tinde la zero atunci când N tinde la infinit, făcând această estimare consistentă.
Al doilea estimator se numește funcția de autocorelație cu abatere sistematică și se definește în felul următor:
, pentru (3.9)
unde X(i) este o secvență aleatoare gaussiană de medie zero (nulă). Cu toate că această estimare este cu abatere sistematică, ea este asimptotic fără abatere sistematică odată cu creșterea lui N pentru k fixat. Varianța este:
(3.10)
Această estimare este, de asemenea, consistentă odată cu creșterea lui N, presupunându-l pe k fixat.
Estimarea funcției de autocorelație se face în mai multe etape. Prima este inițializarea secvenței de date. Aceasta este de obicei de lungime finită și poate fi gândită ca fiind observată printr-o fereastră, una dintre ferestrele tipice fiind cea dreptunghiulară. Acest proces setează datele din afara ferestrei la zero. Astfel, cu cât calculăm estimatul funcției de autocorelație în cazul unui k mai mare, cu atât avem din ce în ce mai puține date ce contribuie la estimare și din ce în ce mai multe zerouri.
3.3 Estimarea spectrului de putere
3.3.1 Estimarea clasică
Cunoașterea distribuției puterii unui proces aleator în domeniul frecvență este util la proiectarea filtrelor folosite în eliminarea zgomotului, la anularea ecourilor din semnale sau la reprezentarea caracteristicilor unui semnal în vederea recunoașterii șablonului acestuia. Dacă înregistrările de date sunt lungi, estimările spectrale de putere corespunzătoare pot fi obținute folosind tehnicile standard ale transformatei Fourier rapide (FFT). Totuși, dacă înregistrările sunt scurte, așa cum sunt ele de obicei, sarcina de a obține estimări spectrale de putere având abaterea sistematică și varianța minime, devine dificilă.
Estimatorii spectrali sunt de obicei clasificați în estimatori parametrici și neparametrici. În cazul celor neparametrici, de obicei, nu se fac presupuneri cu privire la statisticile datelor decât dacă acestea sunt staționare în sens larg sau, probabil, ergodice. Estimatorii spectrali parametrici folosesc de obicei modele ale datelor. În acest caz, datele pot fi modelate ca procese de medie alunecătoare sau ca procese autoregresive (cu predicție liniară).
Spectrul de putere este de obicei definit folosind speranța matematică. În majoritatea situațiilor practice nu se dispune de cunoștințe suficiente despre înregistrările de date, deci este nevoie de estimări ale funcției de autocorelație.
Cel mai vechi și cel mai folosit estimator spectral este periodograma, care este unul dintre estimatorii spectrali clasici.
Periodograma se definește astfel:
(3.11)
unde X(n) este un proces aleator.
Presupunem că aplicăm o fereastră unei secvențe de date în felul următor:
unde w(n) este fereastra, aceasta fiind zero pentru n < 0 și n N.
Estimarea spectrală este:
Periodograma prezintă câteva dezavantaje. Primul dintre ele este acela că estimatorul prezintă abatere sistematică, care descrește odatǎ cu cresterea lungimii ferestrei prin care este observatǎ secvența de date.
În urma aplicării de ferestre înregistrării, se vor reduce lobii parțiali aferenți periodogramei, lățimea de bandă a lobului principal crește, prin aceasta reducându-se rezoluția spectrală a estimării.
Alt estimator spectral clasic este estimatorul Blackman-Tukey.
Estimatorul spectral Blackman-Tukey se definește astfel:
(3.12)
unde N-1 M și w(k) este o fereastră aplicată estimării de autocorelație, care este zero pentru |k| > M. Valoarea lui M este de obicei limitată, așa că N/10 M. Fereastra este de obicei normalizată, astfel încât w(0) = 1 și 1 w(k) 0 pentru k 0. De obicei se folosește estimarea de autocorelație cu abatere sistematică. Estimarea spectrală Blackman-Tukey prezintă abatere sistematică, și pentru anumite condiții este asimptotic consistentă, deoarece varianța estimării scade când N crește.
3.3.2 Estimarea spectrală parametrică
Acest tip de estimare realizeazǎ estimǎri spectrale de calitate pentru înregistrǎri scurte de date.
Unul din estimatorii parametrici este cel al entropiei maxime. Ideea acestui estimator este aceea că în loc de a adăuga zerouri în vederea creșterii lungimii estimării funcției de autocorelație, aceasta va fi extrapolată (predictată) dincolo de limitele datelor. Principiul folosit în acest proces de extrapolare enunță că estimarea spectrală trebuie să fie majoritatea aleatoare, sau să aibă entropia maximă a oricărui spectru de putere compatibil
cu valorile eșantioanelor funcției de autocorelație calculate.
Obiectivul este de a nu adăuga informație ca rezultat al procesului de predicție, ci a face o îmbunătățire adăugând zerouri. Această estimare spectrală este echivalentă cu predicția liniară și cu autoregresia
Cea mai simplă cale de a introduce procedeul estimației spectrale parametrice este aceea în care se folosesc modele ale datelor. Putem genera un astfel de model excitând un filtru și apoi măsurându-i ieșirea. De exemplu, în figura 3.2 este prezentat un filtru cu poli și zerouri (un model autoregresiv și de medie alunecătoare ARMA), a cărui ieșire este dată de ecuația:
(3.13)
E(n)
+
+ +
Figura 3.2 Modelul unui filtru ARMA.
Intrarea filtrului E(n) este funcția de comandă, care este de obicei zgomot alb, în timp ce ieșirea X(n) este procesul aleator ce se dorește a fi modelat. Acest model este numit proces ARMA(p,q). Funcția de transfer pentru filtrul ARMA este:
(3.14)
unde B(z) reprezintă ramura mediei alunecătoare (MA) a filtrului, în timp ce A(z) reprezintă ramura autoregresivă (AR), numită și ramura predicției liniare (LP). Se observă existența a q zerouri în ramura MA a filtrului și a p poli în ramura AR.
Avem:
(3.15)
Spectrul de putere este următorul:
(3.16)
Dacă toți ai = 0, excepție făcând a0 = 1, vom avea un model MA de ordin q, adică:
(3.17)
Dacă toți bi = 0, excepție făcând b0 = 1,
(3.18)
care este un proces AR(p), numit și proces LP(p) (figura 3.3, LP = predicție liniară), cu spectrul de putere:
(3.19)
Procesul de estimare necesită o etapă de estimare a coeficienților ai și bi corespunzători unei înregistrări de date.
+ +
Figura 3.3 Modelul unui filtru AR(p).
3.3.3 Metoda celor mai mici pătrate
Metoda celor mai mici pătrate este folosită pentru estimarea parametrilor autoregresiei (AR). Ne vom concentra numai asupra estimării AR.
Dorim să proiectăm un filtru care să estimeze datele la momentul n folosind un eșantion anterior de la momentul n – 1:
(3.20)
unde și sunt secvențe discrete reale și este un parametru care trebuie estimat. Termenul este o estimare a valorii adevărate x(n). În consecință, avem o eroare, definită astfel:
(3.21)
Acest model predictează valoarea adevărată a datelor la momentul n folosind o valoare ponderată a datelor la momentul n – 1. Acest model este numit predicție liniară (LP) sau autoregresie (AR). Metoda celor mai mici pătrate spune că poate fi ales astfel încât să se poată minimiza suma erorilor într-un interval de la la (sau de la 1 la N), adică:
(3.22)
Acest procedeu minimizează eroarea pătratică medie, dând valoarea adevărată (și nu o estimare) a parametrului,deoarece nu se folosesc statistici, ci este un model al datelor.
Metoda celor mai mici pătrate determină coeficienții astfel încât suma erorilor dintr-un interval să fie minimizată. Intervalul în care observăm datele este cel determinat de către cele două metode folosite pentru rezolvare în vederea aflării coeficienților .
Pentru metoda autocorelației se presupune că se aplică o fereastră datelor astfel încât acestea să fie zero în afara ferestrei. În acest caz, eroarea pare a fi mare la ambele capete ale intervalului de estimare, fiindcă noi încercăm să predictăm datele adevărate folosind zerouri, din cauza aplicării ferestrei. Din acest motiv fereastra se reduce treptat la ambele capete. Aceasta determină o creștere treptată a datelor la începutul înregistrării și similar o scădere treptată la sfârșitul acesteia, reducând astfel eroarea pentru aceste segmente. Eroarea pătratică totală (eroarea de predicție totală sau puterea de predicție totală) în acest interval este:
(3.23)
unde x(n) reprezintă datele rezultate în urma aplicării ferestrei.
Minimizând, rezultǎ:
, i = 1, 2, …, p (3.24)
Când aceste ecuații sunt derivate folosind speranța matematică, ele sunt cunoscute drept ecuații normale:
, i = 1, 2, …, p (3.25)
unde:
(3.26)
Termenul nu interesează. Acesta este doar un factor de scară și nu afectează soluția
ecuațiilor. Sistemul (3.25) este un sistem de p ecuații cu p necunoscute rezolvabil cu ajutorul algoritmului Levinson.
Metoda autocorelației generează un filtru stabil LP, cu polii expresiei situați în cercul unitate din planul Z. Deoarece folosim date reale, coeficienții sunt reali, rezultând că polii expresiei apar în perechi complex conjugate. Astfel, de exemplu, dacă p este par, vom avea un număr par de coeficienți și un număr par de poli, jumătate din acești poli situându-se în jumătatea superioară a cercului unitate din planul Z și jumătate în cea inferioară. Desigur, una sau mai multe perechi de poli s-ar putea situa pe axa reală din planul Z. Dacă p este impar, cel puțin o rădăcină se va situa pe axa reală.
Metoda covarianței pentru rezolvarea coeficienților este similară metodei autocorelației. Diferența majoră este aceea că metoda covarianței nu presupune aplicarea de ferestre datelor și, în timp ce N eșantioane de date sunt inițial disponibile, erorii i se aplică ferestre astfel încât să fie disponibile N – p eșantioane ale erorii. Aceasta afectează calculul valorilor de “autocorelație”, deoarece acum avem:
(3.27)
Ecuațiile normale au aceeași formă, și anume:
, i = 1, 2, …, p (3.28)
Metoda covarianței poate genera estimări ale coeficienților , așa că filtrul LP, , nu are toți polii în interiorul cercului unitate, deci filtrul poate fi instabil.
3.3.4 Estimarea spectrală de putere folosind predicția liniară
Predicția liniară este un model al datelor. În consecință, aceasta este folosită frecvent în estimarea spectrului de date modelate folosind tehnici de predicție liniară.
Estimarea spectrală de putere LP se definește ca fiind inversa pătratului valorii absolute a transformatei coeficienților LP:
, pentru (3.29)
unde coeficienții sunt estimările obținute cu ajutorul metodei celor mai mici pătrate descrisă anterior. Numărul coeficienților, p, este același cu numărul polilor expresiei . Deoarece A(z) este un polinom în z, rădăcinile acestuia sunt zerourile lui A(z), care în schimb sunt polii lui .
O problemă care se impune în cazul metodei LP este estimarea numărului coeficienților p folosiți în model utilizând, criteriul informației Akaike (AIC), care se definește astfel:
(3.30)
unde p este ordinul modelului, N este numărul punctelor datelor disponibile și este eroarea pătratică totală pentru modelul de ordin p. Valoarea lui AIC poate fi reprezentată grafic în funcție de p în vederea determinării celui mai bun ordin al modelului.
Altă problemă cu metoda LP este aceea că nu dă estimări bune pentru sinusoide. Totuși, există la dispoziție și alte metode, cum ar fi cele ale subspațiilor, care folosesc tehnici de descompunere în vectori proprii.
Estimarea spectrală ce folosește coeficienții LP determinați prin metoda covarianței este de obicei mai bună (abaterea sistematică și varianța sunt mai mici) decât estimarea spectrală ce folosește coeficienții determinați cu metoda autocorelației, metoda covarianței neimplicând folosirea ferestrelor de date.
Metoda MA modelează datele cu q zerouri. Deci, metoda estimării spectrale de putere se folosește în estimarea maximelor largi sau a minimelor înguste din spectru, în timp ce polii sunt folosiți în estimarea vârfurilor ascuțite. În vederea estimării coeficienților modelului MA se utilizează adesea algoritmul lui Durbin.
Ideea acestui algoritm este de a fixa mai întâi un ordin mare, fie acesta L, modelului AR al datelor, unde q << L << N. Apoi parametrii AR vor servi în chip de secvență de date pentru a estima parametrii MA. Astfel, algoritmul calculează matricea de autocorelație folosind parametrii AR pe post de date și apoi rezolvă ecuațiile normale pentru parametrii MA, aceștia fiind necunoscutele. Ideea acestui algoritm vine din faptul că un model MA este echivalent cu unul AR de ordin infinit. Deci, , sau . Folosind transformări inverse, obținem o ecuație din care rezultă coeficienții AR și cei MA, aceștia putând fi aranjați într-o formă precum ecuațiile AR (sau LP).
Modelul ARMA este folosit în estimări spectrale unde avem atât poli, cât și zerouri, aici fiind nevoie de o tehnică pentru a estima atât vârfurile, cât și minimele din spectru. Estimarea parametrilor ARMA se face mult mai dificil și implică ecuații neliniare. Nu există metode pentru obținerea unor soluții optimale, deci se folosesc metode suboptimale. Mai întâi se estimează modelul AR(p) folosind datele. Acestea sunt filtrate de către A(z) pentru a produce un model aproximativ MA. Aceste date sunt apoi folosite în estimarea parametrilor MA(q).
Capitolul 4 Analiza cepstralǎ
4.1 Introducere
Analiza cepstralǎ executǎ deconvoluția semnalului vorbirii prin folosirea unor tehnicii diferite de cele încorporate în canalul vocoderului. În loc sǎ întelegem în ce mod analiza cepstralǎ executǎ deconvoluția mai întâi trebuie sǎ pǎtrundem într-o teorie mai puțin relevantǎ.
4.2 Istoric
Bogert se poate sǎ fi fost primul care a folosit procesarea cepstralǎ; în acest caz a fost folosit pentru analiza seismicǎ. În timp ce Bogert își executa cercetǎrile Allan Oppenheim în acel timp absolvent al MIT lucra la o teorie complet matematicǎ care a numit-o procesare izomorfǎ. La începutul anilor 60 Bogert și Oppenheim au fǎcut schimb de opinii asupra subiectului. Oppenheim a devenit convins cǎ și conceptual lui poate fi aplicat cu succes la construirea vocoderului. Timp de doi ani Oppenheim a fǎcut experimente la laboratoarele MIT Lincoln (la sfârșitul anilor 60) și a dezvoltat un sistem complet despre sinteza analizei, bazat pe ceea ce el a numit procesarea izomorfǎ. Mai departe aceastǎ muncǎ importantǎ a fost continuatǎ de Oppenheim, Schafer și Stockham.
4.3 Cepstrul real
Este comod sǎ presupunem cǎ semnalul constǎ dintr-o secvențǎ de timp discret, așa cǎ spectrul constǎ dintr-o transformatǎ Z calculatǎ pe cercul unitar. Sǎ consideram un exemplu, unde X se referǎ la un spectru de semnal de vorbire observat, E la componenta excitatǎ și V la tractul vocal modelat de spectrul excitat. Noi începem cu un model multiplicator a doua spectre. Astfel, amplitudinea spectralǎ de semnal vorbit poate fi scris ca:
(4.1)
Logaritmând ecuația (4.1) rezultǎ:
(4.2)
Mai ales pentru un sunet, se poate observa cǎ termenul E corespunde unui eveniment care este extins în timp și produce un spectru care trebuie caracterizat în comparație cu variația rapidǎ a funcției ω; în comparație, din cauza unui rǎspuns al impulsului relativ scurt al tractului vocal, termenul V variazǎ mult mai încet cu ω. Utilizând aceste cunoștințe, partea stângǎ al ecuatiei (4.2) poate fi separatǎ în douǎ componente în partea dreaptǎ printr-un fel de filtru care separǎ componentele spectrale logaritmice care variazǎ rapid cu ω de cele care variazǎ încet cu ω. O astfel de operație va efectua deconvoluția.
Ecuația (4.2) a transformat formula multiplicativǎ (4.1) într-o operație liniarǎ și așa poate fi dependentǎ de operațiile liniare ca și filtrarea. Dat fiind cǎ variabila este frecvența mai degrabǎ decât timpul, notațiile trebuiesc schimbate. De exemplu, mai degrabǎ decât filtratrare (pentru timp), avem ridicare (pentru frecvențǎ); și DFT (transformata Fourier a log|X(ω)|) este numit cepstru. Cepstrul este calculat luând inversa transformatei Z a ecuatiei (4.2) pe cercul unitar:
(4.3)
unde c(n) este numit coeficientul n al cepstrului. Semnalul modulator spectral, care variazǎ încet în raport cu frecvența, acceptând multe valori coeficienților spectrali de la cele mai joase valori ale lui n, dar se stinge pentru valori mai mari ale lui n. Structura finǎ a spectrului variazǎ mai rapid cu ω și acceptǎ valori mici coeficientilor cepstrali pentru valori mici ale lui n. Contribuția de excitație și filtrul tractului vocal pot fi separate în domeniul cepstral. Ambele componente pot fi inversate pentru a genera amplitudinea spectralǎ originalǎ.
Etapele deconvoluționale ale cepstrului pentru vorbire pot fi vǎzute în figura 4.1, în care se observǎ operațiilor de analizǎ, de la unda vorbirii (a) la cepstrul (d) dat de ecuația (4.3).
Excitații
(a) (b) (c) (d) functie
spec-
trala
Figura 4.1 Analizǎ cepstralǎ.
4.4 Cepstrul complex
Toate ecuațiile au folosit funcții reale. De asemenea este posibil sǎ se defineascǎ un cepstru complex care dǎ o pǎtrundere folositoare în proprietǎțile sistemului actual.
Sǎ începem cu secvența x(n) care poate sǎ fie de o duratǎ finitǎ sau infinitǎ. Presupunem cǎ aceastǎ secvențǎ este un rǎspuns impuls a unui sistem liniar manierat care poate fi descries în terminii unei fracție raționale a transformatei Z.
(4.4)
Fiind dațiși mai mici decât unu, ecuația (4.4) reprezintǎ o rețea digitalǎ cu poli în interiorul cercului unitar (pentru a asigura stabilitate) și zerouri în interiorul cercului unitar (primul produs din numǎrǎtor) și zerouri în afara cercului unitar (al doilea produs din numǎrǎtor). A este doar un factor multiplicator.
Logaritmând ecuația (4.4) rezultǎ:
logX(z)=logA+ (4.5)
și cepstrumul complex (n) al ecuației (4.5) se determinǎ din:
(n)= (4.6)
La acest punct, am determinat fǎrǎ a demonstra cǎ cepstrul complex poate fi:
(4.7)
Aceaste ecuații conduc la câteva relații interesamte între poziția pol-zero și valoarea cepstrului complex. De exemplu:
Dacǎ =0 pentru n 0, acesta trebuie sǎ corespundǎ unui filtru “all-zero” (FIR) cu toate zerourile în afara cercului unitar.
Dacǎ =0 pentru n<0, acesta trebuie sǎ corespundǎ unui filtru cu toți polii și zerourile în interiorul cercului unitar. Acesta definește un filtru de fazǎ minimǎ.
Un exemplu de aplicație practicǎ cu astfel de rezultate este desfǎșurarea unui banc de filtre bazat pe mǎsurarea fiziologicǎ prin reglajul curbelor neuronilor auditorii a pisicii. Delgutte a mǎsurat și a documentat rezultatele acestor mǎsuratori. Doar amplitudinea reglajului curbelor neurale ale pisicii au fost direct mǎsurate (nu faza). În aceastǎ aplicație (ca și în multe altele) ar fi de dorit sǎ se estimeze funcția de transfer completǎ, incluzând faza.
Existǎ câteva dovezi fiziologice, cǎ vibrația membranei poate fi reprezentatǎ ca valoarea minimǎ a fazei filtrului. Aplicând ecuația (4.7) face posibil sǎ evaluǎm faza sub aceastǎ apreciere, folosind urmatoarele proceduri.
Mǎsurând reglarea curbelor auditive a nervului peste o varietate de neuroni cu CFs diferit.
Aceste curbe de reglare pot fi inversate pentru a produce amplitudinea funcțiilor auditive a filtrelor “trece-bandǎ”. Acum avem o aproximare la funcția X(z) de la ecuația (4.4)
Folosind o versiune timp – discret a ecuației (4.6), calculǎm cepstrul complex. În loc sǎ evaluǎm integrala, o versiune “DFT – bazǎ” dǎ rezultate bune.
Fixând (n) la zero pentru n<0. Aceasta inseamnǎ cǎ forma scurtǎ a lui (n), pe care îl vom denumi (n), trebuie sǎ corespundǎ la un spectru logaritmic care este valoarea minimǎ a fazei.
Pasul final este inversarea lui (n).
Pasul 3 poate fi implemantat cu un DFT, folosind formula:
(4.8)
unde W este o stenogramǎ pentru și unde indicele p este o notație care sǎ indice cǎ toate procesele sunt realizate în timp discret.
Pasul 5 poate fi deasemenea implementat cu un DFT ca:
(4.9)
Valorile cepstrului complex (k), pot fi obținute simplu exponențând partea stângǎ a ecuației (4.9). În acest fel, fiecare curbǎ de reglare neuralǎ poate fi bine aproximatǎ de valoarea minimǎ a fazei filtrului în care amplitudinea și faza fiecǎrui filtru este specificatǎ.
Trebuie amintit cǎ aceste tehnici, în exact aceeași manierǎ, pot fi aplicate pentru a obține filtre corespunzând reglajului curbelor psihoacustice. Știind cǎ toți polii filtrului gama – ton (APGF) din sunt într-adevar o valoare ninimǎ a fazei filtrului. Un exercițiu interesant ar fi sǎ încerci sǎ afli un APGF care aproximeazǎ in amplitudinea și faza rǎspunsul funcției filtrului obținut prin metoda descrisǎ mai sus.
Cepstrul complex trebuie sǎ se distingǎ de cepstrul traditional, care este legat complet de funcții reale. Figura 4.2 aratǎ diferențele de bazǎ dintre cepstrul complex și cepstru.
(a)
(b)
Figura 4.2 Implementarea practicǎ a sistemelor pentru a obține (a) cepstrul complex și (b) cepstrul.
4.5 Concluzii
Când este necesar revenirea la un timp a formei de undǎ fǎrǎ a aprecia valoarea minimǎ a fazei, este necesar sǎ folosești cepstrul complex. Oricum, în multe aplicații practice, prelucrarea fazei nu este o operație utilǎ și în orice caz adaugǎ complexitate. În aceste cazuri, procesarea cepstralǎ poate fi implementatǎ având în întregime de a face cu funcții reale; la fel ca în figura 4.1, unde separarea excitației și filtru pot fi vǎzute având loc la nivelul cepstral. Aceastǎ separație a fost arǎtatǎ ca fiind folositoare în multe aplicații, incluzând:
Nivelul estimǎrii pentru vocoder.
Estimarea semnalului spectral pentru vocoder.
Calculul cepstral pentru alte feluri de estimații spectrale. Aceste reprezentǎri sunt
folosite pentru o serie de aplicații inclusive pentru recunoașterea vorbirii.
Un numǎr moderat de coeficienții cepstrali sunt folosiți pentru a reprezenta estimarea spectralǎ “termen – scurt”. Alegerea pentru un numǎr mic de coeficienți prevede o altǎ estimare spectralǎ netedǎ dincolo de ce ar fi necesar doar pentru separația excitației. Aceasta este adesea folositoare pentru recunoașterea modelului, în care noi dorim sǎ atenuǎm diferențele spectrale minore dintre exemplele aceluiași sunet.
Capitolul 5 Bancuri de filtre
5.1 Introducere
Una din mǎsurǎtorile cheie folosite în procesul vorbirii este spectrul pe termen scurt. În toate din numeroasele sale forme aceastǎ mǎsurǎ constǎ într-un spectru local, tipic mǎsurat pe o regiune relativ scurtǎ de vorbire. Acest mod de mǎsurare, s-a arǎtat a fi folositor pentru un șir de aplicații ale vorbirii, incluzând codarea și recunoașterea vorbirii. În ficare caz, noțiunea de bazǎ este aceea de a captura variația de timp spectral modulat pentru vorbire și în fiecare caz este dezirabil sǎ se reducǎ efectele de întârziere a semnalului în aceastǎ evaluare. În orice caz înǎlțimea sunetului este folositǎ separat sau este în general transmisǎ ca irelevantǎ la demodulatorul de frecvențǎ.
În aplicațiile vorbirii, algoritmul spectral pe termen scurt este de obicei proiectat sǎ evalueze un semnal modulat spectral care are o influențǎ redusǎ de la oscilațiile înalțimii sunetului în vorbirea sonorǎ.
Dacǎ definim un filtru ca pe un dispozitiv care face deosebirea între frecvențe, atunci filtrele pot fi implementate de exemplu de elemente mecanice, acustice, pneomatice sau electrice. În ultimele decenii elementele de calcul ale algoritmilor de timp discret au avut un rol important în aplicațiile filtrului. Aceste elemente au încorporat și valori numerice discrete pentru reprezentarea semnalelor. Pentru simplificare numim aceste dispozitive filter digitale. De un interes particular este aplicația transformatei Fourier discrete (DFT) la teoria filtrului și aplicațiilor. Filtrarea și DFT sunt în mare parte folosite pentru aplicațiile în procesarea vorbirii.
Proiectarea filtrului analog traditional constǎ în douǎ probleme majore: problema aproxmǎrii și problema sintezei. Aproximarea se referǎ la dezvoltarea în expresii analitice care sǎ satisfacǎ conținutul problemei proiectate. Sinteza se referǎ la implementarea filtrului, în cascadǎ sau în secțiune de ordin secundar. Circuitele analogice au componente cu valori numerice care sunt deseori prea dificile sau costisitoare pentru a fi specificate cu mare acuratețe. Trucul folosit în proiectarea analiticǎ este de a creea structuri care sunt mai puțin sensibile la erorile componente.
Proiectarea filtrului digital cere de asemeni și aproximare și sintezǎ, dar situația este într-o oarecare mǎsurǎ rezervatǎ; problema aproximǎrii, cum sǎ gǎsești parametrii filtrului sǎ satisfacǎ un criteriu dat. O tehnicǎ bunǎ de proiectare în lumea analogicǎ este foarte importantǎ deoarece proiectantul știe cǎ componentele sale nu sunt niciodatǎ perfecte aștfel cǎ, cǎutarea unei metode de sintetizare care este mai puțin vulnerabilǎ la astfel de imperfecțiuni e o parte integralǎ proiectǎrii. În primele zile ale proiectǎrii filtrului digital problema acurateții poate fi criticǎ datoritǎ unor posibile efecte negative a lungimi finite a cuvântului. În zilele noastre datoritǎ posibilitǎți de a avea lungimea cuvintelor de 32 biti și capacitatea de a avea un cost redus înseamnǎ cǎ proiectantul filtrelor digitale poate alege componente de o acuratețe înaltǎ. O funcție de filtru are relevanțǎ și în domeniul filtrului și în domeniul frecvenței; o specificare completǎ în domeniul frecvenței completeazǎ un comportament specific în domeniul timpului și viceversa. Transformata Fourier a funcției de frecvențǎ este cu precizie rǎspunsul în timp a filtrului la un impuls aplicat la timpul 0.
Sinteza filtrelor digitale poate fi divizatǎ în douǎ metode: metoda FIR (rǎspuns la impuls finit) și metoda IIR (rǎspuns la impuls infinit). Un filtru non recursiv are o ieșire care este o funcție a unui model de intrare și nu este o funcție a unui model de ieșire precedent. Asfel de filtre conțin numai zerouri în planul complex z și sunt întotdeauna filtre FIR. Un filtru recursiv are o ieșire care este o funcție a unui model de intrare și a modelului de ieșire precedent. Un astfel de filtru are în general și poli și zerouri în planul complex z și conține un rǎspuns în impuls care nu tinde la 0 dupǎ fiecare numǎr finit de probe.
5.2 Modele de filtre
5.2.1 Filtre cu răspuns finit la impuls
Un filtru cu răspuns finit la impuls (FIR) produce o ieșire y(n) care este suma ponderată a intrărilor anterioare plus cea curentă.
(5.1)
În figura 5.1 este prezentat un filtru FIR (z-1 semnifică o întârziere).
Figura 5.1 Modelul filtrului FIR.
Considerăm o sinusoidă la intrarea filtrului, . Rezultă ieșirea:
(5.2)
Folosind identitatea avem:
(5.3)
Termenii din paranteze sunt independenți de timp și deci ieșirea va fi o sinusoidă cu amplitudinea:
(5.4)
și faza:
(5.5)
Această transformare se numește transformata Fourier și are o inversă simplă. Invers, coeficienții filtrului pot fi obținuți din răspunsul dorit al filtrului, folosind aceeași tehnică.
Drept exemplu, considerăm un filtru “trece-jos”, unde răspunsul dorit H(s) este:
(5.6)
Avem:
(5.7)
Dar aceasta înseamnă că avem nevoie de un număr infinit de coeficienți ai filtrului! Filtrele de tip „brick wall” („zid de cărămizi”) sunt imposibile, iar cele netede sunt greu de proiectat. Câteva soluții ar fi: trunchierea: simplă și efectivă dacă secvențele de date sunt scurte; aplicarea de ferestre – fereastra Hamming, de pildă, minimizează puterea în lobii parțiali; folosirea unei metode mai complexe de proiectare a filtrelor, de exemplu algoritmul Parks-McClelland Remez, care proiectează filtre FIR optimale de fază zero cu răspunsuri în frecvență arbitrare.
5.2.2 Filtre cu răspuns infinit la impuls
Un filtru cu răspuns infinit la impuls (IIR) produce o ieșire y(n) care este suma ponderată a intrărilor anterioare plus cea curentă, x(n), la care se adaugă și ieșirile anterioare.
Modelul predictiv liniar este un caz special al filtrului IIR și este prezentat în figura 5.2.
Figura 5.2 Modelul predictiv liniar.
Filtrul general IIR este dat de:
(5.8)
Figura 5.3 Modelul filtrului IIR.
Dacă p = 0, sistemul este un filtru cu răspuns finit la impuls (FIR). Dacă p ≠ 0, sistemul este un filtru cu răspuns infinit la impuls (IIR).
Un exemplu de rezonator cu doi poli, cu frecvența centrală ω și lățimea de bandă r este:
(5.9)
Filtrele FIR sunt costisitoare în ceea ce privește implementarea lor, dar nu introduc distorsiuni ale fazei, fiind deci utilizate cu precădere în procesarea de înaltă calitate a vorbirii. Filtrele IIR sunt adesea mult mai eficiente, dar nu pot fi proiectate în așa manieră încât să aibă fază exact liniară.
5.3 Funcții utile ale filtrului
În mod general filtrele pot fi concepute sǎ formeze spectru. De exemplu filtrele pot fi proiectate sǎ producǎ o ieșire ce aproximeazǎ derivatele intrǎrii (în spațiul frecvenței). Alt concept creeazǎ trnsformarea Hilbert a intrǎrii. Totuși alte proiecte nu afecteazǎ amplitudinea în creștere a frecvențelor, dar modificǎ faza, poate pentru a compensa rǎspunsurile în fazǎ nedorite din altǎ parte a intregului sistem.
Existǎ numeraoase tehnici de proiectare a filtrelor cu proprietǎți “trece-bandǎ” arbitrare. O metodǎ puternicǎ ce angajeazǎ programarea liniarǎ și algoritmul de schimbare Remez este o metodǎ computerizatǎ ce duce la un proiect optim în sensul în care și filtrele “trece-bandǎ” și filtrele “stop-bandǎ” sunt echilibrate și tranziția de la “terec-bandǎ” la “stop-bandǎ” este mai rapidǎ. Am vǎzut cǎ filtrele eliptice au aceastǎ proprietate optimǎ, dar metoda Remez este bazatǎ pe o proiectare FIR purǎ astfel încât faza liniarǎ ca și amplitudinea pot coexista.
Filtrele în frecvența de probǎ permit un transfer arbitrar de funcții în amplitudine sǎ fie realizat cu o tehnicǎ recursivǎ care dunce la proiectul FIR. Conceptul se bazeazǎ pe frecvența în domeniu, versiunii a teoremei de probǎ a lui Shannon pentru semnale domeniu-timp. Dacǎ considerǎm funcția continuǎ f(t) și probǎm acestǎ funcție la intervale de timp egale pentru a obține probele f(nT), teorema indicǎ cǎ funcția g(t) poate aproxima f(t) dupǎ cum urmeazǎ:
. (5.10)
Dacǎ spectrul semnalului f(t) este limitat de bandǎ, g(t) este identic cu f(t) arǎtând astfel cǎ intervalul de probǎ nu este mai mare decât dublul inversei lǎțimi de bandǎ. Chiar dacǎ banda lui f(t) nu este limitatǎ, g(t) este egal cu f(t) modelarea curentǎ.
x(t) _ A(ω)
+
Figura 5.4 Eșantionarea circuitului în domeniul frecvențǎ.
Figura 5.4 aratǎ cum sǎ se implementeze un filtru “trece-bandǎ” analog cu un rǎspuns care este analogul ecuației (5.10).
Funcția de transfer pentru figura 5.4 este:
. (5.11)
5.4 Transformǎri pentru proiectarea filtrului digital
Funcțiile de filtrare pot fi sintetizate ca filtre de timp discret cu ajutorul unui criteriu de aproximare, deoarece o implementare de timp discret nu poate fi identificatǎ cu funcțiile filtrului de timp continu. Munca lui Hurewicz introduce o tehnicǎ pentru a face acest lucru într-o variantǎ de impuls invariant. Prin acest lucru înțelegem cǎ rǎspunsul la un puls unitar a filtrului digital derivat vor fi probe ale impulsului în rǎspuns al filtrului analog asociat. Sǎ începem cu o funcție analogicǎ simplǎ de pol singular. Impulsul în rǎspuns al acestui sistem simplu este invers transformǎrii Laplace a acestei funcții:
(5.12)
Dacǎ alegem k(t) la intervale nT de spațiu egal și luǎm transformata z la secvența rezultatǎ obținem:
(5.13)
H(z)- este impulsul invariant al transformǎrii z corespunzǎtor sistemului simplu de pol singular a ecuației (5.12). Pentru sisteme mai complexe în care polii plani s sunt poli singulari și în care rǎspunsul în impuls este o funcție realǎ, acesta duce la corespondența:
(5.14)
unde L(s) este funcția ecuației . Am specificat un filtru digital Lerner în termenii componenților unui filtru analog Lerner.
Proiecatrea filtrelor FIR
5.5.1 Introducere
Comparativ cu filtrele IIR, filtrele FIR au avantaje și dezavantaje. Dezavantajul major este acela cǎ rezultatul funcției de transfer este un polinom în z și mai degrabǎ decât un coeficient de polinoame și astfel având zerouri oriunde în afarǎ de polii de la origine. Fǎrǎ poli de la origine este nevoie de mai multe ponderi pentru a asigura o tranziție cu o pantǎ datǎ pentru “trece-bandǎ” și “stop-bandǎ”.
Un avantaj major a filtrului FIR se gǎsește într-o proprietate numitǎ “faza liniarǎ”. Am arǎtat cǎ atunci când un semnal x este întârziat cu n pași în timp, nωT radiani sunt adǎugați la faza lui x, astfel înseamnǎ adunarea la unghiul transformǎrii lui x. Acest lucru înseamnǎ cǎ dacǎ x este exprimat ca o serie Fourier, fiecare component a lui x este reglat în fazǎ pentru a produce o întârziere cu exact n pași în timp. Atunci dacǎ funcția de transfer a unui filtru liniar digital este dat de relația :
(5.15)
rezultǎ cǎ efectul filtrului va fi acela de a schimba fiecare componentǎ a semnalului de intrare cu n pași în timp, în timp ce își modificǎ amplitudinea. Având doar zerouri filtrele FIR nu sunt instabile atâta timp cât ponderile sunt finite. Și proprietatea de rǎspuns la impuls finit este de asemenate considerat un avantaj deoarece întodeauna putem specifica exact timpul de pornire, aceasta este durata rǎspunsului filtrelor la un semnal trecǎtor.
Filtrul ideal “trece-jos”
Pentru derivarea ponderilor filtrului ca fiind transformata inverasǎ a funcției de transfer a filtrului vom începe cu o funcție de transfer idealǎ în douǎ direcții: prima direcție, atunci când amplificarea este cu exactitate 1 la frecvențele Hz și cu exact 0 pentru Hz; iar a doua direcție este atunci când funcția de transfer este realǎ implicând schimbul fazei zero. Unitațile de frecvențǎ sunt Hz. Amplificarea filtrului, care este realǎ este exprimatǎ ca o transformare Fourier continuǎ. Frecvența de tǎiere notatǎ cu =0.1 Hz este sub jumatatea ratei eșantion, adicǎ și atât timp cât acest lucru este adevǎrat teorema eșantion rezistǎ și dǎ o relație simplǎ între transformata Fourier și DFT-ul a probelor de impuls, care este:
(5.16)
Deoarece preferǎm mai degrabǎ decât , sǎ fie la frecvențǎ joasǎ , monstrele discrete de rǎspuns în impuls a acestui filtru ideal trebuie sǎ fie de T ori inversul transformarii Fourier a funcției de transfer.
(5.17)
5.5.3 Versiune realizabilǎ
Cea mai simplǎ cale de a construi un filtru FIR realizabil în afara vectorului de pondere infinit este de a trunchia vectorul la , astfel încât sǎ existe N=2L+1 ponderi în versiunea realizabilǎ. Putem observa cǎ faza vectorului trunchiat rǎmâne 0 atât timp cât ponderile rǎmân simetrice la 0, deoarece fiecare termen într-o sumǎ de vectori DFT este adǎugat la conjugata sa complexǎ, rezultând o funcție de transfer realǎ. Mai deparet dacǎ vectorul de pondere este schimbat în L pași astfel încât devine , rezultatul este un filtru digital cauzal cu schimbare liniarǎ de fazǎ.
Ponderile unui filtru FIR cauzal oarecare cu schimb liniar de fazǎ:
cu ; n=1,2…,L (5.18)
Numǎrul total de ponderi: N=2L+1
Folosind rǎspunsul în impuls al cauzalului realizabil “trece-jos”, filtrul de fazǎ liniarǎ poate fi dat de:
(5.19)
5.5.4 Îmbunǎtǎțirea filtrelor FIR “trece-jos” cu funcții fereastrǎ
Numele de funcție fereastrǎ vine din idea de a lua o funcție cu rǎspuns la impuls infinit cum ar fi și suprapunând un cadru rectangular prin care poți vedea doar valorile rǎspunsului la impuls de la indexul k=-L la L. O fereastrǎ rectangularǎ cu lungimea 2L+1 are efectul de a multiplica h(-L:L) cu 1 și restu de “h” cu 0. Existǎ și ferestre nerectangulare și acestea au efectul de a grada ponderile în interiorul cadrului ferestrei.
Scopul nostru este acela de a aplica ferestrele nerectangulare la funcția de rǎspuns la impuls ideal și de a obține o creștere caracteristicǎ omogenǎ cu mai punține ondulații.
Teoria necesarǎ pentru aceastǎ aplicație este: DFT-ul convoluției a unor funcții periodice în domeniul timpului este produsul a doi DFT individuali. Presupunem cǎ luǎm DFT-ul produsului ce aparține unui rǎspuns la impuls ideal trunchiat și orice funcție fereastrǎ, :
=
(5.20)
Pe linia a doua inverșii DFT sunt substituiți pentru funcții de timp. Pe a treia linie suma finalǎ este N când n=m-i și 0 în rest. DFT-ul unui produs timp-domeniu este convoluția unor DFT individuali luați impreunǎ. Dacǎ x și y sunt vectori ai lungimii N, rezultǎ cǎ convoluția în domeniile timpului și frecvenței este:
k=0,1…,N-1; v=0,1… (5.21)
; m=0,1…,N-1 (5.22)
Observând cǎ ambele convoluții implicǎ funcții periodice. În convoluția din ecuația (5.22) DFT este întotdeauna periodic.
Observǎm din ecuația (5.20) cǎ amplificarea filtrului FIR este convoluția DFT a unui inpuls la rǎspuns ideal trunchiat, h(0:N-1), cu DFT-ul vectorului fereastrǎ, w(0:N-1). DFT-ul unei ferestre rectangulare are lobi laterali pe înǎlțime, deci o ondulație în funcția de amplificare a filtrului.
În continuare vom vorbi despre principalele funcții fereastrǎ. Fereastra Hamming este funcția cosinus mǎritǎ și de obicei este funcția preferatǎ “doi-termeni” în proiectarea filtrului. Altǎ fereastrǎ, numitǎ fereastra Hanning este similarǎ cu fereastra Hamming, dar este 0 la punctele de capǎt. Fereastra Blackman este o versiune modulatǎ a ferestrei Hanning. Fereastra Blackman are un lob spectral principal larg și lobi inferiori laterali, rezultând înatr-o funcție FIR de amplificare a puterii fǎrǎ întreruperi cu trecere lungǎ între “trece-bandǎ” și “stop-bandǎ”.
Fereastra Kaiser necesitǎ discuții mai ample, dar acestea sunt bine meritate deoarece proprietǎțile sale conduc la o proiectare superioarǎ a filtrului FIR. Spre deosebire de celelalte ferestre, fereastra Kaiser conține un parametru (β) care a fost setat sǎ producǎ un lob spectral principal aproximativ la fel ca cel al ferestrei Blackman. Valoarea lui β este cuprinsǎ între 4 și 9. Valorile lui β dimensiunile lobului principal comparabile cu acelea ale ferestrelor Hamming și Blackman sunt:
Kaiser și Hamming dimensiunile lobului principal aproximativ egal.
Kaiser și Blackman dimensiunile lobului principal aproximativ egal.(5.23)
Tabelul 5.1
Formule de fereastrǎ – algebrice și în Matlab
Fereastra Formule pentru ponderi: k=0,1…,N-1 (algebric) sau
k=[0:N-1] (Matlab)
Hamming
Blackman
Kaiser
Fereastra Kaiser are lobii laterali inferiori rezultând mai puținǎ ondulație într-o funcție de amplificatie a filtrului FIR. Fereastra Kaiser cere de asemeni calcularea funcției Bassel modificatǎ de ordin zero detǎ de:
(5.24)
Din fericire aceastǎ sumǎ converge rapid de partea factorialului în numitor și este ușor aproximatǎ în moduri variate. Funcția Matlab besseli (0,x) poate fi folositǎ pentru calcularea relației (5.24). Dacǎ Matlab-ul nu este disponibil un algoritm simplu numit bessel_0 este inclus în software. Algoritmul este în limbaj Matlab, dar este ușor de trades. Folosirea lui bessel_0 este ilustrata în tabelul 5.1.
Existǎ un punct important despre folosirea ferestralor în maniera descrisǎ mai sus pentru proiectarea filtrelor FIR “trece-jos”: parte la trunchierea rǎspunsului la impulsul original ideal urmat de aplicația unei ferestre, ponderile din fereastrǎ pot necesita demultiplicare pentru a regla amplificarea “trece-jos” la 0 dB la v=0. Pentru filtrele “trece-jos”, din cauza amplitudini amplificǎrii la v=0 este doar suma ponderilor, reglajul dupǎ calcularea ponderilor este simplu:
(5.25)
Pentru filtrele “trece-sus”, “trece-bandǎ”, “stop-bandǎ” amplificarea poate fi reglatǎ la unu pentru v=0.5, și v=0. Aceste reglǎri sunt fǎcute în funcția fir_ponderi.
5.5.5 Filtre “trece-sus”, “trece-bandǎ” și “stop-bandǎ”
În secțiunea precedentǎ am vǎzut cum sǎ folosim o fereastrǎ la un rǎspuns la impuls ideal trunchiat pentru a obține un filtru FIR “trece-jos”. Acest concept se folosește cu precǎdere la rǎspunsuri la impuls ale altor filtre FIR ideale cu funcții de amplificare rectangulare și în particular la filtre FIR “trece-sus”, “trece-bandǎ” și “stop-bandǎ”. Tot ce ne trebuie pentru aceste filtre este funcția de rǎspuns la impuls sau vectori de ponderi a tipurilor de filtre ce ar putea fi folosite în locul vectorului “trece-jos”, h din ecuația (5.19).
v v v
-0.5 0 0.5 – 0 -0.5 -0 0.5
Figura 5.5 Amplificarea “trece-tot” minus amplificarea “terce-jos” egal amplificarea “trece-sus”.
Vectorii de pondere pentru alte tipuri de filtre pot fi derivați prin scǎderea vectorilor de pondere “trece-jos” în forma ecuației (5.19). De exemplu figura 5.5 ne aratǎ cum sǎ producem amplificarea unui filtru ideal “trece-sus”, luând diferența dintre amplificǎrile a douǎ filtre ideale “trece-jos”. Folosim notația pentru a reprezenta amplificarea unui filtru ideal “trece-jos” cu “trece-bandǎ” de la 0 la Hz. Filtru din stanga figurii 5.5 cu amplificarea este un filtru “trece-jos” cu “trece-bandǎ” extinzându-se pânǎ la jumatatea frecvenței de probǎ, acesta este un filtru “trece-tot”. Al doilea filtru este un filtru ideal “trece-jos” cu Hz. Diferența dintre aceste douǎ amplificǎri, care sunt amândouǎ în “trece-bandǎ” este amplificarea idealǎ “trece-sus”, , din dreapta.
Amplificǎrile ideale “trece-bandǎ” și “stop-bandǎ” sunt produse similar. Acestea sunt denumite și unde și sunt frecvențele marginii de bandǎ. Centralizǎm toate cele trei transformǎri dupǎ cum urmeazǎ: Centralizarea amplificǎrii filtrului FIR ideal “trece-jos” la:
“Trece-sus”:
“Trece-bandǎ”: (5.26)
“Stop-bandǎ”:
Deoarece DFT este o operațiune liniarǎ implicația ecuației (5.26) este aceea cǎ putem construe filtre FIR “trece-sus”, “trece-bandǎ” și “stop-bandǎ” folosind vectorii de pondere “trece-jos” dați de ecuația (5.19). Pentru început notǎm cǎ rǎspunsul la impuls al filtrului “trece-tot” este funcția de rǎspuns discret. Folosind în ecuația (5.19) și denumind vectorul de pondere “trece-tot” rezultǎ:
[zerouri (1,L), 1, zerouri (1,L)] (5.27)
Folosind notații similare adicǎ folosind pentru vectorul de pondere ce corespunde la și ecuația (5.26), vectorii de pondere “trece-jos”, “trece-bandǎ” și “stop-bandǎ” se pot formula dupǎ cum urmeazǎ: Centralizarea ponderilor filtrului FIR ideal “trece-jos” la:
“Trece-sus”:
“Trece-bandǎ”: (5.28)
“Stop-bandǎ”:
Astfel în ecuațiile (5.19), (5.27) și (5.28) avem formule pondere-vector pentru cele patru tipuri de bazǎ a filtrelor FIR digitale. O functie Matlab b= fir_weights (N, band, windo, v1,v2) în care N este numǎrul de ponderi, band desemneazǎ banda, windo desemneazǎ fereastra și [v1,v2] sunt frecvențele critice, este alcǎtuit astfel încât cititorul poate vedea ecuațiile în forma algoritmicǎ.
Oricare dintre ferestrele discutate în sectiunea precedentǎ poate fi aplicatǎ la vectorii de pondere în ecuația (5.28) ori înainte ori dupǎ ce sunt combinate, având același efect. Altǎ funcție, w=window (N, type, beta), genereazǎ câteva ferestre diferite nenormalizate și este folosit intern de fir-weights.
5.5.6 Alte tipuri de filtre FIR
În afarǎ de cele 4 tipuri de filtre FIR principale, alte tipuri de filtre FIR au fost folosite într-o varietate de aplicații speciale. Este ușor sǎ generalizǎm procedura care am folosito pentru a obține proiectarea unui filtru FIR cu o anumitǎ caracteristicǎ de amplificare specificatǎ. Începem simplu cu funcția continuǎ de amplificare specificǎ, gǎsirea rǎspunsului la impuls ideal, traducerea într-o versiune realizabilǎ și adǎugarea unei ferestre la versiunea realizatǎ. Cu alte cuvinte pentru a gǎsi ponderile unui filtu FIR trebuie:
Sǎ se specifice o amplificare continuǎ realǎ, H(jω), în intervalul astfel ca
Rǎspunsul la impuls ideal: ;
Versiunea cauzalǎ realizabilǎ: ; ;
Ponderile fultrului FIR: ;
(5.29)
Ca un exemplu a acestei proceduri vom proiecta un circuit de diferențiere FIR care este un filtru ce diferențiazǎ semnalul de intrare. Transformata Fourier a derivatei lui x(t) în raport cu t este jωX(jω), care poate fi demonstrat luând transformata inversǎ dupǎ cum urmeazǎ:
(5.30)
Prin urmare în pasul 1 specificǎm cǎ:
; (5.31)
In pasul al 2-lea determinǎm un rǎspuns la impuls ideal:
(5.32)
In pasul al 3-lea alegem o lungime de filtru, N=2L+1 și determinǎm rǎspunsul la impuls realizabil:
(5.33)
La final în pasul 4 aplicǎm o funcție fereastrǎ pentru a obține un vector de pondere care în notație Matlab este b=ω.*h. Circuitele de diferențiere, inerent amplificǎ frecvențe înalte. Dacǎ un semnal este știut sǎ nu aibǎ componente deasupra, circuitul de diferențiere poate fi proiectat sǎ aiba o scurtǎturǎ la și astfel sǎ elimine amplificarea zgomotului de frecvențǎ înaltǎ în ieșire. Acest lucru se va face simplu prin schimbarea limitelor de integrare din ecuația (5.32) de la la rezultatul care înlocuiește ecuația (5.33) este:
(5.34)
Un exemplu de filtru FIR cu utilizare specialǎ în procesarea semnalului este transformatorul Hilbert FIR, care este un filtru digital proiectat sǎ asigure un schimb de fazǎ de la toate frecvențele mai joase de jumatatea ratei de probǎ. Funcția sa idealǎ de transfer este de:
(5.35)
Transformatorul Hilbert este tipic folosit cu semnale complexe cu probe care au pǎrți reale și imaginare. De exemplu ieșirea unui detector radar este realizat din componenți reali și imaginari sau componenți reactivi pe canale separate, iar aceștia luați împreunǎ devin un semnal complex ce conține pǎrți reale și imaginare.
Operația unui transformator Hilbert pe semnale complexe aduce o interesantǎ proprietate spectralǎ a acestor semnale. Presupunem cǎ avem un vector de semnal complex s=x+jy. Deoarece DFT este o operațiune liniarǎ componenții sǎi DFT trebuie sǎ fie .
Dacǎ s este semnalul complex s=x+jy și dacǎ y este transformata Hilbert a lui x atunci spectru lui s este unilateral, acest lucru înseamnǎ:
(5.36)
Transformatorul Hilbert FIR este ușor de proiectat folosind ecuația (5.29). Rǎspunsul la impuls ideal în faza a 2-a a procedurii este:
(5.37)
5.6 Proiectarea filtrelor IIR
5.6.1 Introducere
Forma directǎ a algoritmului, funcția de transfer și amplificarea filtrului IIR este datǎ de:
Algoritm:
Funcția de transfer: (5.38)
Amplificarea filtrului:
Funcția de transfer IIR are atât poli cât și zerouri în planul z și polii trebuie sǎ se afle în interiorul cercului unitar pentru stabilitate. Dupǎ cum vom vedea mai departe restricția în vederea locației polilor rezultǎ în imposibilitatea unei faze liniare stabile a filtrului IIR operând în timp real. Pe de alta parte dupǎ cum am vǎzut în capitolul precedent prezența polilor în H(z), departe de origine poate rezulta într-o tranziție mai ascuțitǎ de la “trece-bandǎ” la “stop-bandǎ” a unui filtru IIR comparativ cu un filtru FIR cu același numǎr total de ponderi. Cu acest avantaj filtrele IIR sunt încǎ folosite în situații unde cel puțin o cantitate micǎ a distorsiunii de fazǎ este permisǎ. Primul lucru pe care ne propunem sǎ-l facem în acest capitol este acela de a dezvolta formule vector-pondere pentru proiectrele standard ale filtrelor IIR “trece-jos”, “trece-sus”, “trece-bandǎ” și “stop-bandǎ”. Ca și în capitolul anterior vom începe cu un proiect “trece-jos” ideal creând pentru acesta un filtru IIR “trece-jos” realizabil și în final transformând-ul pe acesta în alte trei tipuri de filtre.
5.6.2 Faza liniarǎ
Cheia de a intelege o fazǎ liniarǎ în DFT este aceea ca un schimb uniform în timp se transformǎ într-un unghi de fazǎ care este o funcție liniarǎ a frecvenței. Acest lucru conduce la concluzia cǎ dacǎ este funcția de amplificare a unui filtru de fazǎ liniarǎ trebuie sǎ ținem cond de condiția ce urmeazǎ:
(5.39)
unde este o funcție realǎ a lui ω și deci este egalǎ cu conjugata sa . În termenii transformatei z ecuația de mai sus devine:
(5.40)
Presupunem cǎ R(z) este un raport de polinoame în z, așa cum ar trebui sǎ fie pentru un filtru IIR. Apoi dacǎ R(z) are un pol la , condiția din ecuația (5.40) implicǎ cǎ R(z) trebuie sǎ aiba un pol la acesta fiind un pol la . Totuși R(z) și H(z) nu pot fi stabile din cauza cǎ, dacǎ este în interiorul cercului unitar, trebuie sǎ se afle în afara cercului unitar. Deci orice filtru IIR stabil având forma ecuației (5.38) nu poate avea o fazǎ liniarǎ caracteristicǎ.
Faza liniarǎ nu este posibilǎ în ecuația (5.38), existǎ însǎ douǎ puncte care trebuie notate. Primul, conceptual filtrului introdus în acest capitol are, dupǎ cum vom vedea caracteristici în fazǎ care sunt aproape liniare prin majoritatea “trece-bandǎ”. Faza “stop-bandǎ” de obicei nu are nici o legǎturǎ și de aceea cea mai apropiatǎ fazǎ liniarǎ în porțiunea “trece-bandǎ” rezultǎ în multe aplicații folositoare ale filtrelor digitale IIR. Al doilea punct este atunci când un filtru digital nu opereazǎ în timp real, existǎ o cale de a opera filtru fǎrǎ schimbare de fazǎ, acest lucru însemnând o cale de a modifica operațiunea filtrului astfel încât amplificarea rezultatǎ sǎ fie reala. Aceastǎ metodǎ implicǎ inversarea vectorilor de semnal de la intrare sau de la ieșire.
În capitolele anterioare am definit X(z) ca fiind transformata z a semnalului de vector x, acesta este transformata z a unei secvențe de probǎ începute la t=0 și sfârșind la t=(N-1)T. Presupunem cǎ vom creea un vector prin inversarea secvenței astfel cǎ începe la t=0 și se va termina la t=-(N-1)T. Desigur cǎ nu vom putea inverse x în timp real, dar dacǎ x ar fi înregistrați am putea inversa elementele vectorului semnal. Deci:
(5.41)
Pentru a transforma trebuie sǎ extindem definiția de transformare, sǎ introducem valori negative de indice:
(5.42)
Inversarea unui vector semnal este echivalent cu substituirea lui z pentru în transformata sa z. Un corolar evident la acest rezultat este cǎ acea inversare e propria inversǎ și se noteazǎ . Mai departe inversarea este distributivǎ ceea ce înseamnǎ cǎ: .
X(z) Y(z)
X(z) Y(z)
Figura 5.6 Filtrare fǎrǎ schimbarea fazei prin inversarea secvenței timp.
Considerǎm cele douǎ operații echivalente din figura 5.6. În fiecare dintre cazuri, marcajele inverse înseamnǎ cǎ ieșirea din casetǎ este vectorul de intrare invers. Când adaugǎm ecuația (5.42) și corolarii la cele douǎ operații, rezultatul este același.
(5.43)
Amplificarea totalǎ din figura 5.6 este realǎ și egalǎ cu pǎtratul mǎrimii amplificǎrii filtrului folosit de douǎ ori în fiecare operație. În acest sens limitat schimbul de fazǎ liniar și zero sunt realizabile cu toate filtrele digitale, inclusiv filtrele IIR.
5.6.3 Filtrele Butterworth
În aceastǎ secțiune și în urmatoarea vom introduce douǎ dintre cele mai folosite filtre IIR, filtrele Butterworth și Chebyshe. Aceste filtre au fost inventate în forma de filtre continue cu mult înainte de apariția DSP (Digital Signal Processing). Ne propunem mai întai sǎ descriem varianta “trece-jos” a fiecǎrui tip de filtru și apoi sǎ arǎtǎm cum sǎ schimbǎm aceste filtre IIR digitale “trece-jos” optime pentru același sens.
Începem cu filtru Butterworth. Puterea de amplificare a versiunii ideale, continue a filtrului este datǎ de:
, (5.44)
unde ω este frecvența în rad/s și este frecvența de tǎiere la sfârsitul “trece-bandǎ” și este tot în rad/s. Puterea maximǎ de amplificare a filtrului ideal este și putrerea de amplificare la tǎiere este prin definiție .
Filtru a fost numit dupǎ S. Butterworth, care a reușit sǎ arate cǎ din toate funcțiile raționale ale lui ω de ordin L are planitate maximǎ în “trece-bandǎ”, ceea ce înseamnǎ cǎ, un numǎr maxim a derivatelor care tind la 0 ale puterii funcției de amplificare la ω=0 și este astfel optim în acest sens.
Când folosim s în locul lui jω pentru a obține funcția de transfer Laplace relația (5.44) ia una din cele douǎ forme depinzând dacǎ L, ordinul filtrului, este par sau impar. Pentru simplificarea relației (5.44) cât și a discuției vom presupune cǎ L este par la acest punct. Folosind aceastǎ presupunere vom avea:
; L-par (5.45)
Un set unic de poli ale acestei expresii în planul s este dat de:
; n=1,2…2L (5.46)
Pentru filtre continue vom vedea în scurt timp cǎ stabilitatea cerutǎ pentru sisteme continue implicǎ faptul cǎ polii din planul s trebuie sǎ se afle în stânga axelor imaginare ceea ce înseamnǎ în stânga jumǎtǎții de plan. Pentru cǎ din ecuația (5.45) este egal cu H(s)H(-s), noi putem deci specifica funcția de transfer Butterworth stabilǎ folosind doar polii din jumatatea planului stâng din ecuația (5.46), aceea este, polii din colț care se aflǎ în intervalul:
, sau L<2n-1<3L (5.47)
Pentru cǎ am presupus cǎ L este par, aceasta înseamnǎ cǎ valorile L ale lui n folosit în ecuația (5.46) pentru a da polii planului stâng a lui H(s) trebuie sǎ fie date de:
sau (5.48)
Astfel, folosind m în loc de n în ecuația (5.46), polii filtrului “trece-jos” Butterwporth sunt la:
, (5.49)
Când L este par, așa cum am presupus, putem vedea cǎ polii lui H(s) sunt perechi conjugate; polii si sunt conjugați. Deci, putem exprima H(s) într-o formǎ cascadǎ cum urmeazǎ:
; (5.50)
în care funcția de transfer a fiecǎrei secțiuni, normalizat H(0)=1, este dat de:
; (5.51)
Astfel, în ecuațiile (5.50) și (5.51), avem funcția de transfer a filtrului “trece-jos” Butterworth continu de ordin L cu tǎierea la rad/s.
Amplificarea curbei puterii Butterworth devine mai dreptunghiularǎ cu creșterea lui L. Nu este dificil, de fapt, determinarea lui L bazatǎ pe acest fel de criteriu. Parametrii tradiționali descriși în literaturǎ specificǎ douǎ amplificǎri limitǎ de putere. O metodǎ simplificatǎ care presupune cǎ amplificarea puterii este 0.5 la frecvența de tǎiere, , este bazat pe o singurǎ alegere a parametrului . “Trece-bandǎ” este definit pânǎ la sfârsitul lui , “stop-bandǎ” este definit de la începultul lui , unde amplificarea puterii filtrului “trece-jos” este stabilit a fi la sau dedesubtul lui la toate frecvențele deasupra lui .
Dacǎ înlocuim cu ω din ecuația (5.44) și folosind condițiile descries pentru “stop-bandǎ” rezultatul este:
sau (5.52)
Mai mult, valorile practice ale lui sunt de obicei 10 sau mai mult, deci aproximǎm amplificarea maiximǎ “stop-bandǎ” cu , aceasta este, dB. Folosind aceastǎ aproximare în ecuația (5.52) putem specifica ordinal filtrului (L):
(5.53)
5.6.4 Filtrele Chebyshev
Filtrele Chebyshev sunt denumite dupa P.L. Chebyshev, care a descoperit un set unic de polinoame care poate fi descries în douǎ moduri:
. (5.54)
.
.
Echivalența acestor douǎ forme ale lui poate fi indicatǎ folosind seriile extinse pentru și în formulele din partea dreaptǎ.
Chebyshev a fost capabil sǎ arate asta, polinomul are cea mai micǎ amplitudine maximǎ în intervalul . Aceastǎ amplitudine este de fapt 1. Se întâmplǎ ca sǎ fie o cale simplǎ pentru a reprezenta intervalul pentru “trece-bandǎ” sau “stop-bandǎ” ale funcției puterii de amplificare Butterworth și astfel se face o curbǎ a puterii de amplificare cu aceastǎ amplitudine maximǎ sau proprietatea de pulsație egalǎ fiecare din aceste douǎ benzi. Rezultatul pentru cele douǎ tipuri de filtre “trece-jos” Chebyshev, fiecare fiind o simplǎ modificare a ecuației (5.44):
Tipul 1: (5.55)
Tipul 2: (5.56)
Proprietatea de pulsație egalǎ a polinoamelor Chebyshev este schimbat în “trece-bandǎ” în filtrul tipul 1 și în “stop-bandǎ” în filtrul tipul 2. În tipul 1, determinǎ amplitudinea pulsației “trece-bandǎ”. În tipul 2, ca pentru filtru Butterworth, amplificarea puterii este prin definiție egalǎ de la 1/2 la rad/s și nu sunt alți parametrii în afarǎ decât și .
Variația amplificǎrii “trece-bandǎ” a filtrului tipul 1 este nedorit în multe aplicații și astfel filtrul tipul 2 este alegerea obișnuitǎ. De aceea ne vom concentra pe proiectarea filtrului tipul 2, numit simplu filtrul Chebyshev de aici înainte și începem cu proveniența polilor lui.
Polii planului s a filtrului Chebyshev sunt similari cu polii Butterworth, dar sunt localizați pe elipsǎ mai degrabǎ decât pe un cerc. Pentru a gǎsi polii este convenabil sǎ înlocuim în ecuația (5.56), astfel transformǎm planul s în planul și de asemenea definim constanta . Cu aceste definiții putem scrie:
(5.57)
Pentru a obține poziția polilor în planul am fixat numitorul din ecuația (5.57) egal cu 0 și am înlocuit definiția cosinusului din ecuația (5.54). Rezultatul este:
(5.58)
Acum termenul intern, este, în general, complex. Reprezentǎm acest termen cu și apoi rezolvǎm pentru :
(5.59)
Dacǎ înlocuim primul rând din ecuația (5.58) în ecuația (5.59) vom putea rezolva pentru și și astfel pentru locația polilor în termenii lui :
(5.60)
Pentru cǎ partea realǎ a acestei expresii este 0 trebuie sǎ avem și astfel:
(5.61)
Remarcǎm cǎ valorile lui sunt la fel ca situația polilor Buttrworth din ecuația (5.46). Utilizând aceste valori ale lui și egalizând componentele imaginare din ecuația (5.60) avem și astfel:
sau (5.62)
Folosind ecuațiile (5.61) și (5.62) în ecuația (5.59) și schimbând indicele cu m într-o manierǎ asemanatoare cu ecuația (5.48), putem exprima polii din jumǎtatea dreaptǎ a planului a filtrului “trece-jos” Chebyshev așa cum urmeazǎ:
(5.63)
Puten sǎ revenim la plnul s folosind și notând cǎ semnul minus va schita jumatatea dreaptǎ a planului în jumatatea stângǎ a planului s. Așa avem o definiție completǎ a polilor Chebyshev.
Funcția putere de amplificare (5.57) are de asemenea zerouri în planul care trebuie sǎ fie schitat în planul s. Stabilind numǎrǎtorul a ecuației (5.57) egal cu 0 avem:
(5.64)
În acest caz argumentul cos poate fi orice multiplu de . Rezultatul este urmǎtoarea expresie pentru rǎdǎcinile ecuației (5.64), care sunt pe axa imaginarǎ a planului :
; (5.65)
Ca înainte, transformǎm folosind și astfel obținem zerourile filtrului “trece-jos” Chebyshev, care observǎm cǎ sunt pe axa imaginarǎ a planului s.
Astfel, începând cu ecuația (5.56) și sfârșind cu ecuația (5.65) am dedus polii și zerourile a filtrului analog “trece-jos” Chebyshev tiplu 2.
Când L este par , cum am presupus la filtrele Butterworth, polii și zerourile sunt în perechi complexe și funcția de transfer “trece-jos” Chebyshev poate fi exprimatǎ în forma cascadǎ așa cum urmeazǎ, într-o manierǎ similarǎ ecuației (5.50) și ecuației (5.51) în care și sunt polii și zerourile:
(5.66)
Ținând cond de pulsația “stop-bandǎ” este important sǎ avem o formulǎ ca ecuația (5.53) pentru filtrul Chebyshev, deci amplificarea maximǎ “stop-bandǎ” poate fi specificatǎ. Folosind același parametru putem scrie expresia amplificǎrii puterii Chebyshev similarǎ cu ecuația (5.52):
(5.67)
Notând din ecuația (5.54) cǎ și folosind reprezentatia “cosh” a lui , deducem:
sau (5.68)
Pentru a manevra aceasta într-o regulǎ ca (5.53) trebuie sǎ folosim ecuația identicǎ cu amplificarea “stop-bandǎ” . Dacǎ presupunem iar cǎ este mare (10 sau mai mult), acestea devin și :
(5.69)
Cu aceastǎ aproximare în ecuația (5.68), aproximǎm numǎrul cerut de poli Chebyshev:
(5.70)
(5.71)
5.6.5 Decodificarea frecvenței
În acest subcapitol transformǎm filtrele FIR “trece-jos” în filtre “trece-sus”, “trece-bandǎ” și “stop-bandǎ” adunând și scǎzând vectorul rǎspuns la impuls pentru a obține ponderile vectorilor apropiate. Pentru a transforma filtrele anaglogice “trece-jos” în acest subcapitol folosim o tehnoicǎ diferitǎ care face transformarea în domeniul frecvențǎ.
Cele trei transformǎri de frecvențǎ din “trece-jos” în “trece-sus”, “trece-bandǎ” și “stop-bandǎ” sunt fǎcute substituind trei funcții diferite ale lui s pentru s în funcția de transfer “trece-jos” Butterworth sau Chebyshev, H(s). Cele trei substituții pentru s împreunǎ cu substituțiile similare pentru ω sunt urmǎtoarele:
“Trece-jos” în “trece-sus”:
(5.72)
“Trece-jos” în “trece-bandǎ”:
cu (5.73)
“Trece-jos” în “stop-bandǎ”:
cu (5.74)
Fiecare dintre aceste substituții este ilustratǎ în figura 5.7 folosind funcții ideale de amplificare a amplitudinii. În fiecare caz, fǎrǎ mare efort, putem observa cum substituțiile (5.72) prin (5.74) traduc “trece-jos”, “trece-bandǎ” de la – la în “trece-bandǎ” ale funcției de amplificare transformatǎ. De exemplu secvența frecvenței “trece-jos” de la – la 0 și la este translatat la șirul “terece-sus” de la la la – la -. Trebuie sǎ observǎm în special cum frecvența de tǎiere “trece-jos”, , devine lǎrgimea de bandǎ a filtrelor “trece-bandǎ” și “stop-bandǎ”.
Presupunem cǎ o funcție de transfer “trece-jos” H(s) este în forma de cascadǎ a filtrelor Butterworth și Chebyshev. Acesta se va dovedi a fi cea mai folositoare formǎ de transformare din analog în digital. Apoi dacǎ vom aplica subsituțiile (5.72) prin (5.74) la
1 “Trece-jos” 1 “Trece-sus”
ω ω
– 0 – 0
1 “Trece-jos” 1 “Trece-bandǎ”
ω ω
– 0 – – 0
1 “Trece-jos” 1 “Stop-bandǎ”
ω ω
– 0 – – 0
Figura 5.7 Reprezentarea translațiilor frecvenței analogice în (5.72) prin (5.74).
unul din factorii lui H(s) vom obține termenii adaptați în tabelul 5.2 pentru fiecare dintre celelalte trei tipuri de filtre. În tabelul 5.2 am omis indicele m din ecuația (5.51) și ecuația (5.66) pentru concizii.
În fiecare dintre aceste translații se moștenește o conversie ale zerourilor și polilor “trece-jos” în poli și zerouri “trece-sus”, “trece-bandǎ” sau “stop-bandǎ”. Polii și zerourile translatați pot fi derivați prin gǎsirea rǎdǎcinilor numǎrǎtorilor și numitorilor din tabelul 5.2. Ieșirile funcționale sunt ponderi ale filtrului analog țintǎ. Putem nota aici cǎ formele pǎtratice în translație, unde apar în translațiile “trece-bandǎ” și “stop-bandǎ” cauzeazǎ dublarea numerelor de poli și zerouri în filtrul țintǎ.
Tabelul 5.2
Frecvența de translație a unui component a funcției H(s) în forma cascadǎ
Butterworth Chebyshev
“Trece-jos”
“Trece-sus”
“Trece-bandǎ”
“Stop-bandǎ”
La acest punct am terminat descrierea filtrelor Butterworth și Chebyshev cu toate cele patru “trece-bandǎ”. Urmǎtorul nostru pas este de a transforma aceste filtre în filtre digitale comparabile. Pentru aceastǎ operație avem nevoie de o ultimǎ translatare. Aceasta este transformarea biliniarǎ. Dupǎ acesta vom fi capabili sǎ formǎm un contur complet a alcǎtuirii filtrului digital IIR.
5.6.6 Transformarea biliniarǎ
Transformarea biliniarǎ descrisǎ de cǎtre Kaiser și alții este folositǎ pentru a transforma o funcție de transfer continuǎ analogicǎ, H(s), într-o funcție discretǎ de transfer digitalǎ H(z) și deci transformarea unui filtru analog într-un filtru digital. Vom vedea cǎ puterea de amplificare a filtrului digital rezultat aproximeazǎ și într-un sens îmbunǎtǎțește puterea de amplificare a corespondentului sǎu analog. Transformarea biliniarǎ este îndeplinitǎ simplu prin substituirea unei funcții a unei variabile discrete de transformare z, pentru variabila continuǎ de transformare s, pentru a asocia puncte din planul z la puncte din planul s și invers, asta însemnând substituirea unei funcții a lui s pentru z pentru a coresponda de la planul s la planul z.
Asocierile sunt dupǎ cum urmeazǎ:
Planul z la planul s Planul s la planul z
(5.75)
Geometria acestei transformǎri este ușor de înțeles dacǎ ridicǎm la pǎtrat expresia din dreapta sus și luǎm :
(5.76)
Putem observa cǎ dacǎ , partea ralǎ a lui s, este negativ atunci |z| este mai mic decât 1 și dacǎ este 0 atunci |z|=1. Deci în transformarea biliniarǎ de la planul s la planul z:
Jumǎtatea stângǎ a planului s este reprezentat în interiorul cercului unitar pe planul z.
Axele din planul s este reprezentat în cercul unitar din planul z.
Acestea sunt proprietǎțile esențiale ale transformǎrii biliniare, care este deasemeni funcția cea mai simplǎ de reprezentare care produce aceste rezultate.
Presupunem cǎ convertim un filtru analog “trece-jos” având funcția de transfer cu un filtru digital “trece-jos” având funcția de transfer H(z) folosind transformarea biliniarǎ cu proprietǎțile abia descrise. Rǎspunsul la ceea ce i se întâmplǎ amplificǎrii filtrului în transformare este gǎsit prin exprimarea funcției de amplificare. Mai întâi din definiția (5.75) avem :
(5.77)
De aici putem scrie rǎspunsul la frecvențǎ prin înlocuirea lui z cu: în ecuația (5.77). Vom folosi a doua formǎ a lui z, în loc sǎ accentuǎm faptul cǎ este amplificarea digitalǎ.
(5.78)
Totuși amplificarea filtrului digital este aceeași ca și a filtrului analog, dar la frecvențe diferite. O exprimare mai explicitǎ a regulii 2 de mai sus este: sub transformarea biliniarǎ punctele date de în șirul pe cercul unitar din planul z sunt reprezentate sǎ corespundǎ la punctele date de în șirul pe axele jω din planul s.
Ne aducem aminte cǎ, cu filtrele digitale seria de frecvențe uzuale este de la 0 pânǎ la jumǎtatea ratei de exemplificare, care este . Acum când frecvența trece prin acest șir în filtrul digital, observǎm în ecuația (5.78) cǎ frecvența într-un filtru analog, , trece prin șirul . În cazul filtrelor “trece-jos” frecvența criticǎ este frecvența de tǎiere . Frecvența de amplificare la tǎiere pentru filtrele Butterworth și Chebyshev este =1/2. Un alt efect important al transformǎrii biliniare este asocierea amplificǎrii filtrului analog în șirul la amplificarea filtrului digital în șirul . Dupǎ cum observǎm aceastǎ parte a reprezentǎrii deformeazǎ amplificarea filtrului analog într-un mod care îmbunǎtǎțește amplificarea filtrului digital, din cauzǎ cǎ aceastǎ amplificare tinde la 0 la . Reprezentând frecvențele în acest mod afecteazǎ de asemenea regulile (5.52) și (5.70) pentru numǎrul necesar de poli “trece-jos”. Fiecare dintre frecvențele critice trebuiesc reprezentate dupǎ cum am descris și astfel regulile echivalente pentru filtrele digitale “trece-jos” sunt: Numǎrul necesar de poli digitali “trece-jos” Butterworth:
(5.79)
Numǎr necesar de poli digitali “trece-jos” Chebyshev:
(5.80)
Pe scurt putem observa cǎ proiectarea unui filtru digital “trece-jos” IIR cu tǎiere la rad/s poate fi îndeplinitǎ în trei pași simpli:
Determinǎm numǎrul de poli folosind (5.79) și (5.80).
Proiectarea filtrului analog “trece-jos”, cu tǎiere la rad/s.
Transformarea lui în H(z) cu ajutorul transformǎrii biliniare:
(5.81)
Filtrele analog “trece-jos” pot fi transformate în filtre “trece-sus”, “trece-bandǎ” sau “stop-bandǎ” dupǎ metodele descries în sectiunea precedentǎ. Totuși aceleași reguli sunt aplicate pentru a proiecta toate cele patru tipuri de filtre digitale IIR dând toate frecvențele critice ale filtrului digital care sunt transformate în concordanțǎ cu ecuația (5.77) și anume:
(5.82)
Deci regulile din (5.81) pot fi extinse sǎ includǎ proiectarea tuturor celor patru tipuri de filtre. Pentru a proiecta un filtru digital IIR tebuie:
Sǎ determinǎm și deoarece este necesar folosirea ecuației (5.82).
Determinarea numǎrului de poli “trece-jos” folosind ecuația (5.79) sau (5.80).
Proiectarea filtrului analog “trece-jos”, cu tǎiere la rad/s.
Translatarea lui , dacǎ este necesar.
Transformarea lui în H(z) cu transformarea biliniarǎ: .
(5.83)
De asemeni este posibil sǎ schimbǎm pasul 4 și 5 și sǎ realizǎm translațiile de frecvențǎ în planul z. În sectiunea urmǎtoare vom descrie procesul (5.83) mai detaliat.
5.6.7 Filtrele digitale IIR
Abilitatea de a scrie funcții care interpreteazǎ sarcini de nivel inferior și care folosește aceste funcții în funcții de nivel superior, este o trǎsǎturǎ care oferǎ Matlab-ului și altor limbaje de programare performante un mare avantaj spre deosebire de limbajele de programare vechi unde definirea și folosirea funcțiilor era dificilǎ și uneori restricționatǎ. Putem profita de aceastǎ capabilitate de a dezvolta module pentru proiectarea filtrelor digitale IIR. De exempul în expresiile (5.79) și (5.80) calcularea numǎrului necesar de poli este ușor de fǎcut fǎrǎ a scrie un program, dar pe de altǎ parte o funcție Matlab este ușor de implementat și folosit în alte programe și are avantajul corecției.
Procesul de proiectare a filtrului “trece-jos” digital IIR începe tipic cu selectarea tipului de filtru, care deocamdatǎ presupunem cǎ este sau Butterworth sau Chebyshev tip 2. Apoi, procesul urmezǎ cursul care este rezumat în tabelul 5.5.
Tabelul 5.3
Proiectarea unui filtru digital IIR
Evaloare Funcția Matlab Ecuație
# poli L=bw_lowpass_size(vc,vs,dB) (5.79)
L=ch_lowpass_size(vc,vs,dB) (5.80)
Estimǎrile analoge [d,c]=bw_analog_weights(band,L,w1,w2) (5.49), (5.51)
[d,c]=ch_analog_weights(band,L,dB,w1,w2) (5.66), (5.72-75)
Estimǎrile digitale [b,a]=bilin(d,c) (5.77)
Sunt multe feluri diferite de a pleca de la un filtru “trece-jos” analog, la un filtru digital dorit și tabelul 5.3 reprezintǎ doar unul. Detaliile fiecǎrui algoritm pot fi vǎzute examinând expresiile într-o listare completǎ. Cititorul poate prefera sǎ gǎseascǎ sau sǎ inventeze alt set de algoritmi. Dar, dacǎ procedura din tabel și funcțiile Matlab aferente sunt folosite, câteva remarci sunt folositoare. Prima, argumentele frecvenței pentru primul set de algoritmi sunt în Hz-s. Argumentele frecvenței pentru al doilea set care au fost folosite inițial pentru uz intern (de cǎtre alte funcții) sunt în radiani, iar pentru scopul nostru sunt în general transformǎri biliniare ce folosesc ca în ecuația (5.78). De asemeni pentru al doilea set de funcții, ponderile analogice sunt coeficienții a secțiunii analogice în cascadǎ monopolar și sunt în general complexi. Doar L/2 sunt produși deoarece ceilalti L/2 sunt conjugați complexi. Este mai ușor sǎ folosim secțiuni monopolare în acest fel și sǎ trimitem ponderile la operația finalǎ care aplicǎ translatarea biliniarǎ și genereazǎ ponderile filtrului digital în formǎ de cascadǎ cu secțiune pǎtraticǎ și coeficienți reali. Deci a și b sunt șiruri reale dimensionate L/2 x 3, fiecare rând conținând coeficienții ce corespund secțiunii filtrului pǎtratic dați în (5.38) ca b(z)/a(z) cu M=N=2.
În procedura din tabelul 5.3 și alta ca aceasta, cu filtrele “trece-bandǎ” și “stop-bandǎ”, decodificarea frecvenței și transformata biliniarǎ combinǎ încovoierea marginii a funcției filtrului de amplificare, astfel încât doar amplificarea frecventelor critice este corectǎ. Este o idee bunǎ sǎ divizǎm amplificarea puterii și sǎ decidem dacǎ acceptǎm proiectarea sau schimbǎm unul sau mai mulți parametrii.
O pereche de exemple va ilustra asta. În fiecare caz, rezultatele expresiilor în Matlab sunt ponderile filtrului digital în forma cascadǎ cu secțiunea pǎtraticǎ L/2, fiecare secțiune având douǎ zerouri și doi poli. De asemenea, pentru fiecare exemplu, am presupus cǎ primul algoritm din tabelul 5.3 asigurǎ L=6 pentru numǎrul de poli “trece-jos”.
În primul nostru exemplu, am proiectat un filtru digital “trece-jos” Butterworth cu tǎierea la Hz-s folosind urmǎtoarele expresii (vezi tabelul 5.3):
[d,c]=bw_analog_weights(1,6,tan(pi*0.3));
[b,a]=bilin(d,c); (5.84)
În exemplul al doilea arǎtǎm ponderile filtrului digital Butterworth “trece-bandǎ” cu banda de trecere de la la folosind urmǎtoerele expresii:
[d,c]=bw_analog_weights(3,6,tan(pi*0.3),tan(pi*0.4));
[b,a]=bilin(d,c); (5.85)
În loc de douǎ expresii în (5.84) și (5.85), cineva poate dorește sǎ scrie o singurǎ funcție care calculeazǎ ponderile analogice și le transformǎ pe acestea în ponderi digitale folosind transformata biliniarǎ. Douǎ astfel de funcții sunt date în tabelul 5.5. Acestea sunt:
[b,a]=bw_weights(band,L,v1,v2)
[b,a]=ch_weights(band,L,dB,v1,v2) (5.86)
Funcția filters a Matlab-ului este cea mai bunǎ alegere dacǎ Matlab-ul este folosit; totuși, versiunea curentǎ a filtrului cere forma directǎ a lui H(z) mai degrabǎ decât forma cascadǎ preferatǎ în acest capitol. Pentru a aplica forma cascadǎ, funcția:
y=filters(b,a,x)
poate fi folositǎ. Aceastǎ funcție permite ca b și a sǎ fie șir, cu fiecare rând conținând ponderile unei secțiuni a structurii cascadǎ. În alte cuvinte, filters acceptǎ ponderi așa cum sunt calculate de funcția din (5.86). Intern, filters pur și simplu folosește filtru pentru a implementa fiecare secțiune a strucțurii cascadǎ.
5.6.8 Alte tipuri de filtre IIR
În afarǎ de patru tipuri standard de filtre IIR, existǎ o varietate nelimitatǎ de funcții de transfer diferite fiecare fiind inventat pentru un scop special. Vom da doar douǎ exemple aici, dar în general, un fel obișnuit de gândire pentru a obținere o amplificare a amplitudinii date sau caracteristicǎ fazei este sǎ ne imaginǎm cum polii și zerourile pot fi plasați în planul z pentru a atinge rezultatele dorite. Primul exemplu ilustreazǎ acest proces.
Presupunem cǎ avem nevoie de un rezonator digital, acesta este, un filtru digital care are o amplificare înaltǎ la o frecvențǎ specificatǎ și o amplificare joasǎ la celelalte frecvențe. Amplificarea este înaltǎ când punctual de exploatare este aproape de un pol și este joasǎ înǎuntrul cercului unitar (pentru stabilitate), spunem la raza . Acest pol, impreunǎ cu conjugatul lui, na va da o funcția de transfer:
(5.87)
Acum presupunem cǎ dorim sǎ poziționǎm zerourile multilateral pe cercul unitar pentru a atenua amplificarea la frecvențe aflate la distanta de . Putem face asta cu:
(5.88)
care are zerouri la ; acestea sunt într-o manierǎ similarǎ cu (5.46) zerouri la :
(5.89)
Apoi construim rezonatorul digital ca și combinația cascadǎ prezentatǎ în figura 5.8, cu o amplificare constantǎ A pentru a face amplificarea egalǎ cu 1 la rezonanțǎ, aceasta este:
(5.90)
Figura 5.8 Rezonatorul digital: combinația cascadǎ de din (5.88), din (5.87) și amplificarea constanta A din (5.90).
Așa, rezonatorul digital este o structurǎ simplǎ constând din sectiunea de întârziere (5.88) uramtǎ de doi poli ai filtrului IIR secțiunea (5.87).
Figura 5.9 Filtru cu caracteristica de frecvențǎ în formǎ de pieptene descries de (5.87) pânǎ la (5.90).
Filtru cu caracteristica de frecvențǎ în forma de pieptene arǎtǎt în figura 5.9 este un alt tip de rezonator IIR, în care câteva elemente în forma lui din (5.87) și (5.90) sunt conectate la o singurǎ întârziere FIR:
(5.91)
Elementul determinǎ zerourile sǎ se miște de pe cercul unitar pe un cerc de razǎ r. Fiecare pol a filtru cu caracteristica de frecvențǎ în formǎ de pieptene este plasat direct pe un zerou și de aceea, anuleazǎ efectul de amplificare, așa produce un vârf rezonant corespunzǎtor frecvenței.
Spectograma este o aplicație interesantǎ a filtrului cu caracteristica de frecvențǎ în formǎ de pieptene sau oricare set similar de filtre “trece-bandǎ”. Este folosit cu semnal nestaționar (semnale cu proprietǎțile spectrale care se schimbǎ cu timpul).
Al doilea exemplu de tip diferit de filtru IIR este filtru “trece-tot”, care are amplificarea constantǎ la toate frecvențele. Presupunem cǎ punem poli la p și (conjugatul lui p) pe planul z și apoi, pentru a compensa contribuția acestora la amplificarea amplitudinii punem zerouri la și și construim filtrul urmǎtor:
(5.92)
Putem vedea cǎ rǎspunsul amplitudine este 1 la toate frecvențele:
(5.93)
Operațiile din (5.93) au fost primele înmulțind fiecare termen a numitorului cu și apoi folosind proprietatea de distributivitate a conjugatului plus proprietatea pentru oricare variabilǎ complexǎ sau funcție . Așa, filtrul “trece-tot” este un filtru cu amplificare unitate și faza deplasatǎ depinde de valoarea lui p. Secțiunile filtrelor “trece-tot” , fiecare cu propria valoare a lui p, pot fi conectate în cascadǎ pentru a produce diferite caracteristici de fazǎ.
5.7 Proiectarea bancurilor de filtre
În afarǎ de funcția precisǎ de transfer a filtrului, alți factori trebuie incluși în construirea unui set de filter care este o emulație rezonabilǎ a unui banc de filtre auditoriu. Pentru experimentele psihoauditive s-a decis cǎ bancul de filtre trebuie extins la o frecvanțǎ cuprinsǎ între 300-3000 Hz. Un anume Dudley a inventat așa numitul banc de filtru voder care urma sǎ fie controlat de o tastaturǎ pentru a se schimba într-o varietate de forme spectrale. Un numǎr convenabil de filter era zece, corespunzând cu numǎrul de degete. Acesta a condus la un banc cu zece filter “trece-bandǎ”, fiecare cu o largime de bandǎ de 300 Hz.
În timp ce Dudley a conceput și construit primul decodor de voci vocoder implementarea necesita componente relative expresive și mari. Ca și voderul, primul vocoder construit avea doar zece canale fiecare incluzând un filtru cu o lǎțime de bandǎ de 300 Hz. Rezultatele, totuși nu au fost satisfǎcǎtoare. Un deceniu mai târziu Vaderson a fǎcut o demonstrație a unui vocoder cu treizeci canale care avea o calitate excelentǎ.
Mai târziu vocoderele construite la laboratoarele Bell erau dotate cu o lǎțime de bandǎ mai mare pentru frecvanțe centrale mai mari acestea rezultând la o reducere de pânǎ la șaisprezece canale ce acopereau aceeași frecvențǎ.
Într-un vocoder, propunerea analizǎrii bancului de filter este de a genera o estimare rezonabilǎ a spectrului vorbirii. Realizarea acestui țel este complicatǎ de douǎ proprietǎți importante ale vorbirii: a) frecvența apropiatǎ în timpul segmentelor vocale și b) variația sa cu timpul. În timpul vorbirii sonore, spectrul este foarte aproape de periodic. Spectrul vorbirii variazǎ în timp, dar rata variației e bazatǎ pe articulația mișcǎrilor și este astfel o variație lentǎ (de ordinul a 10-20 Hz).
5.8 Transformata Fourier Discretǎ (DFT)
Încǎ de la începutul anilor 60 atât transformata Fourier cât și transformata Laplace au fost folosite ca ajutoare teoretice în procesarea semnalului, dar nu au fost angajate mult în calculele actuale. Partea hardware a avut nevoie sǎ implementeze aceste funcții ceea ce a fost destul de scump, dar curând dupǎ ce s-a arǎtat cum se poate face filtrarea cu ajutorul calculatorului, Cooley și Tukey au introdus transformata Fourier rapidǎ (FFT) și au început sǎ aibe rezultate în multe câmpuri de lucru atât în teorie cât și în practicǎ. O astfel de activitate împreunǎ cu ajutorul calculatoarelor avansate a însemnat cǎ prin procesarea semnalului în algoritmi pot fi implementate ordine de amplitudine mai rapide cu ordine de amplitudine hardware mai mici decât au fost folosite cu trei decenii în urmǎ. Heideman arǎta cǎ conceptual FFT a fost înțeles de Gauss cât și de Good, dar pânǎ la apariția lucrǎri descoperite de Cooley și Tukey nici o altǎ lucrare nu a dat rezultate. În acest subcapitol am introdus DFT și am lucrat în exclusivitate cu versiunea digitalǎ și am subliniat câteva din concluziile teoretice, iar în subcapitolul 5.9 ne vom concentra asupra FFT.
DFT pentru o secvențǎ de duratǎ finitǎ x(n), , este definit ca:
, (5.94)
cu . Inversa DFT poate fi calculatǎ: fiind datǎ secvența X(k), vom obține:
. (5.95)
Calcularea DFT extrage spectrul unei secvențe finite, cea mai mare importantǎ având-o aplicațiile de procesare a semnalului. Analiza spectrului poate fi implementatǎ prin înțelesurile bancului unui filtru digital sau analog. Sunt multe variații de naturǎ specificǎ pe analiza spectralǎ; acestea poat fi inrudite convenabil cu parametrii bancului de filtre, cum ar fi numǎrul de filtre, intervalul de frecvențǎ a bancului de filtre și amplitudinea și rǎspunsurile în fazǎ a filtrelor individuale. În multe cazuri folosirea DFT poate emula proprietǎțile unui banc de filtre dat și prin FFT, efectuarea calcului cu mai multǎ eficiențǎ. În secțiunea 5.9 arǎtǎm cum FFT își capǎtǎ viteza, dar este folositor sǎ arǎtǎm salvǎrile de vitazǎ care pot fi obținute. Mai jos am definit fǎrǎ dovezi proprietǎțile de calcul ale FFT.
Dacǎ N se aflǎ la puterea a 2-a atunci DFT poate fi calculat în operațiile . acesta intrǎ în contrast cu “forța brutǎ” de calcul DFT, care ia operații.
De exemplu, dacǎ N=1024, =10, salvǎrile fiind un factor de 100 (ignorând detaliile). Costul calculului a forței brute DFT este aproximativ același ca a unei analize spectrale a unui banc de filtre. DFT poate fi luat în general printr-o secvențǎ a unor numere complexe.
În mǎsurarea spectrului unui semnal vrem sǎ cunoaștem dacǎ frecvența intervanlului este acoperitǎ, numǎrul frecvențelor este mǎsurat și puterea algoritmului este razolvatǎ. În general un semnal real ca vorbirea sau muzica, un semnal radar sau de sonar, sau un semnal biologic este de duratǎ suficientǎ astfel încât sǎ spunem cǎ poate dura la nesfârșit. Cercetǎtorul care vrea sǎ efectuaze analize spectrale cu DFT trebuie sǎ se decidǎ, pe baza intuiției sale despre semnal, la durata DFT, în timpul dintre mai multe aplicații succesive a DFT și rata de modelare a unui semnal discretizat. Adițional cercetǎtorul trebuie sǎ aleagǎ o fereastrǎ adecvatǎ pentru problemǎ. De exemplu parametrii unui model de producere a vorbirii se poate schimba într-un interval de timp de 10-20 ms. O mǎrime adecvatǎ a ferestrei poate fi de 20 ms, cu DFT se va apdata la fiecare 10 ms. Dacǎ L este durata de timp presupusǎ a ferestrei și M este numǎrul de modele din fereastrǎ, atunci L=MT, unde T este un model de interval.
Alegerea mǎrimi DFT notatǎ cu N este dictatǎ de rezoluția spectralǎ doritǎ și în general poate fi mai mare decât M aceasta poate fi ușor implementatǎ prin argumentarea cu zerouri. Totuși dacǎ se dorește ca intervalul de frecvențǎ dintre modelele adiacente DFT și F rata de modelare R= (F)N. Intervalul de frecvnțǎ acoperit de DFT este prin urmare R. Totuși pentru o intrare care este realǎ DFT este simetric pentru R/2 astfel încât rezultatele neredundante ale DFT sunt date de intervalul de frecvențǎ a R/2. În DFT atât timpul cât și frecvența sunt modele; deci x(n) și X(k) sunt periodice. Ecuațiile (5.94) și (5.95) sunt periodice cu o perioadǎ N. Dacǎ începem cu o secventǎ de o distanțǎ perfect finitǎ a unei lungimi N și calculǎm DFT, inversa DFT va fi periodicǎ în N. Ca rezultat produsul dintre douǎ DFT rezultǎ în convoluția circularǎ a secvenței de timp.
5.9 Transformata Fourier Rapidǎ (FFT)
Existǎ o varietate mare de algoritmi FFT. Ei pot fi derivați din aplicații succesive a unei singure operații, prin reprezentarea unui șir de numere unidimensional ca o dispunere bidimensionalǎ. Dacǎ avem o secvențǎ de N puncte, intregul N este în totalitate un numǎr prim sau un numǎr compus. Dacǎ N este prim nu poate fi exprimat ca un produs de întregi mai mici. Dacǎ N este compus poate fi exprimat ca un produs . Dacǎ și sunt compuse reducerea este permisǎ în continuare. Termenul de rǎdǎcinǎ este folosit pentru a descrie o decompoziție. Dacǎ N poate fi exprimat ca un produs al întregului r algoritmul FFT este numit algoritmul de rǎdǎcinǎ r. Termenul de rǎdǎcinǎ mixtǎ ne sugereazǎ cǎ toți factorii lui N nu sunt identici.
Avantajul de calcul a reducerilor descriese vine direct din faptul cǎ, DFT bidimensional este mult mai eficient decât un DFT unidimensional având același numǎr de modele de intrare. Rezultǎ din aceastǎ observație cǎ DFT bidimensional poate fi implementat, de exemplu, prin utilizarea de DFT-uri unidimensional pe toate coloanele pentru a obține o nouǎ matrice și apoi utilizând DFT-uri unidimensionale pe toate rândurile noi matrici. Timpul total de calcul pentru coloanele de cǎtre rândurile este de ordin și poate fi apreciabil mai mic decât timpul calculat . Trebuie sǎ fim conștienți cǎ avantajele unei astfel de reduceri este adevaratǎ pentru câteva cazuri speciale cum ar fi algoritmul DFT.
Trebuie sǎ derivǎm valorile matematice ale acestui artificiu DFT. Notǎm indexul unidimensional ca fiind n; indexul coloanei îl notǎm cu m și indexul rândului îl notǎm l și vom obține (M este numǎrul coloanelor și L este numǎrul rândurilor):
n=Ml+m (5.96)
Vom executa DFT bidimensional și alegem r și s ca fiind variabilele transformate; aceasta poate fi recompusǎ pentru a da o singurǎ variabilǎ.
K=Lr+s (5.97)
Ne aflǎm acum în pozitia de a exprima modelele DFT X(k)=X(s,r) ca transformatǎ a x(n)=x(l,m) prin simpla substituire a ecuațiilor (5.96) și (5.97) într-o definiție a DFT datǎ de:
. (5.98)
Dezvoltând , observǎm cǎ și asociind corect indicii cu semnele de sumǎ rearanjǎm ecuația (5.98) ca fiind:
. (5.99)
Notǎm cǎ suma L este DFT-ul coloanei m a tabelei având nucleul . Primul pas în procedura de calcul va fi dupǎ cum urmeazǎ :
Calcularea punctului L a DFT pentru fiecare coloanǎ. Rezultatul este o funcție de s și m, numitǎ q(s,m). Ecuația (5.99) poate fi scrisǎ ca:
. (5.100)
Obținem o nouǎ mulțime h(s,m) prin multiplicarea fiecǎruei mulțimi q(s,m) prin factorul de rǎsucire . Ecuația (5.100) se reduce la:
. (5.101)
Ecuația (5.101) este recunoscutǎ a fi punctual M a DFT pentru fiecare rând, indexul rândului fiind notat cu s. Pasul final în aceastǎ procedurǎ este:
Calcularea DFT pentru fiecare rând a matricei h(s,n), cu nucleul . Mai multe rezultate sunt evidențiate pentru aceastǎ procedurǎ. Dacǎ N este un numǎr compus unde I este un numǎr întreg, DFT poate fi descompus în dimensiuni i fiecare fiind DFT bipunctual. În majoritatea aplicațiilor o astfel de restricție nu prezintǎ nici o problemǎ deoarece argumentând cu zerouri se va alterna simplu sensul numeric al frecvențelor corespunzând valorii k.
Un alt rezultat de înalt interes este acela de permutare rând-coloanǎ. Dacǎ calculul are loc ordinea valorilor rezultate k este în general diferioitǎ fatǎ de ordinea valorilor n. Avantajul unui algoritm local este acela cǎ nu este necesarǎ o memorie auxiliarǎ; când calculul este terminat, rezultatul se va afla în aceeași locație în care a început calculul. Totuși rezultatul nu va mai fi în aceeași ordine.
5.10 Relația dintre DFT și filtrele digitale
Dat fiind faptul cǎ atât DFT-urile cât și bancurile de filtre sunt capabile sǎ execute analize spectrale, este normal sǎ ne informǎm asupra relațiilor matematice ce se dezvoltǎ între cele douǎ metode. Figura 5.10 aratǎ o implementare a unui banc de filtre cu un DFT alunecǎtor.
+
x( n) +
+
-1 …
+
…
+
Figura 5.10 Implementarea unui banc de filtre cu un DFT alunecǎtor.
Presupunem cǎ sistemul este inițial în repaus. Atuncea este simplu de observat cǎ N inițiali veniți a modelelor de semnal vor produce modelul de ieșire DFT cerut. Consideram N probe, datoritǎ întârzierii probei N, probele de 0 întârziate anuleazǎ contribuția originalǎ a probelor 0, astfel cǎ ieșirile vor inregistra contribuția pentru probele 1 și N. Fiecare set de ieșiri la fiecare punct de probǎ corespunde la DFT-ul de secvențǎ care a alunecat spre dreapta cu o probǎ. Pentru implementarea cu banc de filtru a figurii 5.10 numǎrul de multiplicǎri per punct este N.
5.11 Analiza spectrului vocal folosind FFT
Încorporarea transformǎrii Fourier rapide e programatǎ ca spectru de analizǎ creând un set diferit de opțiuni proiectate. Cu FFT a fost mai ușor sǎ se genereze un spectru de analizǎ în timp, cu estimația timpului crescǎtor logaritmic cu creșterea în rezoluție. Totuși aceleași controverse (rezultate) ce complicǎ proiectarea bancului de filtre, tot s-au ținut de analiza FFT. De exemplu, dacǎ vrem echivalentul a 1024 filtre “trece-bandǎ”, aceastea pot fi sigur implementate cu 1024 puncte FFT. Totuși, dacǎ implementǎm, alegând 1024 probe pentru a analiza o fereastrǎ rectangularǎ și apoi invocǎm programul FFT, rezultatele nu sunt așa de bune. Presupunând, de exemplu, cǎ vorbirea a fost exemplificatǎ la 10 kHz. Acest lucru înseamnǎ ca 1024 de monstre corespund la aproximativ 100 ms de vorbire. În tot acest timp, spectrul se poate schimba foarte mult, ceea ce înseamnǎ cǎ acest tip de analizǎ spectralǎ nu va detecta schimbarea natural spectralǎ în vorbire. Existǎ multe trucuri, pentru a trece peste aceastǎ problemǎ.
5.12 Concluzii
Cercetarea psihoauditivǎ și psihologicǎ, a facut posibilǎ estimarea proprietǎților rezoluției frecvenței sistemului auditiv uman. Aceastǎ cercetare a ajutat la construirea și implementarea a multor tipuri de metode de analize spectrale care studiazǎ cu atenție la spectrul vorbirii. În afarǎ de consecința rezoluției frecvenței mai sunt și alte consecințe temporale semnificative. Proiectanții trebuie sǎ ia în considerare atât timpul cât și frecvența în contextual aplicației specifice.
Capitolul 6 Spectograme
Spectrograma este o reprezentare vizuală a unui semnal vocal, reprezentând dependența de timp a analizei în frecvență.
Pentru calculul acesteia se calculează transformata Fourier discretă a unui semnal căruia i se aplică o fereastră glisantă (alunecătoare). Spectrograma este amplitudinea acestei funcții, oferind o viziune asupra evoluției în timp a spectrului.
Codul matlab pentru spectrograma este:
B = specgram(a,nfft,fs,window,numoverlap)
a – vectorul acustic(semnalul)
nfft – lungimea FFT aplicată semnalului. Această valoare determină frecvențele la care se calculează transformata Fourier în timp discret.
fs – frecvența de eșantionare
window – tipul ferestrei aplicate în analiză.
numoverlap – suprapunerea ferestrei.
Spectrogramele oferă o imagine timp – frecvență a variației rezonanțelor spectrale, numite formanți. Atunci cănd se trece la un alt cuvănt se observă schimbări în lățimile de bandă a formanților.
Modul de calcul:
Se împarte semnalul în segmente suprapuse (se presupune suprapunerea de 99%) și se aplică fereastra specificată prin parametrii de intrare.
Se calculează DTFT pentru fiecare secțiune cu lungimea nfft pentru a produce estimatul în frecvență al semnalului, rezultetele fiind dispuse într-o matrice coloană B.
Spectrograma prezintă spectrele calculate pentru întreaga formă de undă; ele apar paralele cu axa verticală. Axa orizontală este axa timpului, iar deplasarea în timp duce la traversarea dintr-un spectru în altul.
Pentru o spectrogramă dată, puterea la o frecvență f la momentul t din semnalul vocal este reprezentată printr-o anumită culoare ce reprezintă perechea S(t,f). În mod obișnuit spectrogramele apar în tonuri de gri, în care regiunile mai închise sunt proporționale cu energia la frecvența și momentul de timp corespunzător.
În cazul reprezentărilor cu culori, nuanța de roșu reprezintă cea mai mare energie apoi în sens descrescător intensităților: portocaliu, galben, verde, albastru, gri și alb.
O pulsație a tractului vocal produce o energie acustică intensă. Pulsurile multiple (cazul semnalului vocal) apar în spectrogramă ca striații verticale de diverse intensități care în timp conturează formanții. Sunetele sonore sunt reprezentate într-o spectrogramă de bandă largă prin striații verticale, fiecare linie verticală indicând o pulsație a tractului vocal, un curent de aer ce străbate glota. Sunete nesonore nu apar în spectrogramă. Zgomotul apare ca o energie aleatoare și nu ca striații.
În semnalul vocal frecvențele au diferite înălțimi în funcție de forma tractului vocal. Energia striațiilor este filtrată de tractul vocal.
În spectrograma de bandă largă, formanții sunt reprezentați prin regiuni de culoare intensă reprezentănd rezonanțele tractului vocal.
Tehnic acestea reprezintă un set de armonici învecinate, care sunt „ridicate în frecvență” de o rezonanță într-o anumită regiune a tractului vocal.
În funcție de forma tractului vocal apar formanți diferiți indiferent de modelul sursei.
În funcție de lungimea ferestrei cu care se face analiza Fourier se obțin diferite rezoluții: aplicându-se o fereastră de lungime mare se obține o spectrogramă de bandă îngustă care scoate în evidență armonicile individuale. Dacă se folosește o fereastră cu un număr mic de eșantioane, armonicile adiacente sunt „împrăștiate” dar se obțin rezoluții mai bune în timp. Se obține o spectrogramă de bandă largă în care vârfurile din spectru apar ca striații verticale, ele fiind și cele mai folosite deoarece cu ajutorul lor se obțin mai multe informații referitoare la tractul vocal. Măsurând distanța dintre striații se obține perioada oscilației deci frecvența fundamentală a semnalului la acel moment.
Capitolul 7 Aplicații
Considerǎm douǎ înregistrǎri vocale, una aparținând voci feminine, iar cealaltǎ unei voci masculine, ambele pronunțând aceeași propoziție în limba englezǎ “Should we chase those cowboys ?”.
7.1 Analiza înregistrǎrii vocii feminine
Figura 7.1 Înregistrarea vocii feminine.
Figura 7.2 Aplicarea ferestrei Hamming semnalului.
Figura 7.3 Aplicarea ferestrei Hanning semnalului.
Figura 7.4 Aplicarea ferestrei Kaiser semnalului.
Figura 7.5 Aplicarea ferestrei triunghiulare semnalului.
Figura 7.6 Aplicarea ferestrei Bartlett semnalului.
Figura 7.7 Aplicarea ferestrei Blackman semnalului.
Figura 7.8 Aplicarea ferestrei dreptunghiulare semnalului.
Figura 7.9 Aplicarea ferestrei Chebyshev semnalului.
Figura 7.10 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra Hamming.
Figura 7.11 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra Hanning.
Figura 7.12 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra Kaiser.
Figura 7.13 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra triunghiularǎ.
Figura 7.14 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra Bartlett.
Figura 7.15 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra Blackman.
Figura 7.16 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra dreptunghiularǎ.
Figura 7.17 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra Chebyshev.
Figura 7.18 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra Hamming.
Figura 7.19 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra Hanning.
Figura 7.20 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra Kaiser.
Figura 7.21 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra triunghiularǎ.
Figura 7.22 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra Bartlett.
Figura 7.23 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra Blackman.
Figura 7.24 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra dreptunghiularǎ.
Figura 7.25 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra Chebyshev.
Figura 7.26 Spectrograma rezultată în urma aplicării ferestrei Hamming.
Figura 7.27 Spectrograma rezultată în urma aplicării ferestrei Hanning.
Figura 7.28 Spectrograma rezultată în urma aplicării ferestrei Kaiser.
Figura 7.29 Spectrograma rezultată în urma aplicării ferestrei triunghiularǎ.
Figura 7.30 Spectrograma rezultată în urma aplicării ferestrei Bartlett.
Figura 7.31 Spectrograma rezultată în urma aplicării ferestrei Blackman.
Figura 7.32 Spectrograma rezultată în urma aplicării ferestrei dreptunghiularǎ.
Figura 7.33 Spectrograma rezultată în urma aplicării ferestrei Chebyshev.
Figura 7.34 Semnalul filtrat cu un filtru FIR.
Figura 7.35 Semnalul filtrat cu un filtru FIR utilizând fereastra Hamming.
Figura 7.36 Semnalul filtrat cu un filtru FIR utilizând fereastra Hanning.
Figura 7.37 Semnalul filtrat cu un filtru FIR utilizând fereastra Kaiser.
Figura 7.38 Semnalul filtrat cu un filtru FIR utilizând fereastra triunghiularǎ.
Figura 7.39 Semnalul filtrat cu un filtru FIR utilizând fereastra Bartlett.
Figura 7.40 Semnalul filtrat cu un filtru FIR utilizând fereastra Blackman.
Figura 7.41 Semnalul filtrat cu un filtru FIR utilizând fereastra dreptunghiularǎ.
Figura 7.42 Semnalul filtrat cu un filtru FIR utilizând fereastra Chebyshev.
Figura 7.43 Semnalul filtrat cu un filtru IIR – Butterworth.
Figura 7.44 Semnalul filtrat cu un filtru IIR – Chebyshev tipul I.
Figura 7.45 Semnalul filtrat cu un filtru IIR – Chebyshev tipul II.
7.2 Analiza înregistrǎrii vocii masculine
Figura 7.46 Înregistrǎrea vocii masculine.
Figura 7.47 Aplicarea ferestrei Hamming semnalului.
Figura 7.48 Aplicarea ferestrei Hanning semnalului.
Figura 7.49 Aplicarea ferestrei Kaiser semnalului.
Figura 7.50 Aplicarea ferestrei triunghiulare semnalului.
Figura 7.51 Aplicarea ferestrei Bartlett semnalului.
Figura 7.52 Aplicarea ferestrei Blackman semnalului.
Figura 7.53 Aplicarea ferestrei dreptunghiulare semnalului.
Figura 7.54 Aplicarea ferestrei Chebyshev semnalului.
Figura 7.55 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra Hamming.
Figura 7.56 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra Hanning.
Figura 7.57 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra Kaiser.
Figura 7.58 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra triunghiularǎ.
Figura 7.59 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra Bartlett.
Figura 7.60 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra Blackman.
Figura 7.61 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra dreptunghiularǎ.
Figura 7.62 Analiza spectralǎ a semnalului căruia i s-a aplicat fereastra Chebyshev.
Figura 7.63 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra Hamming.
Figura 7.64 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra Hanning.
Figura 7.65 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra Kaiser.
Figura 7.66 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra triunghiularǎ.
Figura 7.67 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra Bartlett.
Figura 7.68 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra Blackman.
Figura 7.69 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra dreptunghiularǎ.
Figura 7.70 Analiza cepstralǎ a semnalului căruia i s-a aplicat fereastra Chebyshev.
Figura 7.71 Spectrograma rezultată în urma aplicării ferestrei Hamming.
Figura 7.72 Spectrograma rezultată în urma aplicării ferestrei Hanning.
Figura 7.73 Spectrograma rezultată în urma aplicării ferestrei Kaiser.
Figura 7.74 Spectrograma rezultată în urma aplicării ferestrei triunghiularǎ.
Figura 7.75 Spectrograma rezultată în urma aplicării ferestrei Bartlett.
Figura 7.76 Spectrograma rezultată în urma aplicării ferestrei Blackman.
Figura 7.77 Spectrograma rezultată în urma aplicării ferestrei dreptunghiularǎ.
Figura 7.78 Spectrograma rezultată în urma aplicării ferestrei Chebyshev.
Figura 7.79 Semnalul filtrat cu un filtru FIR.
Figura 7.80 Semnalul filtrat cu un filtru FIR utilizând fereastra Hamming.
Figura 7.81 Semnalul filtrat cu un filtru FIR utilizând fereastra Hanning.
Figura 7.82 Semnalul filtrat cu un filtru FIR utilizând fereastra Kaiser.
Figura 7.83 Semnalul filtrat cu un filtru FIR utilizând fereastra triunghiularǎ.
Figura 7.84 Semnalul filtrat cu un filtru FIR utilizând fereastra Bartlett.
Figura 7.85 Semnalul filtrat cu un filtru FIR utilizând fereastra Blackman.
Figura 7.86 Semnalul filtrat cu un filtru FIR utilizând fereastra dreptunghiularǎ.
Figura 7.87 Semnalul filtrat cu un filtru FIR utilizând fereastra Chebyshev.
Figura 7.88 Semnalul filtrat cu un filtru IIR – Butterworth.
Figura 7.89 Semnalul filtrat cu un filtru IIR – Chebyshev tipul I.
Figura 7.90 Semnalul filtrat cu un filtru IIR – Chebyshev tipul II.
Anexa 1 Ferestre – prezentare generală
Atât la proiectarea filtrelor digitale cât și la estimarea spectrului de putere, alegerea unei funcții fereastră joacă un rol important în determinarea calității rezultatelor globale. Rolul principal al ferestrei este acela de a reduce efectele fenomenului Gibbs rezultat din trunchierea unei serii infinite.
Fereastra de bază este cea dreptunghiulară, un vector de lungime corespunzătoare, compus din valori de 1.
Fereastra Bartlett (sau triunghiulară) este rezultatul convoluției a două ferestre dreptunghiulare. Funcțiile bartlett și triang calculează ferestre triunghiulare similare, între acestea existând trei diferențe importante. Prima diferență dintre aceste ferestre este următoarea: spre deosebire de triang, funcția bartlett întoarce întotdeauna o fereastră cu două zerouri la capetele secvenței, deci pentru n impar, secțiunea centrală a bartlett(n+2) este echivalentă cu triang(n). Pentru n par, bartlett este convoluția a două secvențe dreptunghiulare.
Nu există o definiție standard pentru fereastra triunghiulară pentru n par; pantele segmentelor de linie ale rezultatului funcției triang sunt puțin mai abrupte decât acelea corespunzătoare funcției bartlett, aceasta reprezentând cea de-a doua diferență.
Diferența finală dintre ferestrele Bartlett și cea triunghiulară este reflectată în transformatele Fourier ale acestor funcții. Transformata Fourier a unei ferestre Bartlett este negativă pentru n par, în timp ce transformata Fourier a unei ferestre triunghiulare este întotdeauna pozitivă.
Exemplu de ferestrǎ Bartlett și triunghiularǎ.
Ferestre cosinusoidale generalizate
Ferestrele Blackman, Hamming, Hanning și cea dreptunghiulară sunt cazuri particulare ale ferestrei cosinusoidale generalizate. Aceste ferestre sunt combinații de secvențe sinusoidale cu frecvențe 0, 2π/(N-1) și 4π/(N-1), unde N este lungimea ferestrei. O cale de a le genera ar fi:
ind = (0:n–1)'*2*pi/(n–1);
w = A – B*cos(ind) + C*cos(2*ind);
unde A, B și C sunt constante predefinite.
Ideea care stă la baza acestor ferestre este aceea că însumând termenii individuali pentru a forma fereastra, vârfurile frecvențelor joase din domeniul frecvenței se combină în așa manieră încât să scadă înălțimea lobului lateral, efectul secundar al acesteia fiind creșterea lățimii lobului principal.
Ferestrele Hamming și Hanning sunt ferestre cosinusoidale generalizate, acestea obținându-se pentru A = 0.54 și B = 0.46 (Hamming) și pentru A = 0.5 și B = 0.5 (Hanning), C fiind zero în ambele cazuri.
Fereastra Blackman se obține pentru A = 0.42, B = 0.5, C = 0.08.
Fereastra Kaiser
Fereastra Kaiser este o aproximare a ferestrei sferice, alungite de-a lungul diametrului polar, pentru care raportul dintre energia lobului principal și cea a lobului lateral este maximizată. Pentru o fereastră Kaiser de lungime particulară, parametrul β controlează înălțimea lobului lateral. Pentru un β dat, înălțimea lobului lateral este fixă, ținând cont de lungimea ferestrei.
Exemple de ferestre Kaiser de lungime 50 și diverse valori pentru β:
n = 50;
w1 = kaiser(n,1);
w2 = kaiser(n,4);
w3 = kaiser(n,9);
[W1,f] = freqz(w1/sum(w1),1,512,2);
[W2,f] = freqz(w2/sum(w2),1,512,2);
[W3,f] = freqz(w3/sum(w3),1,512,2);
plot(f,20*log10(abs([W1 W2 W3])))
Figura A.1.1 Exemple de ferestre Kaiser.
Odată cu creșterea lui β, înălțimea lobului lateral scade și lățimea lobului principal crește. Pentru a vedea cum înălțimea lobului lateral rămâne aceeași pentru un β fix, lungimea variind, avem exemplul:
w1 = kaiser(50,4);
w2 = kaiser(20,4);
w3 = kaiser(101,4);
[W1,f] = freqz(w1/sum(w1),1,512,2);
[W2,f] = freqz(w2/sum(w2),1,512,2);
[W3,f] = freqz(w3/sum(w3),1,512,2);
plot(f,20*log10(abs([W1 W2 W3])))
Figura A.1.2 Exemple de ferestre Kaiser.
Fereastra Kaiser utilizată la proiectarea FIR
Există două reguli de proiectare a filtrelor FIR folosind o fereastră Kaiser. Pentru a obține o înălțime a lobului lateral de -α dB, parametrul β este:
,
Pentru o lățime de tranziție de Δω rad/sec, folosim lungimea
Filtrele proiectate folosind aceste metode euristice vor corespunde specificațiilor cu o anumită aproximare, în acest caz fiind necesare verificări ulterioare în vederea convingerii asupra corectitudinii rezultatelor. Avem următorul exemplu de proiectare a unui filtru trece-jos cu frecvența de tăiere de 0.5π rad/sec și cu o atenuare în banda de oprire de 40 dB:
[n,wn,beta] = kaiserord([0.4 0.6]*pi,[1 0],[0.01 0.01], 2*pi);
h = fir1(n,wn,kaiser(n+1,beta),'noscale');
Funcția kaiserord estimează ordinul filtrului, frecvența de tăiere și parametrul ferestrei Kaiser β.
Riplul din banda de trecere are aceleași asperități ca și cel din banda de oprire. Așa cum se poate observa din răspunsul în frecvență, filtrul îndeplinește aproximativ specificațiile:
[H,f] = freqz(h,1,512,2);
plot(f,20*log10(abs(H))), grid
Figura A.1.3 Răspunsul în frecvență.
Fereastra Cebyshev
Fereastra Cebyshev minimizează lățimea lobilor laterali, dându-se înălțimea lobului
Figura A.1.4 Fereastra Cebyshev.
principal. Este caracterizată de un comportament echiriplu (de ripluri egale), lobii laterali
ai acesteia având aceeași înălțime. De exemplu:
n = 51; % numărul de eșantioane (sample-uri)
Rs = 40; % înălțimea lobului parțial (în dB)
w = chebwin(n,Rs);
stem(w)
Așa cum se arată în figură, fereastra Cebyshev determină vârfuri mari la eșantioanele marginale.
Să afișăm răspunsul în frecvență pentru a vedea echiriplurile la -40 dB.
[W,f] = freqz(w,1,512,2);
plot(f,20*log10(abs(W)/sum(w))), grid
Figura A.1.5 Răspunsul în frecvență.
Anexa 2 Programe sursǎ
Aplicarea sistemelor de ferestre
len_of_signal = length(signal);
len_of_window = time_frame_len – time_overlap;
no_of_windows = fix(len_of_signal/len_of_window)+1;
subplot(3,1,1);
plot(signal);
title('Semnalul original');
AXIS = axis;
for z = 1:no_of_windows
start_sample = (z-1)*len_of_window + 1;
if start_sample + time_frame_len -1 > len_of_signal
end_sample = len_of_signal;
else
end_sample = start_sample+time_frame_len-1;
end
win1 = zeros(size(signal));
frame = signal(start_sample:end_sample);
win1(start_sample:end_sample) = win(1:length(frame));
win2(:,z) = win1;
windowed_frame(start_sample:end_sample)=frame.*win1(start_sample:end_sample);
subplot(3,1,2);
plot(win1);
axis([1 length(signal) 0 1.2]);
subplot(3,1,3);
plot(windowed_frame);
title('Semnalul ferestruit');
axis(AXIS);
pause(0.01);
end;
for z = 1:no_of_windows
subplot(312)
plot(win2(:,z));
axis([1 length(signal) 0 1.2]);
hold on;
end
Se consideră cunoscute time_frame_len (lungimea ferestrei) și time_overlap (suprapunerea). Conținutul înregistrării vocale este păstrat în vectorul signal. Vectorul win reprezintă fereastra, aceasta fiind una din tipurile cunoscute (Hamming, Hanning, Kaiser, triunghiulară, Bartlett, Blackman, dreptunghiulară, Cebyshev), adică:
win = hamming(time_frame_len)
win = hanning(time_frame_len)
win = kaiser(time_frame_len,0.5)
win = triang(time_frame_len)
win = bartlett(time_frame_len)
win = blackman(time_frame_len)
win = boxcar(time_frame_len)
win = chebwin(time_frame_len,3)
Analiza spectralǎ
freq_out_win_h=6;
x=1;
x_end=x+spec_frame_len-1;
if x > RIGHT
x=RIGHT-spec_frame_len;
x_end=x+spec_frame_len-1;
end
if x_end > RIGHT
x_end=RIGHT;
x=RIGHT-(spec_frame_len-1);
end
window = hamming(spec_frame_len);
winbktk=hamming(2*maxlag+1);
% window = hanning(spec_frame_len);
% winbktk=hanning(2*maxlag+1);
% window = kaiser(spec_frame_len,0.5);
% winbktk=kaiser(2*maxlag+1,0.5);
% window = triang(spec_frame_len);
% winbktk=triang(2*maxlag+1);
% window = bartlett(spec_frame_len);
% winbktk=bartlett(2*maxlag+1);
% window = blackman(spec_frame_len);
% winbktk=blackman(2*maxlag+1);
% window = boxcar(spec_frame_len);
% winbktk=boxcar(2*maxlag+1);
% window = chebwin(spec_frame_len,3);
% winbktk=chebwin(2*maxlag+1,3);
speech1=SPEECH_OLD(x:x_end);
figure(freq_out_win_h);
window = window(1:(x_end-x+1));
speechbktk=speech1;
speech1=window.*speech1;
Fs = 10000;
epsilon=1e-15;
FFT = fft(speech1);
vh1=1:length(FFT(1:spec_frame_len/2));
vh1=vh1/length(FFT(1:spec_frame_len/2))*1/(2*Ts);
fsave = 20*log10( abs(FFT(1:spec_frame_len/2)));
Gs=FFT(1:spec_frame_len/2);
hold on;
N=length(speech1);
FFTPER = fft(speech1)/N;
vh2=1:length(FFTPER(1:spec_frame_len/2));
vh2=vh2/length(FFTPER(1:spec_frame_len/2))*1/(2*Ts);
fsave = 20*log10( abs(FFTPER(1:spec_frame_len/2)));
Gs=FFT(1:spec_frame_len/2);
hold on;
[rcorr lags]=xcorr(speechbktk,maxlag,'biased');
rcorr=winbktk.*rcorr;
FFT=fft(rcorr, spec_frame_len);
vh3=1:length(FFT(1:spec_frame_len/2));
vh3=vh3/length(FFT(1:spec_frame_len/2))*1/(2*Ts);
plot(vh1, 20*log10( abs(FFT(1:spec_frame_len/2)) ) ,'r');
hold on;
plot(vh2, 20*log10( abs(FFTPER(1:spec_frame_len/2)) ),'b' );
hold on;
plot(vh3,10*log10(abs(FFT(1:spec_frame_len/2))),'g');
hold off;
title('FFT – rosu, Periodograma – albastru, Blackman Tukey – verde');
clear speech1
unde speech1 este vectorul înregistrării vocale respective, căruia i s-a aplicat una din funcțiile fereastră și spec_frame_len este lungimea ferestrei.
Analiza cepstralǎ
x = 1;
x_end=x+ceps_frame_len-1;
if x > RIGHT
x=RIGHT-ceps_frame_len;
x_end=x+ceps_frame_len-1;
end
if x_end > RIGHT
x_end=RIGHT;
x=RIGHT-(ceps_frame_len-1);
end
window = hamming(ceps_frame_len);
% window = hanning(ceps_frame_len);
% window = kaiser(ceps_frame_len,0.5);
% window = triang(ceps_frame_len);
% window = bartlett(ceps_frame_len);
% window = blackman(ceps_frame_len);
% window = boxcar(ceps_frame_len);
% window = chebwin(ceps_frame_len,3);
speech1=SPEECH_OLD(x:x_end);
figure(ceps_out_win_h);
window = window(1:(x_end-x+1));
speech1=window.*speech1;
cepstrum1 = rceps(speech1);
cepstrum2 = cceps(speech1);
vh1=1:length(cepstrum1)/2;
vh2=1:length(cepstrum2)/2;
cepstrum1 = cepstrum1(1:length(cepstrum1)/2);
cepstrum2 = cepstrum2(1:length(cepstrum2)/2);
plot(vh1,cepstrum1,'b',vh2,cepstrum2,'r');
title(‘Cepstrul real – albastru, Cepstrul complex – rosu’)
clear speech1
clear x
clear x_end
end
unde speech1 este vectorul înregistrării vocale respective, căruia i s-a aplicat una din funcțiile fereastră și ceps_frame_len este lungimea ferestrei.
Analiza folosind spectrograme
Fs = 10000;
sgram_overlap_len=round(sgram_overlap*1/100*sgram_frame_len);
if sgram_overlap_len==sgram_frame_len
sgram_overlap_len=sgram_overlap-1;
end
[B,F,T] = specgram ( speech, sgram_frame_len, Fs, window, sgram_overlap_len );
imagesc(time,F,-20*log10(10+abs(B))),axis('xy'), colormap(jet);
title('Spectrograma');
În cazul de față, Fs este frecvența de eșantionare, sgram_overlap și sgram_frame_len reprezintă suprapunerea respectiv lungimea ferestrei, window este una din ferestrele prezentate anterior, iar time este vectorul timp, acesta conținând valori discrete:
time = 1:length(speech),
speech fiind vectorul înregistrării vocale.
Analiza folosind banc de filtre fir
u=speech1;
f1=2;
f2=1668;
f3=3334;
f4=5000;
fe=11000;
w1=f1/(fe/2);
w2=f2/(fe/2);
w3=f3/(fe/2);
w4=f4/(fe/2);
b1=fir1(6,[w1,w2]);b2=fir1(6,[w2,w3]);b3=fir1(6,[w3,w4]);
%b1=fir1(6,[w1,w2],hamming(7));b2=fir1(6,[w2,w3],hamming(7));b3=fir1(6,[w3,w4],hamming(7));
%b1=fir1(6,[w1,w2],hanning(7));b2=fir1(6,[w2,w3],hanning(7));b3=fir1(6,[w3,w4],hanning(7));
%b1=fir1(6,[w1,w2],kaiser(7,4));b2=fir1(6,[w2,w3],kaiser(7,4));b3=fir1(6,[w3,w4],kaiser(7,4));
%b1=fir1(6,[w1,w2],triang(7));b2=fir1(6,[w2,w3],triang(7));b3=fir1(6,[w3,w4],triang(7));
%b1=fir1(6,[w1,w2],bartlett(7));b2=fir1(6,[w2,w3],bartlett(7));b3=fir1(6,[w3,w4],bartlett(7));
%b1=fir1(6,[w1,w2],blackman(7));b2=fir1(6,[w2,w3],blackman(7));b3=fir1(6,[w3,w4],blackman(7));
%b1=fir1(6,[w1,w2],boxcar(7));b2=fir1(6,[w2,w3],boxcar(7));b3=fir1(6,[w3,w4],boxcar(7));
%b1=fir1(6,[w1,w2],chebwin(7,100));b2=fir1(6,[w2,w3],chebwin(7,100));b3=fir1(6,[w3,w4],chebwin(7,100));
y1(1)=b1(1)*u(1);
y1(2)=b1(1)*u(2)+b1(2)*u(1);
y1(3)=b1(1)*u(3)+b1(2)*u(2)+b1(3)*u(1);
y1(4)=b1(1)*u(4)+b1(2)*u(3)+b1(3)*u(2)+b1(4)*u(1);
y1(5)=b1(1)*u(5)+b1(2)*u(4)+b1(3)*u(3)+b1(4)*u(2)+b1(5)*u(1);
y1(6)=b1(1)*u(6)+b1(2)*u(5)+b1(3)*u(4)+b1(4)*u(3)+b1(5)*u(2)+b1(6)*u(1);
[n,qq]=size(u);
for i=7:n,
y1(i)=b1(1)*u(i)+b1(2)*u(i-1)+b1(3)*u(i-2)+b1(4)*u(i-3)+b1(5)*u(i-4)+b1(6)*u(i-5);
end
y2(1)=b2(1)*u(1);
y2(2)=b2(1)*u(2)+b2(2)*u(1);
y2(3)=b2(1)*u(3)+b2(2)*u(2)+b2(3)*u(1);
y2(4)=b2(1)*u(4)+b2(2)*u(3)+b2(3)*u(2)+b2(4)*u(1);
y2(5)=b2(1)*u(5)+b2(2)*u(4)+b2(3)*u(3)+b2(4)*u(2)+b2(5)*u(1);
y2(6)=b2(1)*u(6)+b2(2)*u(5)+b2(3)*u(4)+b2(4)*u(3)+b2(5)*u(2)+b2(6)*u(1);
[n,qq]=size(u);
for i=7:n,
y2(i)=b2(1)*u(i)+b2(2)*u(i-1)+b2(3)*u(i-2)+b2(4)*u(i-3)+b2(5)*u(i-4)+b2(6)*u(i-5);
end
y3(1)=b3(1)*u(1);
y3(2)=b3(1)*u(2)+b3(2)*u(1);
y3(3)=b3(1)*u(3)+b3(2)*u(2)+b3(3)*u(1);
y3(4)=b3(1)*u(4)+b3(2)*u(3)+b3(3)*u(2)+b3(4)*u(1);
y3(5)=b3(1)*u(5)+b3(2)*u(4)+b3(3)*u(3)+b3(4)*u(2)+b3(5)*u(1);
y3(6)=b3(1)*u(6)+b3(2)*u(5)+b3(3)*u(4)+b3(4)*u(3)+b3(5)*u(2)+b3(6)*u(1);
[n,qq]=size(u);
for i=7:n,
y3(i)=b3(1)*u(i)+b3(2)*u(i-1)+b3(3)*u(i-2)+b3(4)*u(i-3)+b3(5)*u(i-4)+b3(6)*u(i-5);
end
figure
plot(u,'b');
hold on;
plot(y1,'r');
hold on;
plot(y2,'r');
hold on;
plot(y3,'r');
hold off;
title (‘Semnalul original – albastru, Semnalul filtrate – rosu’);
unde speech1 este vectorul înregistrării vocale respective.
Analiza folosind filtru iir
u=speech1;
f1=500;
f2=1500;
fe=4000;
w1=f1/(fe/2);
w2=f2/(fe/2);
[b,a]=butter(4,[w1,w2]);
%[b,a]=cheby1(4,0.1,[w1,w2]);
%[b,a]=cheby2(4,20,[w1,w2]);
y(1)=[b(1)*u(1)]+1;
y(2)=[b(1)*u(2)+b(2)*u(1)]+[1+a(2)*y(1)];
y(3)=[b(1)*u(3)+b(2)*u(2)+b(3)*u(1)]+[1+a(2)*y(2)+a(3)*y(1)];
y(4)=[b(1)*u(4)+b(2)*u(3)+b(3)*u(2)+b(4)*u(1)]+[1+a(2)*y(3)+a(3)*y(2)+a(4)*y(1)];
[n,qq]=size(u);
for i=5:n,
y(i)=[b(1)*u(i)+b(2)*u(i-1)+b(3)*u(i-2)+b(4)*u(i-3)+b(5)*u(i-4)]+[1+a(2)*y(i-1)+a(3)*y(i-2)+a(4)*y(i-3)+a(5)*y(i-4)];
end
figure
plot(u,'b');
hold on;
plot(y,'r');
hold off;
title (‘Semnalul original – albastru, Semnalul filtrate – rosu’);
unde speech1 este vectorul înregistrării vocale respective.
Anexa 3 Constatǎri
Constatǎri în urma comparaței filtrului FIR fǎrǎ fereastrǎ cu filtrul FIR cu fereastrǎ.
Constatǎri în urma comparaței filtrului IIR Butterworth cu filtrele IIR Chebyshev tipul I și Chebyshev tipul II.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Metode de Analiza a Vorbirii. Exemplificari (ID: 161425)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
