SE517993C2 - Excitation pulse position determination method for speech frame - Google Patents

Excitation pulse position determination method for speech frame

Info

Publication number
SE517993C2
SE517993C2 SE9601070A SE9601070A SE517993C2 SE 517993 C2 SE517993 C2 SE 517993C2 SE 9601070 A SE9601070 A SE 9601070A SE 9601070 A SE9601070 A SE 9601070A SE 517993 C2 SE517993 C2 SE 517993C2
Authority
SE
Sweden
Prior art keywords
positions
pulse
excitation
phase
speech
Prior art date
Application number
SE9601070A
Other languages
Swedish (sv)
Other versions
SE9601070D0 (en
SE9601070L (en
Inventor
Tor Bjoern Minde
Original Assignee
Ericsson Telefon Ab L M
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from SE9501368A external-priority patent/SE508788C2/en
Application filed by Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Priority to SE9601070A priority Critical patent/SE517993C2/en
Publication of SE9601070D0 publication Critical patent/SE9601070D0/en
Publication of SE9601070L publication Critical patent/SE9601070L/en
Publication of SE517993C2 publication Critical patent/SE517993C2/en

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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

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)

Abstract

The method involves calculating positions of excitation pulses in several calculation stages in accordance with a first method. The positions of the excitation pulses in several calculation steps are calculated in accordance with a second method. Each stage has a starting point from one of several positions (mi,mk,mr) calculated in accordance with the first method to obtain one of the pulse placements. The proportion between the number of calculation stages is chosen according to the first and second methods respectively to obtain the least complexity for a certain speech quality.

Description

-|.,| ø | u | ao 517 993 šïïíïfï ._:I- " 2 och fasläge (tidsläge) i beroende av dels prediktivparametrarna ak, mönstret och. talkopian. dels i beroende av prediktionsresten dk mellan talingångs- Var och en av pulserna får påverka talmönsterkopian så att prediktionsresten blir så liten som relativt låg bithastighet och, kan. därför kodas och överföras smalbandigt förbättrad möjligt. De alstrade excitationspulserna har liksom prediktivparametrarna. Härigenom fås en kvalitet hos den återskapade talsignalen. - |., | ø | u | ao 517 993 šïïíïfï ._: I- "2 and phase mode (time mode) depending on the predictive parameters ak, the pattern and the speech copy. partly depending on the prediction remainder dk between speech input- Each of the pulses may affect the speech pattern copy so that the prediction remainder becomes so small as a relatively low bit rate and, therefore, can be coded and transmitted narrowly improved as possible.The generated excitation pulses have like the predictive parameters, thereby obtaining a quality of the recovered speech signal.

I ovannämnda kända förfarande alstras excitationspulserna inom att vikta restsignalen dk och återkoppla och vikta de alstrade värdena för varje ramintervall hos talingångsmönstret genom excitationspulserna Därefter i vardera ett prediktivfilter. utförs en korrelation mellan utsignalerna från de båda filtren och en maximering av korrelationen för ett antal signalelement ur 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.In the above-mentioned known method, the excitation pulses are generated within weighting the residual signal dk and feedback and weighting the generated values for each frame interval of the speech input pattern through the excitation pulses Then in each a predictive filter. a correlation is performed between the output signals from the two filters and a maximization of the correlation of a number of signal elements from the correlated signal, in order to form the parameters of the excitation pulses (amplitude and phase position). The advantage of this multipulse algorithm for generating the excitation pulses is that you are able to generate different types of sounds with a small number of pulses (for example 8 pcs / frame interval). The pulse search algorithm is general with respect to the pulse placements in the frame. It is possible to recreate non-toning sounds (consonants), which generally require randomly placed pulses and toning sounds (vowels) that require a more cohesive pulse placement.

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).These known methods calculate the correct phase positions of the excitation pulses within a frame and subsequent frames of the speech signal and the placement of the pulses is done only in depending on a complex treatment of the speech signal parameters (prediction residue, residual signal and excitation pulse parameters in the previous frame).

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 . 1 » o n nu . . I | .n 517 993 3 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.A disadvantage of the original pulse placement methods according to the above-mentioned US patent is that the coding performed after calculation of the pulse positions is complex in terms of calculations and storage. It also requires a large number of bits per pulse position in the frame interval. In addition, the bits of the codewords obtained from the optimal combinatorial pulse coding algorithms are. 1 »o n nu. . I | .n 517 993 3 bit error sensitive. A bit error in the codeword during the transmission from the transmitter to the receiver can have fatal consequences on the pulse placement during decoding in the receiver.

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.To remedy this, restrictions can be imposed on how many excitation pulses need to be exposed within each speech frame. This is possible due to the fact that the number of pulse positions for the excitation pulses within a frame interval is so large that one can waive an exact placement of one or more excitation pulses within the frame and still obtain an acceptable quality of the recovered speech signal after coding and transmission. .

Det har därför föreslagits, se US-patentet 5,193,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.It has therefore been proposed, see U.S. Patent 5,193,140, a method according to which certain phase position limitations in the placement of the pulses are introduced by prohibiting a certain number of already determined phase positions for the pulses following the phase position of an already calculated excitation pulse. When the position of a first pulse within the frame has been calculated and when this has been placed in the calculated phase position, this phase position is prohibited for subsequent pulses within that frame.

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.This rule preferably applies to all heart rate placements within the framework. When the deployment for a new subsequent frame is to begin, all positions within the frame are again vacant.

På senare tid har föreslagits att använda s k kodböcker i talkodare vid alstrande av den syntetiska talsignalen, se En sådan kodbok lagrar ett antal kodord för talsignalen som används vid skapande av den exempelvis US-patentet 4,701,954. syntetiska talkopian. dvs innehålla Kodboken därvid vara fix, 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.Recently, it has been proposed to use so-called codebooks in speech encoders in generating the synthetic speech signal, see Such a codebook stores a number of codewords for the speech signal which are used in the creation of, for example, U.S. Patent 4,701,954. synthetic speech copy. ie contain the Codebook thereby be fixed, fixed codewords or be adaptive, ie. it can be updated as the speech copy is formed. You can also use a combination of a fix and an adaptive codebook.

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 1 | n o n n.DESCRIPTION OF THE INVENTION The above method of prohibiting all phase modes within a speech frame, of which a mode has already been assigned an excitation pulse leads to a more limited number of transmitted excitation pulses than if 1 | n o n n.

Mm: n n e . »u n 517 993 4 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.Mm: n n e. »U n 517 993 4 the restriction is not used. In addition, it is possible to more easily encode the phase modes for the excitation pulses in the transmission side, and to better distinguish the phase modes when decoding in the receiver side.

Enligt föreliggande uppfinning kodas således de mest känsliga faslägespositionerna var för sig och de mindre känsliga faslägena kodas gemensamt.Thus, according to the present invention, the most sensitive phase position positions are coded separately and the less sensitive phase positions are coded together.

Förfarandet enligt uppfinningen är därvid kännetecknat så som det framgår av patentkravets 1 kännetecknande del.The method according to the invention is then characterized as appears from the characterizing part of claim 1.

Fördelaktiga utföringsformer av kodningsmetoden enligt patent- kravet 1 är kännetecknad så som det framgår av patentkraven 2-3.Advantageous embodiments of the coding method according to claim 1 are characterized as it appears from claims 2-3.

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 Ikodböcker enligt ovan. Förfarandet. kan emellertid även tillämpas på en s k RPE-talkodare i vilken flera excitationspulser samtidigt utplaceras i ramintervallet.The proposed method can be applied to a speech encoder operating according to the multipulse principle with correlation of an original speech signal and an impulse response of an LPC synthesized signal and with or using Icode books as above. The procedure. however, it can also be applied to a so-called RPE speech encoder in which several excitation pulses are simultaneously placed in the frame interval.

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 där förfarandet enligt uppfinningen tillämpas; figur 5 visar ett blockschema över en del av en känd talkodare med adaptiv kodbok i vilken metoden enligt uppfinningen kan tillämpas; « e e o ao .wwøn ~ n | . u: u n 517 993 figur 6 är ett flödesschema för att förklara bestämningen av pulspositioner; figur 7 är ett diagram som visar pulsutsättningen; figur 8 är ett diagram som visar pulsutsättning medelst fasläges- justering; figurerna 9-10 visar blockscheman över en del av en talkodare i vilken det föreslagna kodningsförfarandet tillämpas.LIST OF FIGURES The proposed method will be described in more detail with reference to the accompanying drawings, in which Figure 1 shows a simplified block diagram of a known LPC speech encoder; Figure 2 shows a timing diagram of certain signals appearing in the speech encoder of Figure 1; Figure 3 shows a diagram of a speech frame for explaining the principle of the prior art method of restrictiveness in determining the excitation pulses; Figure 4 shows a block diagram of a part of a speech encoder where the method according to the invention is applied; Figure 5 shows a block diagram of a part of a known speech encoder with adaptive codebook in which the method according to the invention can be applied; «E e o ao .wwøn ~ n | . Figure 6 is a flow chart for explaining the determination of pulse positions; Figure 7 is a diagram showing the pulse exposure; Figure 8 is a diagram showing pulse exposure by phase position adjustment; Figures 9-10 show block diagrams of a portion of a speech encoder in which the proposed coding method is applied.

UTFöRINGsFoRMER Ett förenklat blockschema av en känd LPC-talkodare enligt multipulsprincipen med korrelation är visad i figur 1. En sådan kodare är i detalj beskriven i USA-patentet 4.472.832 (SE-B- 456618). uppträder vid en mikrofon 110.EMBODIMENTS A simplified block diagram of a known LPC speech encoder according to the multipulse principle with correlation is shown in Figure 1. Such an encoder is described in detail in U.S. Patent 4,472,832 (SE-B-456618). appears at a microphone 110.

Prediktionsanalysatorn 110 innehåller förutom analog-digitalom- En analog talsignal från exempelvis ingången till en prediktionsanalysator vandlare en LPC-dator och en restsignalgenerator, vilka bildar prediktivparametrar ak och en restsignal dk. Prediktivpara- metrarna karakteriserar den syntetiserade signalen resp. den ursprungliga talsignalen över analysatorns ingång.The prediction analyzer 110 contains, in addition to an analog-digital converter, an analog speech signal from, for example, the input of a prediction analyzer, an LPC computer and a residual signal generator, which form predictive parameters ak and a residual signal dk. The predictive parameters characterize the synthesized signal resp. the original speech signal over the analyzer input.

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 Amp och sitt tidsläge (position), 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.An excitation processor 120 receives the two signals ak and dk and operates during one of successive frame intervals determined by the frame signal FC, to emit a certain number of excitation pulses during each of the intervals. Each pulse is then determined by its amplitude Amp and its time position (position), mp within the frame. The excitation pulse parameters Amp, mp are passed to an encoder 131 and then multiplexed with the predictive parameters ak before transmission, for example from a radio transmitter.

Excitationsprocessorn 120 innehåller två prediktivfilter med k och (Ai, mi) beroende av' prediktivparametrarna ak under ett visst beräk- samma impulssvar för att vikta signalerna d i ningssteg gu Vidare ingår en korrelationssignalgenerator som utför en korrelation mellan den viktade ursprungliga signalen (y) och den viktade artificiella signalen (y) varje gång en excita- tionspuls skall alstras. För varje korrelation fås ett antal . » n ~ v. -\.=u | u n . no n 517 993 6 "kandidater" av pulselement Ai, mi (0 5 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 önskade antalet excitationspulser inom en ram. Detta är i detalj beskrivet i ovannämnda US-patent.The excitation processor 120 contains two predictive filters with k and (Ai, mi) depending on the predictive parameters ak during a certain calculated impulse response to weight the signals serving step gu. Furthermore, a correlation signal generator is performed which performs a correlation between the weighted original signal (y) and the weighted artificial signal (y) each time an excitation pulse is to be generated. For each correlation, a number is obtained. »N ~ v. - \. = U | u n. 517 993 6 "Candidates" of pulse elements Ai, mi (0 5 i <I), of which one gives the least squared error or the least absolute amount. In the excitation signal generator, the amplitude Amp and time position (position) mp are calculated for the selected "candidate". The contribution from the selected pulse. Amp, mp is then subtracted in the correlation signal generator from the desired signal to obtain a new sequence of "candidates" and the procedure is repeated as many times as the desired number of excitation pulses within a frame. This is described in detail in the aforementioned U.S. patent.

Figur 2 visar ett tidsdiagram över talingångssignal, prediktiv- restsignal dk och excitationspulser. Antalet excitationspulser är här == 8 av vilka pulsen Am valts ut först m (gav minsta l' 1 felet), därefter puls Amz, m2 osv inom ramen.Figure 2 shows a time diagram of speech input signal, predictive residual signal dk and excitation pulses. The number of excitation pulses is here == 8 of which the pulse Am is selected first m (gave the least l '1 error), then pulse Amz, m2 etc. within the frame.

I den förut kända metoden för att beräkna amplitud A och fasläge mp för varje excitationspuls ur ett antal kandidaâšr Ai, mi beräknades mp=mi för den kandidat i som gav maximalt värde på ai/oij och tillhörande amplitud Amp beräknades, där ai är korskor- relationsvektorn mellan signalerna yn och yn enligt ovan och øij (nedan kallad Cij,i=j=m1) ä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.In the previously known method for calculating amplitude A and phase position mp for each excitation pulse from a number of candidates Ai, mi was calculated mp = mi for the candidate i which gave the maximum value of ai / oij and the associated amplitude Amp was calculated, where ai is cross-correlated. the relation vector between the signals yn and yn according to above and øij (hereinafter referred to as Cij, i = j = m1) is the autocorrelation matrix for the impulse response of the predictive filters. Any position mp was accepted if only the above conditions were met. Index p indicates the step during which the calculation of an excitation pulse as above takes place.

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=12 positioner fås 4 subblock och 3 olika faslägen inom varje subblock.According to the previously known method of restrictiveness in determining the positions of the excitation pulses, a frame is divided according to Figure 2 as shown in Figure 3. It is assumed as an example that the frame contains N = 12 positions. The N positions then form a search vector (n). The entire frame is divided into so-called subblocks. Each sub-block will then contain a certain number of phase modes. For example, if, as shown in Figure 3, the entire frame contains N = 12 positions, 4 sub-blocks and 3 different phase positions are obtained within each sub-block.

Subblocket har ett visst läge inom hela ramen, vilket kallas (05n tillhöra ett visst subblock nf (05nf (O5f5F) i detta subblock. faslägespositionen. Varje position n . . - » n; :25 |v»-v | n u - .n n 517 993 7 Generellt gäller att positionerna n (05n5N) i den totala sökvektorn, som innehåller N positioner, är n = nf'F + f ... (1); där f = pulsfasläget inom ett subblock nf och F = inom blocket nf. antalet faslägen nf=0, ... ,(Nf-1), f = n = 0, (N - 1).The sub-block has a certain position within the whole frame, which is called (05n belong to a certain sub-block nf (05nf (O5f5F) in this sub-block. The phase position position. Each position n.. - »n;: 25 | v» -v | nu - .nn 517 993 7 In general, the positions n (05n5N) in the total search vector, which contains N positions, are n = nf'F + f ... (1), where f = the pulse phase position within a subblock nf and F = within the block nf the number of phase positions nf = 0, ..., (Nf-1), f = n = 0, (N - 1).

Vidare gäller följande samband fp = n MOD F och nfp = n DIV F ...(1). 0,...(F-1) och 000' 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.Furthermore, the following relationships apply fp = n MOD F and nfp = n DIV F ... (1). 0, ... (F-1) and 000 'The diagram according to Figure 3 shows the distribution of phase positions fp and subblocks nfp for a certain search vector containing N positions. In this case, N = 12, F = 3 and NF = 4.

Den kända metoden med restriktioner innebär att begränsa pulssökningen till positioner som ej tillhör ett redan upptaget fasläge fp för de vilkas excitationspulser, positioner n beräknats i föregående steg.The known method with restrictions means to limit the pulse search to positions which do not belong to an already occupied phase position fp for those whose excitation pulses, positions n have been calculated in the previous step.

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 ett beräkningsgång för ramintervall: 1. Beräkna den önskade signalen yn. Beräkna korskorrelationsvek- torn ai 3. Beräkna autokorrelationsmatrisen Ci j (= $ij i=j=m) 4. För p=1. Sök det mp dvs den pulsposition som ger maximalt ai/Cij i ej upptagna faslägen f.The sequence number for a certain calculation cycle of an excitation pulse is hereinafter referred to as p as above. The known method with restrictions then gives the following a calculation run for frame intervals: 1. Calculate the desired signal yn. Calculate the cross-correlation vector ai 3. Calculate the autocorrelation matrix Ci j (= $ ij i = j = m) 4. For p = 1. Search for the mp, ie the pulse position that gives the maximum ai / Cij in non-occupied phase positions f.

. Beräkna amplituden Amp för den funna pulspositionen mp. 6. Uppdatera korskorrelationsvektorn ai och n 7. Beräkna fp enligt sambanden (1) ovan fp 8. För p = p+1 utför samma steg 4-7.. Calculate the amplitude Amp of the found pulse position mp. 6. Update the cross-correlation vector ai and n 7. Calculate fp according to the relationships (1) above fp 8. For p = p + 1 perform the same steps 4-7.

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. n | ~ | n ø nu fas min: » u u Q nu n n 517 993 8 Enligt det föreslagna förfarandet kodas de erhållna faslägena fl, ..., fp gemensamt och de erhållna faslägespositionerna (subbloc- ken) nfl,..., nfp kodningen av faslägena kan kombinatorisk kodning användas. Fas- kodas var för sig före utsändning. För lägespositionerna kodas med kodord var för sig.Flowcharts further illustrating the known method are shown in Figures 4a and 4b of the aforementioned U.S. Patent 5,193,140. n | ~ | n ø nu phase min: »uu Q nu nn 517 993 8 According to the proposed method, the obtained phase positions fl, ..., fp are coded jointly and the obtained phase position positions (subblocks) nfl, ..., nfp the coding of the phase modes can combinatorial coding is used. Phased separately before transmission. For the position positions are coded with code words separately.

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.In one embodiment, the known speech processor circuit without restrictions at the pulse exposure may be modified as shown in Figure 4, which shows the part of the speech processor which comprises the excitation signal generating circuits 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.The predictive residual signal dk and the excitation generator 127 are input to their respective filters 121 and 123, respectively, in step with a frame signal FC via the gates 122, 124. From the filters 121, 123, the signals yn and yn are obtained, which are correlated in the correlation generator 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 øij enligt ovan. I excitationsgeneratorn 127 utförs en beräkning av det pulsläge mp som ger maximalt a. varvid $--1 1/ 13 förutom pulsläget mp även amplituden Amp enligt ovan erhålles.The signal yn represents the real speech signal while yn represents the artificial speech signal. From the correlation generator 125 a signal Ciq is obtained containing the components ai and øij as above. In the excitation generator 127 a calculation is performed of the pulse position mp which gives a maximum of a. Whereby $ - 1 1/13 in addition to the pulse position mp also the amplitude Amp as above is obtained.

Från excitationsgeneratorn 127 avges excitationspulsparametrarna mp, Amp till en faslägesgenerator 129. Denna beräknar de aktuella (subblocken) nfp faslägena fp och faslägespositionerna från excitationsgeneratorn 127, enligt ur de inkommande värdena m , A P mp sambandet f=(m-1)MooF nf = (m - 1) DIV F där F = antalet möjliga faslägen.From the excitation generator 127 the excitation pulse parameters mp, Amp are output to a phase position generator 129. This calculates the current (subblocks) nfp phase positions fp and the phase position positions from the excitation generator 127, according to the incoming values m, AP mp the relationship Mo = (m-1 = m - 1) DIV F where F = the number of possible phase modes.

Faslägesgeneratorn 129 kan utgöras av en processor innefattande ett läsminne som lagrar instruktioner för beräkning av fasläget och faslägespositionen enligt ovanstående samband. a n r : | o a. §25 mm» 517 993 9 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 m .The phase position generator 129 may be a processor comprising a read only memory which stores instructions for calculating the phase position and the phase position position according to the above relationship. a n r: | § 25 mm »517 993 9 Phase position fp and phase position position nfp is then applied to the encoder 131, figure 1. This encoder is of the same basic structure as the known encoder but encodes phase position and phase position position instead of pulse positions m.

P faslägespositioner och avkodaren beräknar därefter pulsläget m I mottagarsidan avkodas faslägen och P enligt m =(n P fp - 1)'F + f P vilket entydigt bestämmer excitationspulsläget.P phase position positions and the decoder then calculates the pulse position m In the receiver side, the phase positions and P are decoded according to m = (n P fp - 1) 'F + f P, which unambiguously determines the excitation pulse position.

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.The phase position fp is also supplied to the correlation generator 125 and the excitation generator 127. The correlation generator stores this phase position and takes into account that this phase position fp is occupied.

Inga värden på signalen Ciq 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 =-Ff qn+p där n O, ..., (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- lerna Ci och Ci *. q 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.No values of the signal Ciq are calculated where q is included in the positions belonging to all previous fp calculated for an analyzed sequence. The occupied positions are = -Ff qn + p where n 0, ..., (Nf - 1) and fp are all previous phase positions within a occupied frame. The excitation generator 127 similarly takes into account the occupied phase positions when comparing the signals Ci and Ci *. q q When all pulse placements for one frame have been calculated and executed and when the next frame is to be started, of course all phase positions are again available for the first pulse in the new frame.

I figur 5 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 111, som införs före excitationsprocessorn 120 i figur 4.Figure 5 shows another type of speech coding by means of a so-called adaptive codebook. The prediction analyzer 110 gives the two parameters ak and dk and these parameters are used as quantities for a block here designated 111, which is introduced before the excitation processor 120 in Figure 4.

Blocket 111 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.Block 111 contains an adaptive codebook 112, which stores a number of code words c1, ... cn and which can be updated by a control signal. This is symbolized in Figure 5 by means of a selector 113, which points out a certain code word ci in dependence on the value of the control signal.

I . n ø o. -..«| ø n ø . av u 517 993 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 betecknad dk2. från analysatorn 110) och. den nya. prediktionsresten dk2 tillförs Prediktivparametrarna ak (oförändrade excitationsprocessorn 120 enligt figur 4.I. n ø o. - .. «| ø n ø. of u 517 993 A scale unit 114 scales the codeword from the codebook 112 in a suitable manner and the scaled codeword is applied to the minus input of a summator 115, the plus input of which receives the predictive residue dk from the analyzer 110. The predictive residue supplied to the summator 115 is here denoted dkl and the summator 115 is denoted dk2. from the analyzer 110) and. the new. the prediction residue dk2 is applied to the Predictive parameters ak (unchanged excitation processor 120 according to Figure 4.

Styrsignalen till väljaren 113 härleds från en slinga innefattan- ett viktningsfilter 117 samt en extremvärdesbildare 118. Restsignalen dk2 tillförs filtret 116 och den filtrerade signalen viktas i filtret 117. de ett adptivt filter 116 med filterparametrarna ak, Ett första valt kodord ger en prediktivrest dk2 som filtreras och viktas i. filtren 116,117 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 dk2. 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. Den ger ett förbättrat värde på prediktionsrestern dk enligt figur 1. I figur 4 är således dk = dkl om adaptiv kodbok ej användes, och dk - dk2 om adaptiv kodbok användes.The control signal to the selector 113 is derived from a loop including a weighting filter 117 and an extreme value generator 118. The residual signal dk2 is supplied to the filter 116 and the filtered signal is weighted in the filter 117. They have an adaptive filter 116 with the filter parameters ak. is filtered and weighted in. the filters 116,117 and the least squares error E are formed in the extreme value generator 118. The above is done for all selected codewords and the codeword that gave the smallest error is subtracted after scaling in 114 from the residual signal dkl to give a new residual signal dk2. This is a so-called "closed loop" search for the best password in the event that an adaptive codebook is used. Thus, the circuit of Figure 5 may or may not be used. It gives an improved value of the prediction remainder dk according to figure 1. In figure 4, dk = dkl if adaptive codebook is not used, and dk - dk2 if adaptive codebook is used.

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.As will be described in connection with Figure 9, the circuit of Figure 5 is also used in some blocks (132a-d) to search for the "closed loop" error, but the codebook is then replaced with a memory space to store only a set of restricted pulse sets.

Prediktivparametrarna ak och index i för de kodord ci som utvalts (minsta felet) avges till multiplexorn 135 och sänds på känt sätt. x : | n nu o o o o :o ooo ou o o »o oo oo o o oo o o o o oo o o o o o o oo o o I o oooo o o o ooo ooo oo .ooo ooo o oo o o o oo oo o o oo o o o o o o. oo oo oo 11 Förfarandet för pulsutsättningen skall nu närmare beskrivas med hänvisning till figur 6.The predictive parameters ak and index i for the codewords ci selected (minimum error) are output to the multiplexer 135 and transmitted in a known manner. x: | n now oooo: o ooo ou oo »o oo oo oo oo oo oooo oo oooooo oo oo I ooooo ooo ooo ooo oo .ooo ooo o oo ooo oo oo oo oo oo ooooo o. oo oo oo oo 11 with reference to Figure 6.

Vid start av pulsutsättningen bestäms först ett antal j ex- citationspulser medelst den kända metoden utan restriktioner, block 1. beskrivet ovan. Både pulspositionerna mp (lgpsj) och amplituderna Beräkningen av dessa sker således på känt sätt som 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).At the start of the pulse exposure, a number of excitation pulses are first determined by means of the known method without restrictions, block 1. described above. Both the pulse positions mp (lgpsj) and the amplitudes The calculation of these thus takes place in a known manner as Amp within the framework is determined in this way. However, the amplitude Amp of these need not be used in the determination with restrictions, since each of the pulse positions calculated according to the above is still used, the amplitude not being of interest. However, in an alternative method of phase adjustment of the starting pulses, the amplitudes must also be used (unless these are recalculated).

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 Man startar därvid med (lšišj) excitationspuls som bestämts enligt block 1 (utan restriktioner) den kända metoden beskriven ovan. utgångspunkt från positionen mi hos en godtycklig inom samma ram. Beräkningen av de nya excitationspulserna (med restriktioner enligt kända metoden) görs för ett visst antal, Nl.When the number j of pulse positions mp (p = 1, ..., j) is determined in this way, the calculation of excitation pulses is started according to the known method with restrictions, block 2. Both pulse position mp and the amplitude Amp of each excitation pulse are determined and according to with (lšišj) excitation pulse determined according to block 1 (without restrictions) the known method described above. starting point from the position mi of an arbitrary within the same frame. The calculation of the new excitation pulses (with restrictions according to the known method) is made for a certain number, Nl.

Efter detta första beräkningssteg med restriktioner (block 2) väljes positionen mk (k=i) för en ny excitationspuls beräknad (block 1) därefter utförs samma beräkningsrutin med restriktioner som ovan enligt den kända metoden utan restriktioner och 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 = Nl.After this first calculation step with restrictions (block 2) the position mk (k = i) is selected for a new excitation pulse calculated (block 1) then the same calculation routine is performed with restrictions as above according to the known method without restrictions and mentioned for the first calculation step also for this second calculation step, block 3 in figure 6, but now starting from another position mk (15k5j; k = i). The calculation is made for a certain number of N2 excitation pulses, where, however, N2 can be = 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 o o o o o o oo 517 993 šïïfiïïí ë- “ 12 det antal positioner j=P för excitationspulserna, som erhölls (block 1). lämpligt att avbryta efter ett mindre antal steg om talkvalitén enligt metoden utan restriktioner 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 flera startpositioner än det ursprungliga antalet positioner P för excitationspulserna beräknade utan restriktioner. Det resul- terande antalet positioner blir då L=P+Pextra, där Pextra är de positioner som tillkommit. Detta skall närmare visas i figur 7.The calculation steps by the known method of restriction are then continued a number of times until the last step, block 4 in Figure 6. The number L of such steps need not be equal to oooooo oo 517 993 šïï fi ïïí ë- “12 the number of positions j = P for the excitation pulses, obtained (block 1). suitable to interrupt after a small number of steps if the talc quality according to the method without restrictions It may be may be acceptable, whereby the calculations will be fewer. It may also be appropriate to improve the accuracy of providing more starting positions than the original number of positions P for the excitation pulses calculated without restrictions. The resulting number of positions will then be L = P + Pextra, where Pextra are the positions that have been added. This will be shown in more detail in Figure 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- Man kan alltså förbjuda de faslägen fp (p=1,...,j), som ligger långt ifrån de tioner på vilka pulser som skall tillåtas. pulspositioner som beräknats utan restriktioner.In order to reduce the complexity of the subsequent pulse searches with restrictions, the above-mentioned resulting pulse positions L = P + Pextra can be used to further impose restrictions. One can thus prohibit the phase positions fp (p = 1, ..., j) which is far from the tions on which pulses are to be allowed. pulse positions calculated without restrictions.

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 bildas, blockschemat enligt figur 9, som visar fallet L = 4. "closed loop" förklaras närmare i samband med 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.According to Figure 6, the pulse exposure is interrupted according to the method with restrictions after a certain number of steps (N1 steps starting from pulse p1, N2 steps starting from pulse p2, etc.). After this, L pcs. pulse sets from each of the originally calculated positions (without restrictions) including any. extra positions Pextra. It is then examined, block 5, which of the L sets is to be used according to a certain criterion. The set of pulses that best meets the criterion is maintained while the others are rejected. How this criterion, so-called, is formed, the block diagram according to Figure 9, which shows the case L = 4. "closed loop" is explained in more detail in connection with The set of pulses (Amp, mp, p = 1,2, ..., i, k, r) with restrictions selected thereby forming the final excitation pulses for the frame and corresponding values of phase position and phase position position were transmitted to the receiver. The positions (mp, p = 1, ..., j) that were initially calculated without restrictions are not transferred.

En algoritm för beräkningsstegen enligt ovan är visad i Appendix 1. ø o : u a. mrv» 13 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 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).An algorithm for the calculation steps as above is shown in Appendix 1. ø o: u a. Mrv »13 Figure 7 shows a diagram of excitation pulses and extra pulses that are calculated without restrictions and the pulse sets, which are calculated with restrictions. The pulses P1, P2, P3 and P4 are the excitation pulses calculated according to the original known method (block 1, figure 6). These pulses have the phase positions n1, n2, n3 resp. n4. In addition to these pulses, in this case two further pulse positions Pel and Pe2 are calculated with the phase positions n5 and n6 according to the same known method. The phase positions n1-n6 thus give the starting positions for calculating a number of L = 6 pulse sets calculated according to the known method with restrictions (blocks 2-4, figure 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.You get two "extra" heart rate sets that can be included in the test of "best" heart rate set according to the above criteria. In Figure 7, the starting pulse in resp. pulse set 'is marked with a thick solid line with a square, while the calculated pulses in each pulse set are marked with dashed lines and a 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 ramen .The different pulse sets calculated with restrictions belonging to all starting pulses P1-P4 and extra pulses Pe1, Pe2 are then tested according to the criterion "closed loop". The pulse set that was "best", ie the one with the smallest error, is selected and transmitted. Other pulse sets are not used for the current frame.

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.As an alternative to the above calculation of the positions of the excitation pulses, one can adjust the phase positions of the excitation pulses calculated without restrictions with regard to the restrictions. You select the phase modes fp for the set that was the best according to the above criteria.

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.For each starting pulse of the total calculated starting pulses without restrictions in a frame, a search area is defined which consists of a time interval of determined size around the position of the starting pulse in the frame. Then, based on each of the starting pulses, a pulse set is calculated with the restriction that none of the positions of the calculated pulses may be outside the search range.

Man får då förutom positionen hos den aktuella startpulsen även ~ | « n u: i. »ww- mun: 517 993 14 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 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.In addition to the position of the current start pulse, you also get ~ | «N u: i.» Ww- mun: 517 993 14 a small number of positions for the pulses that are within the search range for the other start pulses. This is repeated for each of the other start pulses. As a result, you get a number of pulse sets where, in each, a pulse always corresponds to the exact position of resp. starting pulse and where the positions of the other pulses are within resp. the search area for other start pulses.

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.In addition to the above-mentioned restriction on the pulse exposure, further restrictions are placed on the coding of the various obtained pulse positions mp. This condition is applied to the different positions tested above before the "closed loop" test is performed. The code restriction means that certain so-called codeable vectors are selected where each vector corresponds to a pulse set calculated with restrictions as above.

Generellt gäller att positionerna n (Osn5N) i den totala sökvek- torn, som innehâller N positioner, är n = nf'F + f ; f = pulsfasläget inom ett subblock (faslägesposition) nf och F = där antalet faslägen inom blocket nf.In general, the positions n (Osn5N) in the total search vector, which contains N positions, are n = nf'F + f; f = pulse phase position within a subblock (phase position position) nf and F = where the number of phase positions within block 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.The restriction is now imposed that the pulse phase mode for all positions in a certain pulse set (vector) must be different for the vectors selected. Others are rejected.

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.All the vectors thus obtained are considered codable and are then tested "closed loop", the values of the phase positions of the "best" pulse set relative to each of the positions of the starting pulses being transmitted to the receiver.

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. a o c . nu 517 993 En algoritm för ovannämnda faslägesjustering framgår av bifogade Appendix 2.In order to keep the complexity of the calculations and tests unchanged, you can set up and use a list of the different candidates in descending order with regard to the total phase position adjustment, whereby the candidate who was "second best" in one test is examined first in the next test, etc. . for an entire frame. a o c. now 517 993 An algorithm for the above-mentioned phase position adjustment is shown in the attached Appendix 2.

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 P1,P2,P3 0Ch 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 8b). Pulspositioner utanför vart och ett av dessa sökområden är icke-tillåtna pulspositioner och. utgör således restriktionen. Inom resp. 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".Figure 8 shows a diagram illustrating the phase position adjustment described above of the excitation pulses produced without restrictions as above. Figure 8a) shows the excitation pulses P1, P2, P3 0Ch P4, corresponding to the pulses P1-P4 shown in Figure 7 at the top. obtained without restrictions and as For each starting pulse P1-P4 of the total calculated starting pulses without restrictions in a frame, a search area S1, S2, S3, S4 is defined which consists of a time interval around the position of the starting pulse in the frame, Figure 8b). Pulse positions outside each of these search areas are impermissible pulse positions and. thus constitutes the restriction. Within resp. search area there are a small number of allowed pulse positions. For example, there are the two pulse positions which consist of those which are closest to the pulse position mi which has been calculated without restrictions. A number of pulse sets can therefore be calculated which can be formed from these "side positions" permitted around each starting pulse position.

Figur 8c) visar en pulsuppsättning som är beräknad med pulsen P1 som startpuls, varvid man har bildat ytterligare tre pulser genom att två, P2 och P4, har ett stegs fasavvikelse räknat från den till dessa senare startpulsers ursprungliga positioner, medan den tredje P3 inte har givits någon fasavvikelse från sin tillhörande startpulsposition enligt exemplet. Detta ger ett totalt fasskift =2.Figure 8c) shows a pulse set calculated with the pulse P1 as the starting pulse, whereby three more pulses have been formed in that two, P2 and P4, have a step phase deviation from the one to the original positions of these later starting pulses, while the third P3 has not given any phase deviation from its associated starting pulse position according to the example. This gives a total phase shift = 2.

Figur 8d) visar med utgångspunkt från startpulsen P2 hur två PO 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. pulser, 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 - « u ø u u. .1-1; 517 993 16 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.Figure 8d) shows, based on the starting pulse P2, how two POs and P4, have been shifted one step to the left from their associated starting pulse positions and the fourth pulse P1 has been shifted one step to the right. This gives a total phase shift = 3. pulses, Figure 8e) shows, starting from the starting pulse P4, how two pulses, P2 and P3, have been shifted one step to the right from their - «u ø u u. .1-1; 517 993 16 associated start pulse positions and the first pulse P1 is shifted one step to the right from its associated start pulse position. This also gives a total phase shift = 3.

Följande tabell kan därvid uppställas: Som exempel tas endast två startpulspositioner, vilka har ordningsnumren 2 och 5 och där f fpz nedan har beräknas enligt P1' sambandet sid 9, rad 20 med F=3.The following table can then be set up: As an example, only two starting pulse positions are taken, which have the sequence numbers 2 and 5 and where f fpz below has been calculated according to the P1 'relationship page 9, line 20 with F = 3.

TABELL: Pulsposition mp skift fpl fpz kodbar? Startpuls- 2 5 0 2 2 Nej position 2 6 1 2 3 Ja skiftade 2 4 1 2 1 Ja versioner 1 5 1 1 2 Ja av 1 6 2 1 3 Ja start- 1 4 2 1 1 Nej puls- 3 5 1 3 2 Ja posi- 3 6 2 3 3 Nej tioner 3 4 2 3 1 Ja Generellt gäller att inte något av faslägena fp får vara lika för kodbarhet, dvs. f P 2 pl = fpz. Om flera startpulslägen mp används, dvs 3 för beräkningen gäller att f = f pl P2 = fp3 = fp4 ... för en och samma pulsuppsättning.TABLE: Pulse position mp shift fpl fpz codable? Start pulse- 2 5 0 2 2 No position 2 6 1 2 3 Yes shifted 2 4 1 2 1 Yes versions 1 5 1 1 2 Yes of 1 6 2 1 3 Yes start- 1 4 2 1 1 No pulse- 3 5 1 3 2 Yes position 3 6 2 3 3 No tion 3 4 2 3 1 Yes In general, none of the phase modes fp must be equal for codability, ie. f P 2 pl = fpz. If several starting pulse modes mp are used, ie 3 for the calculation, it applies that f = f pl P2 = fp3 = fp4 ... for one and the same pulse set.

De erhållna kodbara pulsuppsättningarna jämförs därefter som ovan "bästa".kodbara Pulserna amplitud Am kan tas från nämnts "closed loop" och fasvärdena för den uppsättningen överförs. 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. « 1 | a av o o a q -o 517 993 17 e = | n nu Värdena på faslägen fp och faslägespositionerna nfp för den "bästa" kodbara uppsättningen överförs.The obtained codable pulse sets are then compared as above "best". The codable pulses amplitude Am can be taken from said "closed loop" and the phase values for that set are transmitted. the amplitude value of the starting pulse based on resp. pulse set or they can be calculated again, to take into account the phase change of resp. calculated heart rate. «1 | a av o o a q -o 517 993 17 e = | n now The values of the phase modes fp and the phase mode positions nfp of the "best" codeable set are transmitted.

Figur 9 visar ett blockschema över en del av en talkodare som utnyttjar kodningsmetoden enligt uppfinningen.Figure 9 shows a block diagram of a part of a speech encoder which uses the coding method according to the invention.

Blocket 125 representerar liksom i figur 4 en Ikorrelations- generator, som bildar storheten Ciq =(C¿j,ai) 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.Block 125, as in Figure 4, represents a correlation generator, which forms the quantity Ciq = (C¿j, ai) representing the correlation between the signals y and y Then follows the excitation generator 127 which selects the amplitude Amp and pulse phase position mp of the excitation pulse which gave the best correlation (= least square mean error) of in candidates.

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 amplítud Amp och faslägen mp (p=1,...,j) som erhållits enligt metoden utan restriktioner (block 1,figur 6).Total I correlations are performed before the position and amplitude of a particular excitation pulse are determined. In the prior art embodiment, the excitation generator 127 was followed by a phase position generator (129, Figure 4). In Figure 9, a memory unit 126 is connected instead. This memory unit stores the amplitude of the selected excitation pulses Amp and phase positions mp (p = 1, ..., j) obtained according to the method without restrictions (block 1, figure 6).

Efter minnesenheten 126 följer en väljarenhet vilken i figur 9 symboliserats av blocket l28a och en styrbar kontakt 128b.The memory unit 126 is followed by a selector unit which in Figure 9 is symbolized by the block 228a and a controllable contact 128b.

Väljarenheten l28a 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.The selector unit 128a controls the contact 128b to scan a number of branches to connect a certain branch to the memory unit 126 so that a certain position mp (p = 1, ..., j) stored in the memory unit 126 may constitute the starting value as above, block 2, figure 6.

Den i figuren visade översta grenen (a) innehåller V 25 en excitationsgenerator 127a av samma utförande som excitations- fV* generatorn 127; t en faslägesgenerator 129a av samma utförande som fasläges- generatorn 129 enligt figur 4 och som har en återkoppling till 'W__ excitationsgeneratorn 127a för uppdatering, jfr figur 4; ¿”3p 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 Q beräknad mßu; . n . . .e 517 993 18 med restriktioner i enheterna 127a, 129a och 130a kan lagras.The upper branch (a) shown in the figure contains V 25 an excitation generator 127a of the same design as the excitation fV * generator 127; a phase position generator 129a of the same design as the phase position generator 129 according to Figure 4 and which has a feedback to the excitation generator 127a for updating, cf. Figure 4; ¿”3p a storage unit 130a, as well as;;; a calculation unit 132a for calculating the error E1 "closed loop" as above and which thus has the same function as the circuit according to Figure 5 but without a codebook. Instead of the codebook, there is a memory in whose positions the values of the associated pulse set Q are calculated mßu; . n. . .e 517 993 18 with restrictions in units 127a, 129a and 130a can be stored.

Prediktivresten dkz 'tillförs enheten l32a om adaptiv kodbok Dessutom används, i annat fall tillförs prediktivresten dkl. 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 från minnesenheten 126. Om fler startvärden än fyra skall Likaledes enheterna 132b,132c och 132d för att lagra tillhörande pulsupp- utnyttjas utökas givetvis antalet grenar. finns sättning från grenarna (b),(c) resp. felet "closed loop" E2, E3 resp E4. (d) och för beräkning av Väljarenheten 128a styr kontakten 128b till den översta grenen (a) och ger de från pulssökningen utan restriktioner (block 1, till ex- Denna mottar även det uppdaterade figur 6) redan upptagna positionerna mp (p=1,...,j) citationsgeneratorn 127a. värdet (Cij,ai) 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 eftersom dessa enheter vet Resultatet efter ett visst antal sökningar ger ett antal excitationspulser, med start från en viss position i, vilka positioner som redan är upptagna. 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.The predictive residue dkz 'is supplied to the unit l32a if adaptive codebook. In addition, in other cases the predictive residue dkl is supplied. is added to the predictive parameters ak. Other branches (b), (c), and (d) contain corresponding units as branch (a). Each branch thus contains units which can perform position determination according to the method of restrictions. Each branch thus gives a pulse set calculated with restrictions, ie a total of four pulse sets (cf. figure 7) with restrictions are performed according to figure 9 based on four start values mp retrieved from the memory unit 126. If more start values than four, likewise the units 132b, 132c and 132d The associated number of branches is of course increased. there is settlement from the branches (b), (c) resp. felet "closed loop" E2, E3 resp E4. (d) and for calculating the Selector Unit 128a controls the contact 128b to the uppermost branch (a) and gives the positions mp (p = 1, already occupied from the pulse search without restrictions (block 1, to ex- This also receives the updated figure 6) ..., j) citation generator 127a. the value (Cij, ai) from the correlation generator after said pulse search without restrictions. The excitation generator 127a and the phase position generator 129a can now perform a pulse search with restrictions because these units know The result after a certain number of searches gives a number of excitation pulses, starting from a certain position in, which positions are already occupied. whose amplitude Amp and pulse position mp are stored in the unit 130a. In this case, the phase position fp and the phase position position nfp are stored instead of the pulse position mp.

Därefter framstegas kontakten l28b 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 - a e | ø ; en ».:uv u n - . nu 517 993 19 pulssökningen, eftersom detta värde används vid prövning av de i "kandidaterna" vid sökning av den bästa excitationspulsen (med restriktioner).Thereafter, the contact 128b is advanced by the selector unit 128a to the excitation generator 127b in branch (b) and pulse search starting from a second starting value with the position m2 is started by the next branch (b). This takes place in the same way as for branch (a) as above and in the same way pulse search then takes place in branches (c) and (d). The same value of Cij is fed to all the branches from the beginning of - a e | ø; en ».: uv u n -. now 517 993 19 the pulse search, since this value is used in testing those in the "candidates" when searching for the best excitation pulse (with restrictions).

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) talsignal och syntetiserad talsignal för värdena y(n) och y^(n) inom talramen.After a certain number of parallel steps M, all branches (a) - (d) have calculated the amplitude of their excitation pulses and phase positions / phase position positions and stored these in the storage unit 134. Thereafter, the calculation units 132a-132d perform their respective calculations of the error between the incoming speech frame and the synthesized the speech frame in accordance with the code words used and the excitation pulses produced from the respective branch. The incoming speech signal is therefore applied to each of the units 132a-132d. Each of these units calculates the so-called closed loop error and outputs the value E1, E2, E3 or E4 on the error as an output signal. For example, one can select the quadratic weighted error E == Z: ew (n) 2, where ew (n) is the difference between incoming (real) speech signal and synthesized speech signal for the values y (n) and y ^ (n) within the speech frame.

Funktionen hos beräkningsenheterna 132a-132d är samma om adaptiv kodbok ej används och beräkningen av felet E1-E4 sker på samma sätt.The function of the calculation units 132a-132d is the same if adaptive codebook is not used and the calculation of the error E1-E4 takes place in the same way.

En väljarenhet 133a 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.A selector unit 133a with associated contact 133b senses the different calculated values E1, E2, E3 and E4 on the error of the different pulse sets and outputs these values one by one to a storage unit 134. This unit receives the values one by one, selects and saves an incoming value if this is "better" ie is a smaller error E than the immediately preceding value.

Samtidigt som enheten 134 mottar värdena E1-E4 registrerar den vilket värde som är minst, dvs den pulsuppsättning som är "bäst".At the same time as the unit 134 receives the values E1-E4, it registers which value is the least, ie the pulse set which is "best".

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.After the "best" pulse set is thus identified, the storage unit 134 retrieves the values of amplitude Amp, phase position fp and phase position position nfp for this "best" pulse set. These values are obtained via one of the connections to the respective storage unit 130a-130d, and these values are then output to the encoder 131.

Denna är ansluten till en multiplexor 135 såsom det framgår av figur 1. nnn nnn n n nn nn I: n» n en o o n n no n o n n oo 0 o nn o n n o nnnn o n n n n n nn non .n "nn non n no n n o n o n nn no n o no n n n n n o o . .n oo nn on o o n n nn Kodaren 131 mottar således storheterna: 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 kan som ovan nämnts kodas gemensamt och de erhållna faslägespositionerna n kodas var för sig före fllill' 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.This is connected to a multiplexer 135 as shown in Figure 1. nnn nnn nn nn nn I: n »n en oonn no nonn oo 0 o nn onno nnnn onnnnn nn non .n" nn non n no nnonon nn no no no nnnnnoo The encoder 131 thus receives the quantities: the amplitude Amp and the phase positions / phase position positions fp, nfp for the "best" excitation pulses produced with restrictions. The obtained phase positions fl, ..., fp can be coded as mentioned above. jointly and the obtained phase position positions n are coded separately before fllill 'transmission.The important thing is that the phase positions and the phase position positions are coded in different message words.This gives better separation and thus reduced error probability.

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.Figure 10 shows the block diagram of Figure 9 but modified to perform the phase adjustment of the start pulses as described above (Figure 8). The selector 128b together with subsequent blocks 127a-d, 129a-130a-d have for the calculation of pulse positions with restrictions been removed and instead replaced with a unit 100 which defines the above-mentioned search area for each of the starting pulses P1-P4 (figure 8). Outside this search area, it is not permitted to place any excitation pulses and the introduction of the search area around each starting pulse and associated calculation can therefore be said to replace the previously used calculation with restrictions according to Figure 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.The unit 100 further calculates the pulse positions for the possible number of pulse sets as previously described (Table above) and produces the possible pulse sets with regard to the code restrictions. These are thus obtained via the outputs a, b, c and d and the obtained pulse sets are then applied to the units 132a-132d, which calculate resp. errors E1, E2, E3 and E4 "closed loop" in the manner previously described.

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 cxfli en av pulsuppsätt- §1Q ningarna från minnesenheten 126, dels till beräkningsenheterna 132a-132d, dels till lagringsenheten 134.Since no value of the amplitudes of the pulse set selected for the coding in the encoder 131 was supplied to the unit 100, the amplitude values Amp of each cx fl are supplied in one of the pulse sets from the memory unit 126, partly to the calculation units 132a-132d, and partly to the storage unit 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.When coding the phase modes resp. the phase position positions, these can be combined separately, two or more in a message block including associated parity words in a manner known per se.

.U H ' 39 _..U H '39 _.

. H n n n n nn nnn nan n n .n nn nn no n n n n n n n nn n n n n o n n n nn n n n n nnnn n n n n n n »nn nnn nn nnnn :nn n nn n n n n n n nn no n n n u n n n n n n u n nn nn nn nn « u | n nn 21 Även kodning av ett enda ord för fasläge resp. faslägesposition 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.. N n n n n n n n n n. n nn 21 Also coding of a single word for phase mode resp. phase position position with associated parity words can be performed. The advantage in the former case with several values in a message word is that you save bandwidth, but you must then use "harder" coding to get better protection. In the latter case with a single value of the phase mode or the phase mode position, a simpler coding with less protection can be used, but bandwidth is lost. For the coding of the phase modes, combinatorial coding can be used.

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.It is understood that Figures 9 and 10 are only intended to show the principle of how associated circuits in a speech encoder can be constructed. In reality, all units can be integrated in a microprocessor that is programmed to perform the functions in accordance with the flow chart in Figure 6 and attached to Appendix 1 resp. 2.

Eftersom båda 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äkningskomplexitet för en viss önskad talkvalitë. Beräkningskomplexiteten 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.Since both methods with and without restrictiveness are used, one can choose the proportion between the number of calculated excitation pulses according to the method without resp. with restrictions and thus get an optimal distribution that provides the lowest calculation complexity for a certain desired speech quality. The calculation complexity is significantly reduced compared to performing extreme value calculation for all possible positions within a speech frame.

Metoden för pulsutsättningen är enligt ovan beskriven i samband med en talkodare i vilken utplaceringen av excitationspulserna 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 ta mellan pulserna är konstant i stället för en enstaka puls.The method of pulse exposure is as described above in connection with a speech encoder in which the placement of the excitation pulses is performed one pulse at a time until a frame interval has been filled. Another type of speech encoder described in EP-A.195,487 works with the placement of a pulse pattern in which the time interval between pulses is constant instead of a single pulse.

Metoden för pulsutsättning och kodningsförfarandet enligt föreliggande uppfinning kan även tillämpas på en sådan talkodare.The pulse rate method and coding method of the present invention can also be applied to such a speech encoder.

De förbjudna positionerna i en ram (jämför exempelvis figur 4a, 4b ovan) sammanfaller därvid med pulsernas lägen i ett pulsmöns- ter. ...>@ .17 993 22 Appendix 1 Algoritm för beräkningsstegen enligt flödesschemat, figur 6.The prohibited positions in a frame (compare, for example, Figures 4a, 4b above) then coincide with the positions of the pulses in a pulse pattern. ...> @ .17 993 22 Appendix 1 Algorithm for the calculation steps according to the flow chart, figure 6.

Modifierade beräkningssteg 1-8 visade i US 5,193,l40.Modified calculation steps 1-8 shown in US 5,193,140.

US 5,l93,140 är nedan betecknad [2].US 5,193,140 is hereinafter referred to as [2].

Autokorrelationsmatrisen qbij i [2] är nedan betecknade C(i,j) = Cij i beskrivningsdelen.The autocorrelation matrix qbij i [2] is hereinafter referred to as C (i, j) = Cij in the description part.

Pulspositionerna mp och mq i [2] är här betecknade msp resp msq.The pulse positions mp and mq in [2] are here denoted msp and msq, respectively.

Storheten ai i [2] och i beskrivningsdelen är här betecknad a(i) .The quantity ai in [2] and in the description part is denoted here by 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) and copy to asave(i) 3. Calculate the covariance (or autocorrelation) matrix C(i,j) 4. For p=l to P+extra 4.1 Search for ms , i.e. the pulse position which gives maximum a(i)*a(í)/C(i,j) = a(m)*a(ms)/C(nzs,rns) in the unoccupied positions. 4.2 Calculate the amplitude Aünsp) for the discovered pulse position msp 4.3 Update the cross-correlation vector a(i) 4.4 Discard the found position msp fmrn the possible positions . For q=1 to P-Hxtra .1 Copy asave(í) to a(i) .2 Assign m, the value ofmsp I . .3 Caiculate the amplitude A(m¿) for the starting pulse position m1 .4 Update the cross-correlation vector a(i) .5. Forp=2 to P .5.1 Search for mp, i.e. the pulse position which gives maximum a(í)*a(i)/C(i,j) = a(m)*a(m)/C(m,m) in the unoccupied phases. .5.2 Calculate the amplitude A(mp) for the discovered pulse position mp .5.3 Update the cross-correlation vector a(i) .5.4 Exclude the positions with the same phase as mp .6 Caiculate closed-loop error E, _ .7 If the error E is lower than the error for the previously saved set of positions and amplitudes, save the positions mp as mwp and the amplitudes A(mp) as A(mwp) » 6 Calculatefp and nfp in accordance with the relationship (1) in [2] for the saved (winning) set of positions mwp . « | | u e. ..»», 517 993 23 Appendix 2 A1 oritm för faslä es'usterin .Analogous to am i [2] relative to a (m) below. 1. Calculate the desired signal y (n) 2. Calculate the cross-correlation vector a (i) and copy to asave (i) 3. Calculate the covariance (or autocorrelation) matrix C (i, j) 4. For p = l to P + extra 4.1 Search for ms, ie the pulse position which gives maximum a (i) * a (í) / C (i, j) = a (m) * a (ms) / C (nzs, rns) in the unoccupied positions. 4.2 Calculate the amplitude Aünsp) for the discovered pulse position msp 4.3 Update the cross-correlation vector a (i) 4.4 Discard the found position msp fmrn the possible positions. For q = 1 to P-Hxtra .1 Copy asave (í) to a (i) .2 Assign m, the value ofmsp I. .3 Caiculate the amplitude A (m¿) for the starting pulse position m1 .4 Update the cross-correlation vector a (i) .5. Forp = 2 to P .5.1 Search for mp, i.e. the pulse position which gives maximum a (í) * a (i) / C (i, j) = a (m) * a (m) / C (m, m) in the unoccupied phases. .5.2 Calculate the amplitude A (mp) for the detected pulse position mp .5.3 Update the cross-correlation vector a (i) .5.4 Exclude the positions with the same phase as mp .6 Caiculate closed-loop error E, _ .7 If the error E is lower than the error for the previously saved set of positions and amplitudes, save the positions mp as mwp and the amplitudes A (mp) as A (mwp) »6 Calculatefp and nfp in accordance with the relationship (1) in [2] for the saved (winning) set of positions mwp. «| | u e. .. »», 517 993 23 Appendix 2 A1 orithm for faslä es'usterin.

Beteckningar enligt Appendix 1. 1 Calculate the optimal positions msp and arnplitudes A011; as in step 1 through 4 in the previous section. (kffamålz i) . 2. Construct the n=((P+extra) over P) combinations of P positions out of the msp optimal positions. 3.0 For combínation¿= combination 1 to combination n 3.1. Shake all positions in combinatiom around by a shifting each position l step in each direction. If the resulting set of positions are encodable using the restricted positioning code, save them in a list min_shift__líst with an ordering in respect to the total phase shift from the unshifted combination¿. 4.0 Forj=1 to nb_to_test, 4.1 Copy the positions at the top of the min_shijft__list to mvp . 4.2 Remove the top positions in the list rnin_shift_list 4.3 Copy the amplitudes from A(msp) of the corresponding unshifted combinationi to A(mvp). 4.4 Calculate closed-loop error Ej, using mvp 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 mvp as mwp and the amplitudes A(mvp) as A(mv;p) Calculateß, and nfp in accordance with the relationship (1) in [2] for the saved (winning) set of positions rnwp _ n n . . en s n | | | u ooDesignations according to Appendix 1. 1 Calculate the optimal positions msp and arnplitudes A011; as in step 1 through 4 in the previous section. (kffamålz i). 2. Construct the n = ((P + extra) over P) combinations of P positions out of the msp optimal positions. 3.0 For combínation¿ = combination 1 to combination n 3.1. Shake all positions in combination around by shifting each position l step in each direction. If the resulting set of positions are encodable using the restricted positioning code, save them in a list min_shift__líst with an ordering in respect to the total phase shift from the unshifted combination¿. 4.0 Forj = 1 to nb_to_test, 4.1 Copy the positions at the top of the min_shijft__list to mvp. 4.2 Remove the top positions in the list rnin_shift_list 4.3 Copy the amplitudes from A (msp) of the corresponding unshifted combinations to A (mvp). 4.4 Calculate closed-loop error No, using mvp 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 mvp as mwp and the amplitudes A (mvp) as A (mv; p) Calculateß, and nfp in accordance with the relationship ( 1) in [2] for the saved (winning) set of positions rnwp _ nn. . and s n | | | u oo

Claims (2)

1. 0 15 20 25 30 317 993 24 PATENTKRAV l. Förfarande att användas vid en talkodare, vilken arbetar med en talsignal indelad i talramar, för att koda en följd av ett första och andra slag av excitationspulsparametrar (fp resp. nfp), vilka gemensamt anger excitationspulsernas positioner (mp) beräknade pà sådant sätt att man a) utför ett antal beräkningssteg (j) av excitationspulsernas positioner enligt en första metod, vilken innebär att en talsignal, indelad. i talramar analyseras och. den analyserade (110) för att bilda dels en (ak) , syntetiseras (dk), talsignalen prediktionsrest dels ett antal prediktivparametrar vilka tillförs (120), en excitationsprocessor som filtrerar prediktionsresten (dk) och fràn excitationsprocessorn erhållna parametrar (Ai,mi) för var och en av de önskade excitationspul- serna i beroende av nämnda prediktivparametrar (ak), b) utför ett antal beräkningssteg (Nl,N2,...,NL) av excitationspulsernas positioner vart och ett med utgångspunkt fràn ett av ett antal enligt den första metoden beräknade positioner (mi,mk,mr) enligt en andra metod, vilken innebär att en talram dessutom indelas i ett antal faslägespositioner (nf) och varje faslägesposition indelas i ett antal faslägen (n), varvid restriktioner införs innebärande att det fasläge, som upptas vid utplacering av en excitationspuls blir förbjudet för varje efterföljande excitationspuls och för varje faslägespostion (nf) inom talramen, sà att en av ett antal (L) pulsuppsättningar erhålles, samt 10 15 20 25 30 517 993 25 O Il Ideon: 0 Count! c) 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é, k ä n n e t e c k n a t av att det första slaget (fp) parametrar sammanförs i ett eller flera meddelandeord, att det andra slaget parametrar (nfp) uppdelas var för sig i separata meddelandeord, vilka vart och ett är separata fràn förstnämnda meddelandeord, varvid vart och ett av de sistnämnda meddelandeorden kodas separat.A method for use with a speech encoder, which operates with a speech signal divided into speech frames, for encoding a sequence of a first and a second kind of excitation pulse parameters (fp and nfp, respectively), which jointly indicates the positions (mp) of the excitation pulses calculated in such a way that one a) performs a number of calculation steps (j) of the positions of the excitation pulses according to a first method, which means that a speech signal, divided. in speech frames are analyzed and. the analyzed (110) to form a (ak), synthesized (dk), the speech signal prediction residue and a number of predictive parameters which are applied (120), an excitation processor which filters the prediction residue (dk) and parameters obtained from the excitation processor (Ai, mi) for each of the desired excitation pulses depending on said predictive parameters (ak), b) performs a number of calculation steps (N1, N2, ..., NL) of the positions of the excitation pulses each starting from one of a number according to the first method calculated positions (mi, mk, mr) according to a second method, which means that a number frame is further divided into a number of phase position positions (nf) and each phase position position is divided into a number of phase positions (n), restrictions being introduced meaning that the phase position, which is taken when placing an excitation pulse is prohibited for each subsequent excitation pulse and for each phase position position (nf) within the speech frame, so that one of a number (L) of pulse sets is obtained, s amt 10 15 20 25 30 517 993 25 O Il Ideon: 0 Count! c) selects the ratio between the number of calculation steps (j or max [N1, N2]) according to the first and the second respectively. the method so that the minimum computational complexity is obtained for a given given speech quality, characterized in that the first type (fp) parameters are combined in one or more message words, that the second type parameters (nfp) are divided separately into separate message words, each of which one is separate from the first-mentioned message words, each of the latter-mentioned message words being coded separately. 2. Förfarande enligt patentkravet l, k ä n n e t e c k n a t av att vissa av nämnda meddelandeord innehàller tvà eller flera av endast det ena slaget av nämnda parametrar (fp resp nfp) samt ett paritetsord för kodningen av meddelandeordet pà i och för sig känt sätt.Method according to claim 1, characterized in that some of said message words contain two or more of only one type of said parameters (fp or nfp) and a parity word for the coding of the message word in a manner known per se.
SE9601070A 1995-04-12 1996-03-20 Excitation pulse position determination method for speech frame SE517993C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
SE9601070A SE517993C2 (en) 1995-04-12 1996-03-20 Excitation pulse position determination method for speech frame

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE9501368A SE508788C2 (en) 1995-04-12 1995-04-12 Method of determining the positions within a speech frame for excitation pulses
SE9601070A SE517993C2 (en) 1995-04-12 1996-03-20 Excitation pulse position determination method for speech frame

Publications (3)

Publication Number Publication Date
SE9601070D0 SE9601070D0 (en) 1996-03-20
SE9601070L SE9601070L (en) 1996-10-13
SE517993C2 true SE517993C2 (en) 2002-08-13

Family

ID=26662272

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9601070A SE517993C2 (en) 1995-04-12 1996-03-20 Excitation pulse position determination method for speech frame

Country Status (1)

Country Link
SE (1) SE517993C2 (en)

Also Published As

Publication number Publication date
SE9601070D0 (en) 1996-03-20
SE9601070L (en) 1996-10-13

Similar Documents

Publication Publication Date Title
KR0143076B1 (en) Coding method and apparatus
Chaer et al. A mixture-of-experts framework for adaptive Kalman filtering
EP0815554B1 (en) Analysis-by-synthesis linear predictive speech coder
DK172571B1 (en) Speech coding
US5127053A (en) Low-complexity method for improving the performance of autocorrelation-based pitch detectors
US4561102A (en) Pitch detector for speech analysis
CN101395659B (en) Method for limiting adaptive excitation gain in an audio decoder
SE463691B (en) PROCEDURE TO DEPLOY EXCITATION PULSE FOR A LINEAR PREDICTIVE ENCODER (LPC) WORKING ON THE MULTIPULAR PRINCIPLE
EP0342687B1 (en) Coded speech communication system having code books for synthesizing small-amplitude components
KR100416362B1 (en) Celp encoding/decoding method and apparatus
SE508788C2 (en) Method of determining the positions within a speech frame for excitation pulses
EP0617827A4 (en) Composite expert.
US7302387B2 (en) Modification of fixed codebook search in G.729 Annex E audio coding
EP2101319B1 (en) Adaptive sound source vector quantization device and method thereof
SE517993C2 (en) Excitation pulse position determination method for speech frame
JPH1097294A (en) Voice coding device
EP0745972B1 (en) Method of and apparatus for coding speech signal
EP0903729B1 (en) Speech coding apparatus and pitch prediction method of input speech signal
Wu et al. Nonlinear predictive vector quantisation with recurrent neural nets
US20090164211A1 (en) Speech encoding apparatus and speech encoding method
EP0645697A1 (en) Minimum shift data arranging method and apparatus
JPH07271397A (en) Voice encoding device
Namba et al. Pole-zero estimation of speech based on L/sub 1/norm linear prediction
JPH03222521A (en) Vector quantizer device

Legal Events

Date Code Title Description
NUG Patent has lapsed