SE508788C2 - Förfarande att bestämma positionerna inom en talram för excitationspulser - Google Patents
Förfarande att bestämma positionerna inom en talram för excitationspulserInfo
- Publication number
- SE508788C2 SE508788C2 SE9501368A SE9501368A SE508788C2 SE 508788 C2 SE508788 C2 SE 508788C2 SE 9501368 A SE9501368 A SE 9501368A SE 9501368 A SE9501368 A SE 9501368A SE 508788 C2 SE508788 C2 SE 508788C2
- Authority
- SE
- Sweden
- Prior art keywords
- positions
- pulse
- excitation
- phase
- speech
- Prior art date
Links
- 230000005284 excitation Effects 0.000 title claims abstract description 109
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000004364 calculation method Methods 0.000 claims abstract description 49
- 241001058146 Erium Species 0.000 claims 1
- 239000003973 paint Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 17
- 239000013598 vector Substances 0.000 description 16
- 230000003044 adaptive effect Effects 0.000 description 11
- 238000012360 testing method Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000000875 corresponding effect Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 230000010363 phase shift Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000454 talc Substances 0.000 description 1
- 229910052623 talc Inorganic materials 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/10—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Control Of Stepping Motors (AREA)
- Time-Division Multiplex Systems (AREA)
Description
-«so 508 788 och fasläge (tidsläge) i beroende av dels prediktivparametrarna ak, dels i beroende av prediktionsresten dk mellan talingångs- mönstret och talkopian. Var och en av pulserna får påverka talmönsterkopian så att prediktionsresten blir så liten som möjligt. De alstrade excitationspulserna har relativt låg bithastighet och kan därför' kodas och överföras smalbandigt Härigenom fås en förbättrad liksom prediktivparametrarna. kvalitet hos den återskapade talsignalen.
I ovannämnda kända förfarande alstras excitationspulserna inom att vikta restsignalen dk och återkoppla och vikta de alstrade värdena för excitationspulserna i vardera ett prediktivfilter. Därefter utförs en korrelation mellan utsignalerna från de båda filtren och en maximering av korrelationen för ett antal signalelement ur varje ramintervall hos talingångsmönstret genom den korrelerade signalen, för att bilda excitationspulsernas parametrar (amplitud och fasläge). Fördelen med denna multipuls- algoritm för att alstra excitationspulserna är att man klarar av att generera olika typer av ljud med litet antal pulser (exempel- ViS 8 St/ramintervall). Pulssökningsalgoritmen är generell med avseende på pulsplaceringarna i ramen. Det är möjligt att återskapa icketonande ljud (konsonanter), vilka generellt kräver slumpmässigt utplacerade pulser och tonande ljud (vokaler) som kräver en mer samlad pulsplacering.
Dessa kända metoder beräknar de korrekta faslägena för ex- citationspulserna inom en ram och efterföljande ramar hos talsignalen och placeringen av pulserna görs endast i beroende på en komplex behandling av talsignalparametrarna (prediktionsrest, restsignal och excitationspulsernas parametrar'i föregående ram).
En nackdel med de ursprungliga pulsplaceringsmetoderna enligt ovannämnda US-patent är att den kodning som utförs efter beräkning av pulspositionerna är komplex m a p beräkningar och lagring. Den kräver dessutom ett stort antal bitar per pulsposi- tion i ramintervallet. Bitarna i de kodord som erhålles ur de optimala kombinatoriska pulskodningsalgoritmerna är dessutom bitfelskänsliga. Ett bitfel i kodordet under överföringen från sändaren till mottagaren kan medföra ödesdigra följder på pulsplaceringen vid avkodningen i mottagaren.
För att avhjälpa detta kan man införa restriktioner på hur många excitationspulser som behöver utsättas inom varje talram. Detta är möjligt beroende på det faktum att antalet pulspositioner för excitationspulserna inom ett ramintervall är så stort att man kan göra avkall på en exakt placering av en eller flera excitation- spulser inom ramen och ändå få en godtagbar kvalité hos den återskapade talsignalen efter kodning och överföring.
Det har därför föreslagits, se US-patentet 5,l93,140, en metod enligt vilken vissa faslägesbegränsningar vid pulsernas ut- placering införs genom att ett visst antal redan bestämda faslägen förbjuds för de pulser som följer efter fasläget för en redan beräknad excitationspuls. Då läget för en första puls inom ramen beräknats och då denna placerats i det beräknade fasläget förbjuds detta fasläge för efterkommande pulser inom den ramen.
Denna regel gäller företrädesvis för alla pulsplaceringar inom ramen. Då utplaceringen för en ny efterföljande ram skall påbörjas är åter alla positioner inom ramen lediga.
På senare tid har föreslagits att använda s k kodböcker i talkodare vid alstrande av den syntetiska talsignalen, se exempelvis US-patentet 4,70l,954. En sådan kodbok lagrar ett antal kodord för talsignalen som används vid skapande av den syntetiska talkopian. Kodboken därvid vara fix, dvs innehålla fasta kodord eller vara adaptiv, dvs. den kan uppdateras allteftersom talkopian bildas. Man kan även använda en kom- bination av en fix och en adaptiv kodbok.
REDoGöRELsE FÖR UPPFINNINGEN ovannämnda metod att förbjuda samtliga faslägen inom en talram, av vilka ett läge redan tilldelats en excitationspuls leder till ett mer begränsat antal överförda excitationspulser än om ,,w 508 788 restriktionen ej används. Dessutom ges möjlighet att enklare koda faslägena för excitationspulserna i sändsidan, samt att bättre åtskilja faslägena vid avkodning i mottagarsidan.
Ett problem med den använda metoden är emellertid att restriktio- nen medför att vissa väsentliga egenskaper såsom tonhöjd (pitch), transienter o dyl. kan bli dåligt återgivna. Detta medför i sin tur att den mottagna vågformen blir distorderad. Samtidigt har man i samband med att, enligt de förstnämnda kända metoderna, undersöka alla möjliga pulspositioner konstaterat att detta leder till alltför komplexa beräkningar, vilka i sin tur kräver alltför hög komplexitet hos hårdvaran och kan endast användas då antalet tillgängliga faslägen från början är lågt. I normala fall med ett större antal faslägen är man tvingad till lägre komplexitet vid bestämningen av dessa.
Enligt föreliggande uppfinning kombineras den förstnämnda kända metoden utan restriktioner med den sistnämnda kända metoden enligt vilken vissa restriktioner införs. Kombinerandet av dessa båda kända metoder görs på sådant sätt att, efter det att ett visst antal steg utan restriktioner har gjorts, görs ett antal sekventiella sökningar med restriktioner och som utgångspunkt tas vart och ett av de faslägen, som bestämdes vid den första sökningen utan restriktioner. Härigenom ges frihet att välja antalet beräkningssteg utan restriktioner, vilka ger exakta positioner men komplexa beräkningar i förhållande till antalet beräkningssteg med vilka ger approximativa positioner men mindre komplexa beräkningar, så att totala komplexiteten vid beräkning av excitationspulsernas positioner (faslägen) inom en talram kan optimeras. restriktioner, Förfarandet enligt uppfinningen är därvid kännetecknat så som det framgår av patentkravets 1 kännetecknande del.
En självständig utföringsform av förfarandet enligt patentkrav 1 framgår av patentkraven 2-5 och en annan självständig utförings- form framgår patentkravet 6.
U1 CD JO *J Ü) GO En fördelaktig kodningsmetod av' excitationspulserna faslägen bestämda enligt patentkravet 1 är kännetecknad så som det framgår av patentkraven 7-9.
Det föreslagna förfarandet kan tillämpas vid en talkodare som arbetar enligt multipulsprincipen med korrelation av en ursprung- lig talsignal och en LPC-syntetiserad signals impulssvar och med eller utnyttjande av kodfædböcker enligt ovan. Förfarandet kan emellertid även tillämpas på en s k RPE-talkodare i vilken flera excitationspulser samtidigt utplaceras i ramintervallet.
FIGURFÖRTECKNING Det föreslagna förfarandet skall närmare beskrivas med hänvisning till bifogade ritningar där figur 1 visar ett förenklat blockschema över en känd LPC- talkodare; figur 2 visar ett tidsdiagram över vissa signaler som uppträder i talkodaren enligt figur 1; figur 3 visar ett schema över en talram för att förklara principen hos den förut kända metoden med restriktivitet vid bestämningen av excitationspulserna; figur 4 visar ett blockschema över en del av en talkodare som arbetar enligt uppfinningens princip; figur 5 visar ett blockschema över en del av en känd talkodare med adaptiv kodbok i vilken metoden enligt uppfinningen kan til- lämpas; figur 6 är ett flödesschema för att förklara metoden enligt uppfinningen; figur 7 är ett diagram som visar pulsutsättningen enligt uppfinningen; figur 8 är ett diagram som visar pulsutsättning medelst fasläges- justering enligt uppfinningen; figur 9 är ett blockschema över en del av en talkodare vilken arbetar i enlighet med metoden enligt uppfinningen. figur 10 är ett blockschema över en del av en talkodare vilken arbetar i enlighet med en alternativ metod enligt uppfinningen. 508 788 UTFÖRINGSFQRMER Ett förenklat blockschema av en känd LPC-talkodare multipulsprincipen med korrelation är visad i figur 1. En sådan kodare är i detalj beskriven i USA-patentet 4.472.832 (SE-B- 45661s). En uppträder vid ingången till Prediktionsanalysatorn 110 innehåller förutom analog-digitalom- vandlare en LPC-dator och en restsignalgenerator, vilka bildar enligt analog talsignal från exempelvis en mikrofon en prediktionsanalysator 110 . prediktivparametrar ak och en restsignal dk. Prediktivpara- metrarna karakteriserar den syntetiserade signalen resp. den ursprungliga talsignalen över analysatorns ingång.
En excitationsprocessor 120 mottar de båda signalerna ak och dk och arbetar under ett av på varandra följande ramintervall bestämda av ramsignalen FC, för att under vart och ett av intervallen avge ett visst antal excitationspulser. Varje puls är därvid bestämd av sin amplitud A och sitt tidsläge (position), UP mp inom ramen. Excitationspulsparametrarna Amp, mp leds till en kodare 131 och multiplexeras därefter med prediktivparametrarna ak före utsändning exempelvis från en radiosändare.
Excitationsprocessorn 120 innehåller två prediktivfilter med samma impulssvar för att vikta signalerna dk och (Ai, mi) i beroende av prediktivparametrarna ak under ett visst beräk- ningssteg p. Vidare ingår en korrelationssignalgenerator som utför en korrelation mellan den viktade ursprungliga signalen (y) och den viktade artificiella signalen (37) varje gång en excita- tionspuls skall alstras. För varje korrelation fås ett antal "kandidater" av pulselement Ai, mi (0 s i < I), av vilka en ger det minsta kvadratiska felet eller minsta absolutbeloppet. I excitationssignalgeneratorn beräknas amplitud Amp och tidsläge (position) mp för den utvalda "kandidaten". Bidraget från den utvalda pulsen Amp, mp subtraheras därefter i korrelationssignal- generatorn från den önskade signalen för att få en ny sekvens av "kandidater" och förfarandet upprepas så många gånger som det 508 788 önskade antalet excitationspulser inom en ram. Detta är i detalj beskrivet i ovannämnda US-patent.
Figur 2 visar ett tidsdiagram över talingångssignal, prediktiv- restsignal dk och excitationspulser. Antalet excitationspulser är här == 8 av vilka pulsen Ami, ml valts ut först (gav minsta felet), därefter puls Amz, m2 osv inom ramen.
I den förut kända. metoden för att beräkna amplitud A och fasläge m för varje excitationspuls ur ett antal kandidaêgr Ai, mi beräknådes mp=mi för den kandidat i som gav maximalt värde på oi/øij och tillhörande amplitud Amp beräknades, där'a¿ är korskor- relationsvektorn mellan signalerna yn och yn enligt ovan och o¿j (nedan kallad C¿j,i=j=m ) är autokorrelationsmatrisen för predik- tivfiltrens impulssvar. Vilket som helst läge mp accepterades om endast ovanstående villkor uppfylldes. Index p anger det steg under vilket beräkning av en excitationspuls enligt ovan sker.
Enligt den förut kända metoden med restriktivitet vid bestäm- ningen av excitationspulsernas lägen indelas en ram enligt figur 2 så som det framgår av figur 3. Det antas som exempel att ramen innehåller N=12 positioner. De N positionerna bildar därvid en sökvektor (n). Hela ramen indelas i s k subblock. Varje subblock kommer då att innehålla ett visst antal faslägen. Om exempelvis, såsom är visst i figur 3, hela ramen innehåller N=l2 positioner fås 4 subblock och 3 olika faslägen inom varje subblock.
Subblocket har ett visst läge inom hela ramen, vilket kallas faslägespositionen. (0sn tillhöra ett visst subblock nf (0$nf (0$f5F) i detta subblock.
Varje position n Generellt gäller att positionerna n (05n5N) i den totala sökvektorn, som innehåller N positioner, är n = nf°F + f ... (l); där f = pulsfasläget inom ett subblock nf och F = antalet faslägen inom blocket nf. 508 788 nf=0, ... ,(Nf-1), f = O,...(F-1) och n = o, ..., (N - 1).
Vidare gäller följande samband fp = n MOD F och nfp = nDIv F ...(1).
Schemat enligt figur 3 visar fördelningen av faslägen fp och subblock nfp för en viss sökvektor innehållande N positioner. I detta fall är N = 12, F = 3 och NF = 4.
Den kända metoden med restriktioner innebär att begränsa pulssökningen till positioner som ej tillhör ett redan upptaget vilkas positioner n fasläge fp för de excitationspulser, beräknats i föregående steg.
Ordningsnumret för en viss beräkningscykel av en excitationspuls betecknas fortsättningsvis med p enligt ovan. Den kända metoden med restriktioner ger då följande beräkningsgång för ett ramintervall: 1. Beräkna den önskade signalen yn. Beräkna korskorrelationsvek- torn ai 3. Beräkna autokorrelationsmatrisen Cij (= øij i=j=m) 4. För p=1. Sök det m dvs den pulsposition som ger maximalt P ai/Cij i ej upptagna faslägen f. för den funna pulspositionen m .
. Beräkna amplituden Am P 6. Uppdatera korskorrelationsvektorn ai 7. Beräkna fp fp enligt sambanden (1) ovan 8. För p = p+1 utför samma steg 4-7. och n Flödesscheman som närmare illustrerar den kända metoden är visade i figur 4a och 4b i ovannämnda US-patent 5,193,140.
De erhållna faslägena fl, ..., fp kodas gemensamt och de erhållna faslägespositionerna (subblocken) nf1,..., nfp kodas var för sig före utsändning. För kodningen av faslägena kan kombinatorisk kodning användas. Faslägespositionerna kodas med kodord var för sig.
I en utföringsform kan den kända talprocessorkretsen utan restriktioner vid pulsutsättningen vara modifierad så som det framgår av figur 4, vilken visar den del av talprocessorn som omfattar de excitationssignalbildande kretsarna 120.
Prediktivrestsignalen dk och excitationsgeneratorn 127 inmatas till var sitt filter 121 respektive 123 i takt med en ramsignal FC via grindarna 122, 124. Från filtren 121, 123 fås signalerna yn respektive yn som korreleras i korrelationsgeneratorn 125.
Signalen yn representerar den 'verkliga talsignalen 'medan yn representerar den artificiella talsignalen. Från korrelations- generatorn 125 fås en signal Ciq innehållande komponenterna ai och oij enligt ovan. I excitationsgeneratorn 127 utförs en beräkning av det pulsläge mp som ger maximalt a./Q 1 ij, varvid förutom pulsläget mp även amplituden Am enligt ovan erhålles.
P Från excitationsgeneratorn 127 avges excitationspulsparanctrarna mp, Amp till en faslägesgenerator 129. Denna beräknar de aktuella faslägena f och faslägespositionerna (subblocken) n", ur de P inkommande värdena.mp, Amp sambandet från excitationsgeneratorn 127. enligt f = (m - 1) MOD F nf = (m - 1) DIV F där F = antalet möjliga faslägen.
Faslägesgeneratorn 129 kan utgöras av en processor innefattande ett läsminne som lagrar instruktioner för beräkning av Iasläget och faslägespositionen enligt ovanstående samband.
Fasläge fp och faslägesposition nfp tillförs därefter kodaren 131, figur 1. Denna kodare är av samma principiella uppbyggnad som den kända kodaren men kodar fasläge och faslägesposition i stället för pulslägen mp. I mottagarsidan avkodas faslägen och faslägespositioner och avkodaren beräknar därefter pulsläget mp enligt 508 788 m =(nfp _ p l)'F + f vilket entydigt bestämmer excitationspulsläget.
Fasläget fp matas även till korrelationsgeneratorn 125 och excitationsgeneratorn 127. Korrelationsgeneratorn lagrar detta fasläge och tar hänsyn till att detta fasläge fp är upptaget.
Inga värden på signalen Ci beräknas där q ingår i de positioner, som hör till alla föregående fp beräknade för en analyserad sekvens. De upptagna positionerna är = 'F + f q H P där n = 0, ..., (Nf - 1) och fp är alla föregående faslägen inom en ram som är upptagna. Excitationsgeneratorn 127 tar på samma sätt hänsyn till upptagna faslägen vid jämförelse mellan signa- och Ci *. lerna Ciq q Då samtliga pulsplaceringar för en ram har beräknats och utförts och då nästa ram skall påbörjas är givetvis åter samtliga fas- lägen lediga för den första pulsen i den nya ramen.
I figur S visas en annan typ av talkodning medelst s k adaptiv kodbok. Prediktionsanalysatorn 110 ger de båda parametrarna ak och dk och dessa parametrar används som instorheter till ett block här betcknat lll, som införs före excitationsprocessorn 120 i figur 4.
Blocket lll innehåller en adaptiv kodbok 112, vilken lagrar ett antal kodord cl, ...cn och vilken kan uppdateras av en styrsig- nal. Detta är symboliserat i figur 5 medelst en väljare 113, som pekar ut ett visst kodord ci i beroende av styrsignalens värde.
En skalenhet 114 skalar kodordet från kodboken 112 på lämpligt sätt och det skalade kodordet tillförs minusingången av en summator 115, vars plusingång mottar prediktivresten dk från analysatorn 110. Prediktivresten som tillförs summatorn 115 är här betecknad dkl och den rest som fås efter summatorn 115 är 508 788 ll Prediktivparametrarna ak (oförändrade från och den nya prediktionsresten dk2 tillförs betecknad dk2. analysatorn 110) excitationsprocessorn 120 enligt figur 4.
Styrsignalen till väljaren 113 härleds från en slinga innefattan- de ett adptivt filter 116 med filterparametrarna ak, ett 'viktningsfilter 117 samt en extremvärdesbildare 118. Restsignalen dk2 tillförs filtret 116 och den filtrerade signalen viktas i filtret 117.
Ett första valt kodord ger en prediktivrest dk2 som filtreras och viktas i filtren 116,11? och det minsta kvadratiska felet E bildas i extremvärdesbildaren 118. Ovanstående görs för samtliga utvalda kodord och det kodord som gav det minsta felet sub- traheras efter skalning i 114 från restsignalen dkl för att ge en ny restsignal dkz. Detta är s k "closed loop" sökning av det bästa kodordet i det fall att adaptiv kodbok användes. Kretsen enligt figur 5 kan således användas eller ej användas vid metoden enligt föreliggande uppfinning. Den ger ett förbättrat värde på prediktionsrestern dk enligt figur 1. I figur 4 är således om adaptiv kodbok ej användes, och om adaptiv kodbok användes. du = *in dk = du: Såsom det skall beskrivas i samband med figur 9, används även kretsen enligt figur 5 i vissa block (132a-d) för att söka felet "closed loop" men kodboken ersätts då med ett minnesutrymme för att lagra endast en med restriktioner beräknad pulsuppsättning.
Prediktivparametrarna ak och index i för de kodord oi som utvalts (minsta felet) avges till multiplexorn 135 och sänds på känt sätt.
Förfarandet enligt uppfinningen skall nu närmare beskrivas med hänvisning till figur 6.
Vid start av pulsutsättningen bestäms först ett antal j ex- citationspulser medelst den kända metoden utan restriktioner, 508 788 12 block 1. Beräkningen av dessa sker således på känt sätt som beskrivet ovan. Både pulspositionerna mp (lgpgj) och amplituderna Amp inom ramen bestäms på detta sätt. Amplituden Amp för dessa behöver dock ej användas vid bestämningen med restriktioner, eftersom var och en av de enligt ovan beräknade pulspositionerna fortsättningsvis används, varvid amplituden ej är av intresse. I en alternativ' metod. med fasjustering av startpulserna måste emellertid även amplituderna användas (om inte dessa beräknas på nytt).
Då antalet j st pulspositioner mp (p = 1, ...,j) bestämts på detta sätt startas beräkningen av excitationspulser enligt den kända metoden med restriktioner, block 2. Både pulsposition mp och amplituden Amp hos varje excitationspuls bestämmes och enligt den kända metoden beskriven ovan. Man startar därvid med utgångspunkt från positionen mi (lsisj) hos en godtycklig excitationspuls som bestämts enligt block 1 (utan restriktioner) inom samma ram. Beräkningen av de nya excitationspulserna (med restriktioner enligt kända metoden) görs för ett visst antal, N1.
Efter detta första beräkningssteg med restriktioner (block 2) väljes positionen mk (k=i) för en ny excitationspuls beräknad enligt den kända metoden utan restriktioner (block 1) och därefter utförs samma beräkningsrutin med restriktioner som ovan nämnts för det första beräkningssteget även för detta andra beräkningssteg, block 3 i figur 6, men nu med start från en annan position mk (15k5j; k=i). Beräkningen görs för ett visst antal N2 excitationspulser, där emellertid N2 kan vara = N1.
Beräkningsstegen medelst den kända metoden med restriktioner fortsättes därefter ett antal gånger fram till sista steget, block 4 i figur 6. Antalet L sådana steg behöver ej vara lika med det antal positioner j=P för excitationspulserna, som erhölls enligt metoden utan restriktioner (block 1). lämpligt att avbryta efter ett mindre antal steg om talkvalitën Det kan vara kan bli acceptabel, varvid beräkningarna blir färre. Det kan även vara lämpligt för att förbättra noggrannheten att tillhandahålla çn CD OO \'l O) OO 13 flera startpositioner än det ursprungliga antalet positioner P för excitationspulserna beräknade utan restriktioner. Det resulterande antalet positioner blir då L=P+Pextra, där Pextra är de positioner som tillkommit. Detta skall närmare visas i figur 7.
För att reducera komplexiteten i de efterföljande pulssökningarna med restriktioner kan de ovan nämnda resulterande pulspositio- nerna L = P + Pextra användas för att ytterligare lägga restrik- tioner på vilka pulser som skall tillåtas. Man kan alltså förbjuda de faslägen fp (p=1,...,j), som ligger långt ifrån de pulspositioner som beräknats utan restriktioner.
Enligt figur 6 avbrytes pulsutsättningen enligt metoden med restriktioner efter ett visst antal steg (N1 steg med start från puls pl, N2 steg med start från puls p2 etc). Efter detta har man erhållit L st. pulsuppsättningar från var och en av de ursprung- ligen beräknade positionerna (utan restriktioner) inklusive ev. extra positioner Pextra. Man undersöker därefter, block 5, vilken av de L uppsättningarna som skall användas i enlighet med ett visst kriterium. Den uppsättning pulser som bäst uppfyller kriteriet.bibehålles medan övriga förkastas. Hur detta kriterium, s k "closed loop" bildas, förklaras närmare i samband med blockschemat enligt figur 9, som visar fallet L = 4.
Den uppsättning pulser (Amp,mp, p=1,2,...,i,k,r) med restriktio- ner som därvid utvalts bildar de slutliga excitationspulserna för den ramen och motsvarande värden på fasläge och faslägesposition utsändes till mottagaren. De positioner (mp, p=1,...,j) som från början beräknats utan restriktioner överförs ej.
En algoritm för beräkningsstegen enligt ovan är visad i Appendix Figur 7 visar ett diagram över excitationspulser och extrapulser som är beräknade utan restriktioner samt de pulsuppsättningar, som är beräknade med restriktioner. Pulserna P1,P2,P3 och P4 är 508 788 14 de excitationspulser, som beräknats enligt den ursprungliga kända metoden (block 1,figur 6). Dessa pulser har faslägena n1,n2,n3 resp. n4. Utöver dessa pulser beräknas i detta fall ytterligare två pulspositioner Pel och Pe2 med faslägena n5 och n6 enligt samma kända metod. Faslägena nl-n6 ger alltså startpositionerna för beräkning av ett antal L = 6 pulsuppsättningar beräknade enligt den kända metoden med restriktioner (block 2-4,figur 6).
Man får två "extra" pulsuppsättningar som kan ingå vid test av "bästa" pulsuppsättning enligt ovannämnda kriterium. I figur 7 har startpulsen i resp. pulsuppsättning' markerats med tjock heldragen linje med en fyrkant, medan de beräknade pulserna i resp pulsuppsättning är markerade med streckade linjer och en ring.
De olika pulsuppsättningarna beräknade med restriktioner hörande till samtliga startpulser P1-P4 och extrapulser Pe1,Pe2 testas därefter enligt kriteriet "closed loop". Den pulsuppsättning som därvid var "bäst" dvs den som hade det minsta felet utväljs och överförs. Övriga pulsuppsättningar används ej för den aktuella râlllen .
Som alternativ till ovanstående beräkning av excitationspulsernas lägen kan man justera faslägena för excitationspulserna beräknade utan restriktioner med hänsyn till restriktionerna. Man väljer faslägena fp för den uppsättning som var den bästa enligt ovannämnda kriterium.
För varje startpuls av de totalt beräknade startpulserna utan restriktioner i en ram definieras ett sökområde som utgörs av ett tidsintervall av betämd storlek kring startpulsens position i ramen. Därefter beräknas, med utgångspunkt för var och en av startpulserna, en pulsuppsättning med restriktionen att ingen av de beräknade pulsernas positioner får ligga utanför sökområdet.
Man får då förutom positionen hos den aktuella startpulsen även ett litet antal positioner för de pulser som ligger inom sökområdet för de övriga startpulserna. Detta upprepas för var och en av de övriga startpulserna. Man får som resultat ett antal 508 788 pulsuppsättningar där, i var och en, en puls alltid motsvarar den exakta positionen för resp. startpuls och där övriga pulsers positioner ligger inom resp. sökområdet för övriga startpulser.
Förutom ovannämnda restriktion vid pulsutsättningen läggs ytterligare restriktioner på kodningen av de olika erhållna pulspositionerna mp. Detta villkor läggs på de olika enligt ovan testade positionerna innan testen "closed loop" utförs. Kodre- striktionen innebär att vissa s k kodbara vektorer utväljs där 'varje vektor svarar' mot en pulsuppsättning beräknad med restriktioner enligt ovan.
Generellt gäller att positionerna n (0$n5N) i den totala sökvek- torn, som innehåller N positioner, är n = nf'F + f ; där f = pulsfasläget inom ett subblock (faslägesposition) nf och F = antalet faslägen inom blocket nf.
Man pålägger nu restriktionen att pulsfasläget för alla positio- ner i en viss pulsuppsättning (vektor) skall vara olika för de vektorer som utvalts. Övriga förkastas.
Samtliga de så erhållna vektorerna anses kodbara och testas därefter "closed loop", varvid värdena på den "bästa" pulsupp- sättningens faslägen relativt var och en av startpulsernas positioner överförs till mottagaren.
För att bibehålla komplexiteten vid beräkningarna och testerna oförändrad kan man ställa upp och utnyttja en lista över de olika kandidaterna i fallande ordning med hänsyn till totala fasläges- justeringen, varvid den kandidat som var "näst bäst" i en test undersöks först i nästa test osv. för en hel ram.
En algoritm för ovannämnda faslägesjustering framgår av bifogade Appendix 2. 508 788 16 Figur 8 visar ett diagram som åskådliggör ovan beskrivna faslägesjustering av de excitationspulser som tagits fram utan restriktioner enligt ovan. Figur 8a) visar de excitationspulser Pl,P2,P3 Och P4, motsvarar pulserna P1-P4 som visats i figur 7 överst. som erhållits utan restriktioner och som För varje startpuls P1-P4 av de totalt beräknade startpulserna utan restriktioner i en ram definieras ett sökområde S1,S2,S3,S4 som utgörs av ett tidsintervall kring startpulsens position i ramen, figur Bb). Pulspositioner utanför vart och ett av dessa sökområden är icke-tillåtna pulspositioner och utgör således restriktionen. sökområde finns ett mindre antal tillåtna pulspositioner. Exempelvis finns de två pulspositioner som utgörs av de som ligger närmast den pulsposition mi som beräknats utan restriktioner. Man .beräknar' därför ett antal pulsuppsättningar som kan bildas ur dessa kring varje start- pulsposition tillåtna "sidopositioner".
Inom resp.
Figur 8c) visar en pulsuppsättning som är beräknad med pulsen Pl som startpuls, varvid man har bildat ytterligare tre puloor genom att två, P2 och P4, har ett stegs fasavvikelse räknat frin den till dessa senare startpulsers ursprungliga positioner, nedan den tredje P3 inte har givits någon fasavvikelse från sin tillhörande startpulsposition enligt exemplet. Detta ger ett totalt fasskift =2.
Figur 8d) visar med utgångspunkt från startpulsen P2 hur två pulser, P0 och P4, har förskjutits ett steg till vänster från sina tillhörande startpulspositioner och den fjärde pulsen P1 förskjutits ett steg till höger. Detta ger ett totalt fasskift =3.
Figur 8e) visar med utgångspunkt från startpulsen P4 hur två pulser, P2 och P3, har förskjutits ett steg till höger från sina tillhörande startpulspositioner och den första pulsen P1 för- skjutits ett steg till höger från sin tillhörande startpulsposi- tion. Även detta ger ett totalt fasskift = 3. 17 Följande tabell kan därvid uppställas: Som exempel tas endast två startpulspositioner, vilka har ordningsnumren 2 och 5 och där fpl, fP2 nedan har beräknas enligt sambandet sid 9, rad 20 med F=3.
TABELL 1 Pulsposition mp skift fpl fpz kodbar? Startpuls- position 2 5 0 2 2 Nej 6 1 2 3 Ja skiftade 2 4 1 Ja versioner 1 5 1 1 2 Ja av 1 6 2 Ja start- 1 4 2 1 1 Nej puls- 3 5 1 3 2 Ja positio- 3 6 2 3 3 Nej ner. 3 4 2 3 l Ja Generellt gäller att inte något av faslägena fp får vara lika för kodbarhet, dvs. fpl =I= fpz. Om flera startpulslägen mp används, dvs p 2 3 för beräkningen gäller att fpl + fpz # fP3 $ fp4 ... för en och samma pulsuppsättning.
De erhållna kodbara pulsuppsättningarna jämförs därefter som ovan nämnts "closed loop" och fasvärdena för den "bästa" kodbara uppsättningen överförs. Pulserna amplitud Am kan tas från amplitudvärdet på den startpuls man utgår ifrån i resp. pulsupp- sättning eller också kan de beräknas igen, för att ta hänsyn till fasändringen hos resp. beräknad puls.
Värdena på faslägen fp och faslägespositionerna nfp för den "bästa" kodbara uppsättningen överförs. 508 788 18 Figur 9 visar ett blockschema över en del av en talkodare som utnyttjar metoden enligt uppfinningen.
Blocket 125 representerar liksom i figur 4 en korrelations- generator, som bildar storheten Ciq =(QU,a¿) representerande korrelationen mellan signalerna y och y^. Därefter följer excitationsgeneratorn 127 som väljer ut amplitud Amp och pulsfasläge mp hos den excitationspuls som gav den bästa korrelationen (=minsta kvadratiska medelfelet) av i kandidater.
Sammanlagt I korrelationer utförs innan positionen och amplituden för en viss excitationspuls bestämmes. I det förut kända utförandet följde efter excitationsgeneratorn 127 en fasläges- generator (129, figur 4). I figur 9 är istället en minnesenhet 126 ansluten. Denna minnesenhet lagrar de utvalda excitations- pulsernas amplitud Amp och faslägen mp (p=1,...,j) som erhållits enligt metoden utan restriktioner (block l,figur 6).
Efter minnesenheten 126 följer en väljarenhet vilken i figur 9 symboliserats av blocket 128a och en styrbar' kontakt 128b.
Väljarenheten 128a styr kontakten 128b att avsöka ett antal grenar för att förbinda en viss gren till minnesenheten 126 så att en viss position mp (p=1,...,j) lagrad i minnesenheten 126 kan utgöra startvärde enligt ovan, block 2, figur 6.
Den i figuren visade översta grenen (a) innehåller en excitationsgenerator 127a av samma utförande som excitations- generatorn 127; en faslägesgenerator 129a av samma utförande som fasläges- generatorn 129 enligt figur 4 och som har en återkoppling till excitationsgeneratorn 127a för uppdatering, jfr figur 4; en lagringsenhet 130a, samt en beräkningsenhet 132a för beräkning av felet El "closed loop" enligt ovan och som således har samma funktion som kretsen enligt figur 5 men utan kodbok. Istället för kodboken finns ett minne i vars positioner värdena på tillhörande pulsuppsättning'g_beräknad med restriktioner i enheterna 127a, 129a och 13oa kan lagras.
Prediktivresten du tillförs enheten 132a om adaptiv kodbok ._30 (F C) 00 § \É 00 19 används, i annat fall tillförs prediktivresten dkl. Dessutom tillförs prediktivparametrarna ak. Övriga grenar (b),(c), och (d) innehåller motsvarande enheter som gren (a). Varje gren innehåller således enheter, som kan utföra positionsbestämning enligt metoden med restriktioner. Varje gren ger sålunda en pulsuppsättning beräknad med restriktioner, dvs sammanlagt fyra pulsuppsättningar (jfr figur 7) med restriktioner utförs enligt figur 9 utgående från fyra startvärden mp hämtade Om fler startvärden än fyra skall Likaledes från minnesenheten 126. utnyttjas utökas givetvis enheterna 132b,132c och 132d för att lagra tillhörande pulsupp- sättning från grenarna (b),(c) resp. (d) och för beräkning av felet "closed loop" E2, E3 resp E4. antalet grenar. finns Väljarenheten 128a styr kontakten 128b till den översta grenen (a) och ger de från pulssökningen utan restriktioner (block 1, figur 6) redan upptagna positionerna mp (p=1,...,j) till ex- citationsgeneratorn 127a. Denna mottar även. det uppdaterade värdet (Cij,a¿) från korrelationsgeneratorn efter nämnda pulssök- ning utan restriktioner. Excitationsgeneratorn 127a och fasläges- generatorn 129a kan nu utföra en pulssökning med restriktioner med start från en viss position 1, eftersom dessa enheter vet vilka positioner som redan är upptagna. Resultatet efter ett visst antal sökningar ger ett antal excitationspulser, vilkas amplitud Amp och pulsposition mp lagras i enheten 130a. I detta fall lagras fasläget fp och faslägespositionen nfp istället för pulspositionen mp.
Därefter framstegas kontakten 128b av väljarenheten 128a till excitationsgeneratorn 127b i gren (b) och pulssökning med start från ett andra startvärde med positionen m2 påbörjas av nästa gren (b). Detta sker på samma sätt som för gren (a) enligt ovan och på samma sätt sker därefter pulssökning i grenarna (c) och (d). Samma värde på Cij matas till alla grenarna från början av pulssökningen, eftersom detta värde används vid prövning av de i 508 788 "kandidaterna" vid sökning av den bästa excitationspulsen (med restriktioner).
Efter ett visst antal parallella steg M har samtliga grenar (a) - (d) beräknat sina excitationspulsers amplitud och faslägen/fas- lägespositioner och lagrat dessa i lagringsenheten 134. Därefter utför beräkningsenheterna 132a-132d sina respektive beräkningar av felet mellan inkommande talram och den syntetiserade talramen i enlighet med använda kodord och de framtagna excitationspulser- na från respektive gren. Den inkommande talsignalen tillförs därför var och en av enheterna 132a-132d. Var och en av dessa enheter beräknar det s k slutna slingfelet ("closed loop error") och avger värdet E1,E2,E3 resp.E4 på felet som utsignal. Man kan exempelvis välja det kvadratiska viktade felet E==Zíew(n)2 , där ew(n) är skillnaden mellan inkommande (verklig) Éälsignal och syntetiserad talsignal för värdena y(n) och y^(n) inom talramen.
Funktionen hos beräkningsenheterna 132a-132d är samma om adaptiv kodbok ej används och beräkningen av felet El-E4 sker på samma sätt.
En väljarenhet l33a med tillhörande kontakt 133b känner av de olika beräknade värdena E1,E2,E3 och E4 på felet hos de olika pulsuppsättningarna och avger dessa värden ett och ett till en lagringsenhet 134. Denna enhet mottar värdena ett efter ett, väljer ut och sparar ett inkommande värde om detta är "bättre" dvs är ett mindre fel E än det närmast föregående värdet.
Samtidigt som enheten 134 mottar värdena El-E4 registrerar den vilket värde som är minst, dvs den pulsuppsättning som är "bäst".
Efter det den "bästa "pulsuppsättningen sålunda identifierats,- hämtar lagringsenheten 134 värdena på amplitud Amp, fasläge fp och faslägesposition nfp för denna "bästa" pulsuppsättning. Dessa värden fås via en av förbindelserna till resp lagringsenhet 130a- 130d, och dessa värden avges därefter till kodaren 131.
Denna är ansluten till en multiplexor 135 såsom det framgår av figur 1. «\ 21 Kodaren 131 mottar således storheter-na: amplituden Amp och faslägena/faslägespositionerna fp,nfp för de "bästa" excitations- pulserna framtagna med restriktioner. De erhållna faslägena fl, . . . , fp faslägespositionerna nn, . . . , nf utsändning. Det väsentliga är att faslägena och faslägespositio- nerna kodas i skilda meddelandeord. Detta ger bättre åtskillnad och därmed minskad felsannolikhet. kan som ovan nämnts kodas gemensamt och de erhållna kodas var för sig före Figur 10 visar blockschemat enligt figur 9 men modifierat för att utföra fasjusteringen av startpulserna såsom är beskrivet ovan (figur 8). Väljaren 128b jämte efterföljande block 127a-d, 129a- 130a-d har för beräkning av pulspositioner med restriktioner har tagits bort och istället ersatts med en enhet 100 som definierar ovannämnda sökområde för var och en av startpulserna P1-P4 (figur 8). Utanför detta sökområde är det ej tillåtet att placera några excitationspulser och införandet av sökområdet kring varje startpuls och tillhörande beräkning kan därför sägas ersätta förut använda beräkningen med restriktioner enligt figur 9.
Enheten 100 beräknar vidare pulspositionerna för det möjliga antalet pulsuppsättningar enligt vad som tidigare beskrivits (Tabellen ovan) och tar fram de möjliga pulsuppsättningarna med hänsyn till kodrestriktionerna. Dessa fås således över utgångarna a,b,c och d och de erhållna pulsuppsättningarna tillförs därefter enheterna 132a-132d, vilka beräknar resp. fel E1,E2,E3 och E4 “closed loop" på det sätt som tidigare beskrivits.
Eftersom något värde på amplituderna hos den pulsuppsättning som utvalts för kodningen i kodaren 131 ej tillfördes enheten 100, tillförs amplitudvärdena Amp hos var och en av pulsuppsätt- ningarna från minnesenheten 126, dels till beräkningsenheterna 132a-132d, dels till lagringsenheten 134.
Vid kodning av faslägena resp. faslägespositionerna kan dessa sammanföras separat, två eller flera i ett meddelandeblock inklusive tillhörande paritetsord på i och för sig känt sätt. Även kodning av ett enda ord för fasläge resp. faslägesposition 508 788 22 med tillhörande paritetsord kan utföras. Fördelen i det förra fallet med flera värden i ett meddelandeord är att man sparar bandbredd men man måste då använda "hårdare" kodning för att få bättre skydd. I det senare fallet med ett enda värde på fasläget eller faslägespositionen kan en enklare kodning med mindre skydd utnyttjas, men man förlorar i bandbredd. För kodningen av fas- lägena kan kombinatorisk kodning användas.
Det är underförstått att figur 9 och 10 endast avser att visa principen för hur tillhörande kretsar i en talkodare kan vara uppbyggda. I verkligheten kan samtliga enheter vara integrerade i en mikroprocessor som är programmerad att utföra funktionerna i enlighet med flödesschemat i figur 6 och bifogade Appendix 1 resp. 2.
Medelst den föreslagna metoden kan talkvalitén förbättras jämfört med den kända metoden med restriktioner och lägre komplexitet.
Eftersom båda de kända metoderna med och utan restriktivitet används kan man välja proportionen mellan antalet beräknade excitationspulser enligt metoden utan resp. med restriktioner och på så sätt få en optimal fördelning som ger lägsta beräknings- komplexitet för en viss önskad talkvalité. Beräkningskomplexite- ten blir väsentligt reducerad jämfört med om man skulle utföra extremvärdesberäkning för alla möjliga positioner inom en talram.
Metoden enligt föreliggande uppfinning är enligt ovan beskriven i samband med en talkodare i vilken utplaceringen av excitations- pulserna utförs en puls åt gången till dess att ett ramintervall har fyllts ut. En annan typ av talkodare beskriven i EP-A.195.487 arbetar med utplacering av ett pulsmönster i vilket tidsavståndet o ta mellan pulserna är konstant 1 stället för en enstaka puls.
Metoden enligt föreliggande uppfinning kan även tillämpas på en sådan talkodare. exempelvis figur 4a, 4b ovan) sammanfaller därvid med pulsernas De förbjudna positionerna i. en ram (jämför lägen i ett pulsmönster. m c: oo ~q oo oo 23 Appendix 1 l or'tm ör beräknin sste en en i t flödessche at fi. r 6.
Modifierade beräkningssteg 1-8 visade i US 5,193,140.
US 5,193,140 är nedan betecknad [2].
Autokorrelationsmatrisen cpij i [2] är nedan betecknad C(i,j) = Cij i beskrivningsdelen. ,¿ Pulspositionerna mp och mq i [2] är här betecknad msp resp msq.
Storheten a¿ i [2] och i beskrivningsdelen är här betecknad a(i) .
Analogt för am i [2] relativt a(m) nedan. l. Calculate the desired signal y(n) 2. Calculate the cross-correlation vector a(i) z-.nd copy to asave(i) 3. Calculate the covariance (or autocorrelation) matrix C(í,i) 4. For p=l to P+extra 4.1 Search for ms , i.e. the pulse position which gives maximum a(í)*a(i)/C(í,i) = a(ms)*a(nis)IC(ms,nzs) in the unoccupied positions. 4.2 Calculate the amplitude Aürtsp) for the discovered pulse position ms, 4.3 Update the cross-eorrelation vector a(i) 4.4 Discard the found position nu, from the possible positions . For q=l to Puxtru .1 Copy asavefi) to a(i) Sllkssignuqthevalueofnu . .3 coioomo mo smptsmao .Jing for mo som; 'puuo position m, .4 Update the eross-oorrelation vector a(i) .5. For p=2 to P .5.1 Search for m, i.e. the pulse position which gives maximum a(i)*a(i)/C(i,j) = q(m)*a(m)/C(na,m) in the unoccupied phases. .5.2 Calculate the amplitude Amp) for the discovered pulse position m, .5.3 Update the cross-conelation vector a(i) .5.4 Exclude the positions with the same phase as m, .6 Calculate closed-loop enor E, _ .7 If the error E is lower than the error for the previously saved set of positions and amplitudes. save the positions m, as mw, and the amplitudes Amp) as AbnwP) 6 Calculatefp and nfi, in accordance with the relationship (l) in [21 for the saved (winning) set of positions mwp . 508 788 24 Appendix 2 Algoritm för faslägesjustering.
Beteckníngar enligt Appendix 1. 1 Calculate the optimal positions ms, and amplitudes Ahnsp) as in step 1 through 4 in the previous section. (A-ffcuålc i 2. Construct the n=((P+extra) over P) combinations of P positions out of the nu, optimal positions. 3.0 For combination; combination, to combination" 3.1. Shake all positions in combination,- around by a shifting each position I step in each direction. If the resulting set of positions are encodable using the restricted positioning code, save them in a list min_shifi_li.st with an ordering in respect to the total phase shift from the unshifted combinatiorq. 4.0 Fo1j=1 to nb_to_test, 4.1 Copy the positions at the top of the min_shifl_list to mv, _ 4.2 Remove the top positions in the list min_shzffi_list 4.3 Copy the amplitudes from A(ms¿,) of the corresponding unshifted combination,- to A(mvp). 4.4 Calculate closed-loop error Ej, using mv, and A(mvp). 4.5 If the error Ej is lower than the error for the previously saved set of positions and amplitudes, save the positions mv, as mwp and the amplitudes A(mv,,) as A(mwp) Calculatefp and n” in accordance with the relationship (1) in [2] for the saved (winning) set of positions mwp .
Claims (6)
1. l.Förfarande att bestämma positionerna inom en talram för ett visst antal (N=j+Nl,N2) excitation spulser i. en lineärprediktiv talkodare i vilken en talsignal, indelad i talramar analyseras och den analyserade talsignalen syntetiseras (110) för att bilda dels en prediktionsrest (dk), (ak), dels ett antal prediktivparametrar viss talra) första metod (ak) varvid för en enligt en prediktivparametrarna tillförs en excitationsprocessor (120), som korrelerar den filtrerade prediktionsresten (dk) med från excitationsprocessorn erhållna och likaledes filtrerade parametrar (Ai,mi) för var och en av de önskade excitationspulserna i beroende av nämnda prediktivparametrar (ak) samt i beroende av nämnda korrelation bestämmer ett visst par (Amp,mp) av de sä erhållna parametrarna som positionsparametrar utan att pàlägga nägra restriktioner avseende utplaceringen av nämnda excitationspulser, och varvid b) enligt en andra metod talramen dessutom indelas i ett antal faslägespositioner (nf) (n), där varje faslägesposition indelas i ett antal faslägen och restriktioner införs innebärande att det fasläge, son\ upptas 'vid. utplacering av en excitationspuls blir förbjudet för varje efterföljande excitationspuls och för varje faslägespostion (nf) inom talramen, k ä n n e t e c k n a t av att man c) utför ett första antal beräkningssteg (j) av excitationspulsernas positioner enligt den första metoden och 10 15 20 25 508 788 26 d) utför ett andra antal beräkningssteg (Nl,N2,...,NL) av excitationspulsernas positioner enligt den andra metoden vart och ett med utgångspunkt från ett av ett antal beräknade positioner (mi,mk,mr) enligt den första metoden, varvid en av ett antal (L) pulsuppsättningar erhålles, samt e) väljer proportionen mellan antalet beräkningssteg (j resp. max[Nl,N2]) enligt den första resp den andra metoden så att minsta beräkningskomplexitet erhålles för en viss given talkvalité.
2. Förfarande att bestämma positionerna inom en talram för ett visst antal (N=j+N1,N2) excitationspulser i en lineärprediktiv talkodare i vilken en talsignal, indelad i talramar analyseras och den analyserade talsignalen syntetiseras (110) för att bilda dels en prediktionsrest (dk), dels ett antal prediktivparametrar (ak), varvid för en viss talram a) enligt en första metod prediktivparametrarna (ak) tillfàrf en excitationsprocessor (120), som korrelerar den filtrerade prediktionsresten (dk) med från excitationsprocessorn erhållna och likaledes filtrerade parametrar (Ai,mi) för var och en av de önskade excitationspulserna i beroende av nämnda pred;ktiv- parametrar (ak) samt i beroende av nämnda korrelation besïummer ett visst par (Amp,mp) av de så erhållna parametrarna som positionsparametrar utan att pàlägga några restriktioner avseende utplaceringen av nämnda excitationspulser, och varvid b) enligt en andra metod talramen dessutom indelas i ett antal faslägespositioner (nf) där varje faslägesposition indelas i ett antal faslägen (n), och restriktioner införs innebärande att det fasläge, som upptas vid utplacering av en excitationspuls blir 10 15 20 25 508 788 27 förbjudet för varje efterföljande excitationspuls och för varje faslägespostion (nf) inom talramen, k ä n n e t e c k n a t av att man a) vid start av utplaceringen av excitationspulserna för en viss talram bestämmes ett antal pulspositioner (mp,p=1, ... ,j) enligt nämnda första metod vilka bäst uppfyller ett visst kriterium (max.[a(i)*a(i)/C(i,j)]) baserat på en korrelation mellan nämnda prediktionsrest (dk) och från excitationsprocessorn erhällna parametrar (Ai,mi); b) efter det att nämnda antal pulspositioner enligt a) beräknats, bestäms medelst utgångsläget för en enligt a) beräknad första pulsposition (ml) ett första antal ytterligare pulspositioner (mp,p=l,...,i) enligt nämnda andra metod; c) upprepar steget enligt b) men med utgångsläget för en enligt steg a) beräknad andra pulsposition (m2) och med ett andra antal ytterligare pulspositioner (mp,p=1,... ,k); d) beräknar vilken av de uppsättningar pulspositioner som erhållits enligt stegen b) och c) bäst uppfyller nämnda kr;:erium, varvid positionerna för den bästa uppsättningen excitationspulser väljes; samt e) väljer proportionen mellan antalet beräkningssteg (j resp. max[Nl,N2]) enligt den första resp den andra metoden så att minsta beräkningskomplexitet erhålles för en viss given talkvalité.
3. Förfarande enligt patentkrav 2, k ä n'n e t e c k n a t av att nämnda första pulsposition (ml) är den först beräknade 10 15 20 25 508 788 28 pulspositionen och nämnda andra pulsposition är den därnäst beräknade pulspositionenhæräknad utan restriktioner.
4. Förfarande enligt patentkrav 2, k ä n n e t e c k n a t av att efter steg c) ytterligare minst ett steg enligt steg c) utförs där vart och ett av det eller de ytterligare stegen utförs med start fràn en tredje, fjärde, osv. pulsposition (mr) var och en beräknad enligt steg a).
5. Förfarande enligt patentkrav 2-4, k ä n n e t e c k n a t av att antalet pulspositioner beräknade enligt nämnda första metod är mindre än det minsta antalet pulspositioner beräknade enligt nämnda andra metod.
6. Förfarande att bestämma positionerna inom en talram för ett visst antal (N=j+Nl,N2) excitationspulser i en lineärprediktiv talkodare i vilken en talsignal, indelad i talramar analyseras och den analyserade talsignalen syntetiseras (dk), (110) för att bilda dels en prediktionsrest dels ett antal prediktivparametrar (ak), varvid för en viss talram a) enligt en första metod prediktivparametrarna tillförs en (ak) excitationsprocessor (120), som korrelerar den filtrerade prediktionsresten (dk) med fràn excitationsprocessorn erhållna och likaledes filtrerade parametrar (Ai,mi) för var och en av de önskade excitationspulserna i beroende av nämnda prediktiv- parametrar (ak) samt i beroende av nämnda korrelation bestämmer ett visst par (Amp,mp) av de sä erhållna parametrarna som positionsparametrar utan att pàlägga nâgra restriktioner avseende utplaceringen av nämnda excitationspulser, och varvid b) enligt en andra metod talramen dessutom indelas i ett antal faslägespositioner (nf) där varje faslägesposition indelas i ett 10 15 20 25 508 788 29 antal faslägen (n), och restriktioner införs innebärande att det fasläge, soul upptas vid. utplacering av en excitationspuls blir förbjudet för varje efterföljande excitationspuls och för varje faslägespostion (nf) inom talramen, c) ett antal pulspositioner (ml,m2,. .mj) för en viss talram bestämmes, vilka bäst uppfyller ett visst kriterium (max.[a(i)- *a(i)/C(i,j)]) utan att pålägga restriktionen att redan upptagna faslägen skall vara förbjudna för efterföljande excitationspulser; d) ett sökområde i form av ett tidsintervall (S1,S2,...) bildas kring ett visst antal av nämnda utan restriktioner beräknade pulspositionerna (ml,m2,...mj), varvid pulspositioner inom varje sökintervall är tillåtna för den fortsatta sökningen; e) ett antal pulsuppsättningar med restriktionen enligt b) bildas med utgångspunkt från varje tillhörande startpuls (mi) beräknad enligt a) utan restriktioner, varvid en eller flera pulser skiftats en eller flera positioner från startpulsernas positioner, så att en kombintion av pulsuppsättningar med från startpulsernas positioner avvikande positioner inom nämnda sökområde erhålles; att f) de pulsuppsättningar som beräknats enligt c) utväljes med ledning av sambandet n = nf.F + f där n är en viss pulsposition inom talramen, nf är ett ordningstal för ett visst subblock i talramen, f är ett fasläge av totalt F faslägen inom subblocket, 508 788 30 varvid f ej får anta samma värde på positionerna hos var och en i nämnda kombination av pulsuppsättningar, samt g) den uppsättning pulspositioner utväljes som erhållits enligt stegen c) och d) och som bäst uppfyller nämnda kriterium.
Priority Applications (15)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9501368A SE508788C2 (sv) | 1995-04-12 | 1995-04-12 | Förfarande att bestämma positionerna inom en talram för excitationspulser |
SE9601070A SE517993C2 (sv) | 1995-04-12 | 1996-03-20 | Förfarande att koda en följd av ett första och ett andra slag av excitationspulsparametrar |
KR1019970707268A KR19980703868A (ko) | 1995-04-12 | 1996-04-10 | 음성프레임내의 여기펄스위치를 결정하는 방법 |
DE69614101T DE69614101T2 (de) | 1995-04-12 | 1996-04-10 | Kodierverfahren für anregungsimpulsparameterfolgen |
CN96194370A CN1186560A (zh) | 1995-04-12 | 1996-04-10 | 一种编码一个激励脉冲参数序列的方法 |
PCT/SE1996/000466 WO1996032713A1 (en) | 1995-04-12 | 1996-04-10 | A method of coding an excitation pulse parameter sequence |
AU53521/96A AU706038B2 (en) | 1995-04-12 | 1996-04-10 | A method of coding an excitation pulse parameter sequence |
CNB961944021A CN1199152C (zh) | 1995-04-12 | 1996-04-10 | 一种确定一个语音帧中激励脉冲位置的方法 |
US08/930,951 US6064956A (en) | 1995-04-12 | 1996-04-10 | Method to determine the excitation pulse positions within a speech frame |
DE69617414T DE69617414T2 (de) | 1995-04-12 | 1996-04-10 | Verfahren zur bestimmung von anregungsimpulspositionen innerhalb eines sprachrahmens |
EP96910279A EP0821824B1 (en) | 1995-04-12 | 1996-04-10 | A method to determine the excitation pulse positions within a speech frame |
AU53520/96A AU703575B2 (en) | 1995-04-12 | 1996-04-10 | A method to determine the excitation pulse positions within a speech frame |
US08/930,952 US5937376A (en) | 1995-04-12 | 1996-04-10 | Method of coding an excitation pulse parameter sequence |
PCT/SE1996/000465 WO1996032712A1 (en) | 1995-04-12 | 1996-04-10 | A method to determine the excitation pulse positions within a speech frame |
EP96910280A EP0820627B1 (en) | 1995-04-12 | 1996-04-10 | A method of coding an excitation pulse parameter sequence |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9501368A SE508788C2 (sv) | 1995-04-12 | 1995-04-12 | Förfarande att bestämma positionerna inom en talram för excitationspulser |
Publications (3)
Publication Number | Publication Date |
---|---|
SE9501368D0 SE9501368D0 (sv) | 1995-04-12 |
SE9501368L SE9501368L (sv) | 1996-11-29 |
SE508788C2 true SE508788C2 (sv) | 1998-11-02 |
Family
ID=20397946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SE9501368A SE508788C2 (sv) | 1995-04-12 | 1995-04-12 | Förfarande att bestämma positionerna inom en talram för excitationspulser |
Country Status (8)
Country | Link |
---|---|
US (2) | US5937376A (sv) |
EP (2) | EP0820627B1 (sv) |
KR (1) | KR19980703868A (sv) |
CN (2) | CN1199152C (sv) |
AU (2) | AU706038B2 (sv) |
DE (2) | DE69617414T2 (sv) |
SE (1) | SE508788C2 (sv) |
WO (2) | WO1996032712A1 (sv) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE508788C2 (sv) * | 1995-04-12 | 1998-11-02 | Ericsson Telefon Ab L M | Förfarande att bestämma positionerna inom en talram för excitationspulser |
JP3166697B2 (ja) * | 1998-01-14 | 2001-05-14 | 日本電気株式会社 | 音声符号化・復号装置及びシステム |
JP3199020B2 (ja) | 1998-02-27 | 2001-08-13 | 日本電気株式会社 | 音声音楽信号の符号化装置および復号装置 |
KR100464369B1 (ko) * | 2001-05-23 | 2005-01-03 | 삼성전자주식회사 | 음성 부호화 시스템의 여기 코드북 탐색 방법 |
US7167476B1 (en) * | 2002-04-12 | 2007-01-23 | Juniper Networks, Inc. | Systems and methods for routing data in a network device |
US8036886B2 (en) * | 2006-12-22 | 2011-10-11 | Digital Voice Systems, Inc. | Estimation of pulsed speech model parameters |
CN101286321B (zh) * | 2006-12-26 | 2013-01-09 | 华为技术有限公司 | 双脉冲激励的线性测编码 |
US8688437B2 (en) | 2006-12-26 | 2014-04-01 | Huawei Technologies Co., Ltd. | Packet loss concealment for speech coding |
US11270714B2 (en) | 2020-01-08 | 2022-03-08 | Digital Voice Systems, Inc. | Speech coding using time-varying interpolation |
US11990144B2 (en) | 2021-07-28 | 2024-05-21 | Digital Voice Systems, Inc. | Reducing perceived effects of non-voice data in digital speech |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3624302A (en) * | 1969-10-29 | 1971-11-30 | Bell Telephone Labor Inc | Speech analysis and synthesis by the use of the linear prediction of a speech wave |
US3740476A (en) * | 1971-07-09 | 1973-06-19 | Bell Telephone Labor Inc | Speech signal pitch detector using prediction error data |
US4472832A (en) * | 1981-12-01 | 1984-09-18 | At&T Bell Laboratories | Digital speech coder |
NL8302985A (nl) * | 1983-08-26 | 1985-03-18 | Philips Nv | Multipulse excitatie lineair predictieve spraakcodeerder. |
US4701954A (en) * | 1984-03-16 | 1987-10-20 | American Telephone And Telegraph Company, At&T Bell Laboratories | Multipulse LPC speech processing arrangement |
NL8500843A (nl) * | 1985-03-22 | 1986-10-16 | Koninkl Philips Electronics Nv | Multipuls-excitatie lineair-predictieve spraakcoder. |
US4944013A (en) * | 1985-04-03 | 1990-07-24 | British Telecommunications Public Limited Company | Multi-pulse speech coder |
JPH0782359B2 (ja) * | 1989-04-21 | 1995-09-06 | 三菱電機株式会社 | 音声符号化装置、音声復号化装置及び音声符号化・復号化装置 |
SE463691B (sv) * | 1989-05-11 | 1991-01-07 | Ericsson Telefon Ab L M | Foerfarande att utplacera excitationspulser foer en lineaerprediktiv kodare (lpc) som arbetar enligt multipulsprincipen |
US5754976A (en) * | 1990-02-23 | 1998-05-19 | Universite De Sherbrooke | Algebraic codebook with signal-selected pulse amplitude/position combinations for fast coding of speech |
JP2746039B2 (ja) * | 1993-01-22 | 1998-04-28 | 日本電気株式会社 | 音声符号化方式 |
JP2970407B2 (ja) * | 1994-06-21 | 1999-11-02 | 日本電気株式会社 | 音声の励振信号符号化装置 |
SE508788C2 (sv) * | 1995-04-12 | 1998-11-02 | Ericsson Telefon Ab L M | Förfarande att bestämma positionerna inom en talram för excitationspulser |
-
1995
- 1995-04-12 SE SE9501368A patent/SE508788C2/sv not_active IP Right Cessation
-
1996
- 1996-04-10 AU AU53521/96A patent/AU706038B2/en not_active Expired
- 1996-04-10 DE DE69617414T patent/DE69617414T2/de not_active Expired - Lifetime
- 1996-04-10 EP EP96910280A patent/EP0820627B1/en not_active Expired - Lifetime
- 1996-04-10 CN CNB961944021A patent/CN1199152C/zh not_active Expired - Lifetime
- 1996-04-10 US US08/930,952 patent/US5937376A/en not_active Expired - Lifetime
- 1996-04-10 CN CN96194370A patent/CN1186560A/zh active Pending
- 1996-04-10 DE DE69614101T patent/DE69614101T2/de not_active Expired - Lifetime
- 1996-04-10 WO PCT/SE1996/000465 patent/WO1996032712A1/en active IP Right Grant
- 1996-04-10 AU AU53520/96A patent/AU703575B2/en not_active Expired
- 1996-04-10 KR KR1019970707268A patent/KR19980703868A/ko active IP Right Grant
- 1996-04-10 US US08/930,951 patent/US6064956A/en not_active Expired - Lifetime
- 1996-04-10 WO PCT/SE1996/000466 patent/WO1996032713A1/en active IP Right Grant
- 1996-04-10 EP EP96910279A patent/EP0821824B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
AU5352096A (en) | 1996-10-30 |
AU706038B2 (en) | 1999-06-10 |
EP0821824B1 (en) | 2001-11-28 |
EP0820627A1 (en) | 1998-01-28 |
EP0820627B1 (en) | 2001-07-25 |
US6064956A (en) | 2000-05-16 |
KR19980703868A (ko) | 1998-12-05 |
DE69614101D1 (de) | 2001-08-30 |
DE69614101T2 (de) | 2002-03-14 |
CN1199152C (zh) | 2005-04-27 |
DE69617414D1 (de) | 2002-01-10 |
SE9501368D0 (sv) | 1995-04-12 |
WO1996032712A1 (en) | 1996-10-17 |
AU703575B2 (en) | 1999-03-25 |
AU5352196A (en) | 1996-10-30 |
SE9501368L (sv) | 1996-11-29 |
US5937376A (en) | 1999-08-10 |
CN1186560A (zh) | 1998-07-01 |
WO1996032713A1 (en) | 1996-10-17 |
DE69617414T2 (de) | 2002-08-01 |
EP0821824A1 (en) | 1998-02-04 |
CN1186561A (zh) | 1998-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR0143076B1 (ko) | 다중-요소 신호 코딩 방법 및 장치 | |
DK172571B1 (da) | Kodning af tale | |
KR0127901B1 (ko) | 음성 인코딩 장치 및 그 방법 | |
EP0815554B1 (en) | Analysis-by-synthesis linear predictive speech coder | |
DE68922134T2 (de) | Überträgungssystem für codierte Sprache mit Codebüchern zur Synthetisierung von Komponenten mit niedriger Amplitude. | |
SE467429B (sv) | Talprocessor foer aastadkommande av talmeddelande | |
SE508788C2 (sv) | Förfarande att bestämma positionerna inom en talram för excitationspulser | |
SE463691B (sv) | Foerfarande att utplacera excitationspulser foer en lineaerprediktiv kodare (lpc) som arbetar enligt multipulsprincipen | |
KR100416362B1 (ko) | Celp 인코딩/디코딩 방법 및 장치 | |
US7302387B2 (en) | Modification of fixed codebook search in G.729 Annex E audio coding | |
KR100371977B1 (ko) | 음성처리를위한개선된코드북검색방법 | |
CA2129161C (en) | Comb filter speech coding with preselected excitation code vectors | |
JPH1097294A (ja) | 音声符号化装置 | |
SE517993C2 (sv) | Förfarande att koda en följd av ett första och ett andra slag av excitationspulsparametrar | |
EP0903729B1 (en) | Speech coding apparatus and pitch prediction method of input speech signal | |
EP0645697B1 (en) | Minimum shift data arranging method and apparatus | |
JPH07271397A (ja) | 音声符号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NUG | Patent has lapsed |