throbber
Downloaded from http://www.everyspec.com
`
`FED-STD 1016
`February 14, 1991
`
`—
`
`FEDERAL STANDARD
`
`TELECOMMUNICATIONS: ANALOG TO DIGITAL CONVERSION OF RADIO
`VOICE BY 4,800 BIT/SECOND CODE EXCITED LINEAR PREDICTION (CELP)
`
`This standard is issued by the General Services Administration pursuant to
`the Federal Property and Administrative Services Act of 1949, as amended.
`
`1. SCOPE
`
`1.1 Description. This standard specifies interoperability -related requirements for the conversion of
`analog voice to a 4,800 bit/s digitized form for digital radio transmission by a method known as Code
`Excited Linear Prediction (CELP) and the reverse process, the synthesis of analog voice from
`4,800 bit/s CELP-digitized voice. In addition to digital radio applications, CELP is also very suitable
`for encrypted telephone use and other applications wherein voice must be digitized prior to
`encryption.
`
`1.2 Pur~ose. This standard is to facilitate interoperability between radio telecommunication facilities
`and systems of the Federal Government.
`
`1.3 Am3]ication. This standard shall be used by all Federal departments and agencies in the design
`and procurement of all radio equipment employing 4,800 bit/s digitized voice.
`
`2. CONVENTIONS AND DEFINITIONS
`
`a. Frame. A CELP frame is 144 bits in length. A frame interval is 30 ms f.01 percent in
`duration and contains 240 voice samples (8,000 samples/s).
`
`A CELP subframe is 1/4 the length of a frame.
`b . Subframe.
`ms t.01 percent in duration and contains 60 voice samples.
`
`7.5
`
`Thus, a subframe is
`
`3.
`
`REQUIREMENTS
`
`3.1
`
`Voice Svnthesis
`
`3.1.1 General Description.
`Since Code Excited Linear Prediction (CELP) is an analysis-
`by-synthesis type of technique, voice synthesis is described first. As shown in the diagram below,
`CELP synthesis involves the excitation of a parameter-adjusted Linear Prediction Filter by the sum
`of gain-scaled codes selected from a fixed, stochastically- derived “stochastic code book” and an
`adaptive “code book,” utilizing parameters transmitted in a 144-bit frame structure.
`
`“Stochtistic” Codes
`511
`
`Adaptive Codes
`. . .
`
`;
`
`Linear
`Prediction
`Filter
`
`LSPS
`
`<
`
`Subframe
`Delay
`
`)
`
`l l
`
`l
`
`()
`
`,
`
`l l
`
`l
`
`O
`
`ZTE EXHIBIT 1014
`
`Page 1 of 24
`
`(cid:228)
`

`
`FED-STD 1016
`
`Downloaded from http://www.everyspec.com
`
`The fixed, stochastically-derived ''stochastic" codes aredescribed infection 3.3. “Stochastic’’c odeg ain
`is described in section 3.4. Adaptive codes are described in section 3.5 and adaptive code gain is
`described in section 3.6. Section 3.7 describes the Linear Prediction Filter and the Line Spectral
`Parameters (LSPS) that adjust it. Section 3.8 shows transmission format, including bit assignments for
`the transmitted information. Single bit error correction on some of the most sensitive bits is described
`in section 3.9.
`
`3.1.2 Postfiltering. Postfiltering may be used to enhance the synthesized voice coming out of the
`CELP Linear Prediction Filter.
`
`3.1.3 Lowpass Filtering. Lowpass (i.e., reconstruction) filtering shall be employed. A typical
`lowpass filter has a 3 dB attenuation point at 3,800 Hz, less than 1 dB of passband ripple, and
`minimum attenuations of 18 dB at 4,000 Hz and 46 dB above 4,400 Hz. In certain applications, mild
`highpass filtering (e.g., 175 Hz second-order Butterworth) may also be of benefit.
`
`3.2 Voice Analvsi~
`
`3.2.1 Voice Input Filtering. The analog voice input bandpass should be essentially flat from 200
`to 3,400 Hz. A typical input filter has 3 dB attenuation points at 100 and 3,800 Hz; less than 1 dB of
`inband ripple; and minimum attenuations of 18 dB at 50 Hz, 18 dB at 4,000 Hz, and 46 dB above
`4,400 Hz.
`
`3.2.2 Analog-to-Digital Conversion. Analog-to-digital conversion shall use an 8 kHz A 0.1 percent
`sampling frequency and have a dynamic range of at least 12 bits.
`
`3.2.3 Amplitude Scaling. To maintain proper receiver voice levels, analysis shall be based upon use
`of input digitized voice whose peak values are -32,768 and +32,767.
`
`3.2.4 Analysis. As reflected in the following diagram, CELP is an analysis-by-synthesis type of
`
`CELP Synthesizer
`
`Error Minimization
`
`/
`
`I
`
`4
`
`e
`
`PCM Input
`(8 kHz Sampling)
`
`Perceptual Weighting Filter
`
`technique. The objective of CELPanalysis is to minimize the perceptual difference (i.e., find the best
`match) between the actual digitized voice and the synthesized voice resulting from use of the
`parameters to be transmitted. As shown in the diagram, linear Pulse Code Modulated (PCM) voice
`sampled at 8 kHz is subtracted from the CELP synthesizer approximation and passed through a
`perceptual weighting filter (see section 3.2.5). The synthesizer parameters to be transmitted are
`adjusted for minimum perceptual error with respect to the actual input voice signal.
`
`It is recommended that a perceptual weighting filter be the
`3.2.5 Perceptual Weighting Filter.
`cascade of a linear predictive whitening filter and a bandwidth expanded linear predictive synthesis
`filter. The bandwidth expanded linear predictive synthesis filter’s poles are moved radially toward
`the origin by a weighting factor, typically 0.8.
`
`3.3 “Stochastic” Codes. There are 512 fixed, stochastically-derived codes (i.e., vectors). During voice
`analysis, a code may be selected from a set smaller than 512 in order to reduce computational
`complexity (at the expense of voice reproduction quality). All 512 fixed, stochastical ly-derived codes
`
`-2-
`
`Page 2 of 24
`
`

`
`Downloaded from http://www.everyspec.com
`
`FED-STD 1016
`
`shall be available for voice synthesis. Each of the fixed, stochastically-derived codes contains 60
`ternary (i.e., either -1, 0, or 1 ) elements, representing information used to form the excitation for the
`Linear Prediction Filter over a subframe period (i.e., 8,000 elements/s for 7.5 ins). The fixed,
`stochastically-derived codes, 512 overlapped codes of 60 elements each, are created from a 1,082
`element “stochastic code book” as described below.
`
`3.3.1
`“Stochastic Code Book”. The 1,082 element “stochastic code book” is defined by the following
`FORTRAN computer program.
`
`program codebook
`implicit none
`integer M, L, MAXCODE, WIDTH, j, k
`parameter (M=512, L=60)
`parameter (MAXCODE=2*(M- l)+L)
`parameter (WIDTH= 20)
`real x( O: MAXCODE+l), THRESH
`parameter (THRESH=l .2)
`open (unit=lO, file= ’codebook.h’, status=’new’)
`do 50 k=O, MAXCODE, 2
`call noise(x(k), x(k+l))
`do 20 j=O, 1
`if(abs(x(k+j)) .lt. THRESH) then
`x(k+j) = 0.0
`el se
`x(k+j) = sign(l.0, x(k+j))
`end if
`continue
`20
`50 continue
`do 80 k=l, MAXCODE-WIDTH, WIDTH
`write (10,90) (int(x(j)), j=k, k+WIDTH-1)
`80 continue
`write (10,91) (int(x(j)), j=MAXCODE/WIDTH*WIDTH+l, MAXCODE)
`stop ‘codebook.h generated’
`90 format(lx, 20(i3, ‘,’))
`91 format(lx, 20(i3:, ‘,’))
`end
`subroutine noise(xl, x2)
`implicit none
`real xl, x2
`integer random, i, j
`r e a l f ( 2 ) , f l , f 2 , s
`10 do 30 i=l, 2
`do 20 j=l, 4
`f(i) = (float (randomo + 32768 ))/65535.
`20
`continue
`30 continue
`fl=2.*f(l)-l.
`f2=2.*f(2)-l.
`s=fl*fl+f2*f2
`if(s .ge. 1.) goto 10
`s = s q r t ( - 2 . * s l o g ( s ) / s)
`xl=fl*s
`x2=f2*s
`return
`end
`
`-3-
`
`Page 3 of 24
`
`

`
`FED-STD 1016
`
`Downloaded from http://www.everyspec.com
`
`function random ( )
`implicit none
`integer random
`integer MIDTAP, MAXTAP
`parameter (MIDTAP=2, MAXTAP=5)
`integer y(MAXTAP), j, k, temp
`save y, j, k
`datay/-2ll6l, -8478, 30892, -10216, 16950/
`data j/MIDTAP/, k/MAXTAP/
`temp=iand(y(k)+y(j), 65535)
`if (temp .gt. 32767) temp=temp-65536
`y(k)=temp
`random=temp
`k=k-1
`if (k le. O) k=MAXTAP
`j=j-1
`if (j le. O) j=MAXTAP
`return
`end
`
`The first and last 200 elements generated by the above FORTRAN program are shown below. The
`left-most and highest elements are lowest numbered (e.g., the element in the first row and third
`column is numbered 2).
`
`1,
`o,
`0,
`0,
`0,
`-1,
`0,
`0,
`0,
`1,
`0,
`0,
`-1,
`0,
`1,
`0,
`0,
`o,
`0, -1,
`
`0,
`0,
`0,
`-1,
`0,
`-1,
`-1,
`0,
`0,
`1,
`0,
`0,
`0,
`-1,
`-1,
`0,
`
`0,
`
`0,
`
`0,
`-1,
`-1,
`0,
`-1,
`0,
`0,
`0,
`-1,
`0,
`
`0,
`0,
`0,
`
`0,
`-1,
`
`1,
`0,
`0,
`0,
`1,
`0,
`0,
`-1,
`-1,
`0,
`
`0,
`1,
`-1,
`0,
`0,
`0,
`0,
`-1,
`
`0,
`0,
`0,
`0,
`0,
`0,
`0,
`
`0,
`-1,
`0,
`
`0,
`0,
`1,
`
`0,
`
`0,
`
`0, 1, 0, 1, 0, 0, 0, 0? -1>
`0,
`0,
`0, 0, -1, 0, -1, -19 0! 03
`0,
`0,
`0,
`0,
`-1, 0, 0, 0, 1, 09
`0,
`0,
`0,
`0, 0, 0, 0, 1, -1, 0,
`0,
`0,
`0,
`1, 0, 0, 0, -1, 0,
`-1,
`0,
`0,
`0,
`0,
`0,
`0,
`0,
`0,
`0,
`0,
`0,
`0, 0, 0, -1, -1,
`1, 0, 0, 0, 0, 0, 0, 0? O*
`0,
`-1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
`-1, 0, 1, 0, 0, 0, 0, 0,
`0,
`0,
`
`0,
`0,
`0,
`0,
`0,
`0,
`0,
`0,
`0,
`
`0,
`0,
`0,
`0,
`0,
`0,
`
`0,
`0,
`0,
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`0,
`
`0,
`0,
`0,
`
`0,
`0,
`1,
`0,
`0,
`-1,
`0,
`
`0,
`
`1,
`0,
`1,
`0,
`0,
`0,
`0,
`-1,
`0,
`0,
`
`0,
`0,
`0,
`-1,
`1,
`0,
`0,
`0,
`1,
`0,
`
`0,
`0,
`0,
`0.
`0,
`0,
`0,
`0,
`0,
`
`0,
`0,
`1,
`0,
`o,
`0,
`0,
`0,
`0,
`0, 0,
`
`0,
`0,
`0,
`0,
`0,
`1,
`0,
`-1,
`-1,
`1,
`
`0,
`0,
`0,
`
`0,
`0,
`0,
`-1,
`0,
`0,
`0,
`
`0,
`0,
`0,
`1,
`
`-1,
`0,
`0,
`
`1, 0, 0, 0, 0, -1,
`0,
`0,
`1,
`-1, 0, 0, 0, 1, 0, 0> 1$ 0> 0>
`0,
`0,
`0, 1, 0, 0, 0, 09 09 0, 03
`-1,
`1, 0, 0, 0, 0, 0, 0, 0> 0? 0>
`0,
`0,
`0, 1, 0, 0, -1, 1, -1, 0s 1? 0> 03 0?
`0, 0, 0, 0, 0, 0, -1, 1, 09 0? 09 0,
`0, 0, 0, 0, -1, 0, 0, 0, 0, -1! 0,
`0,
`0, 0, 0, 0, -1, 0, 0, -1> 0? 0? 03 0? 0>
`0, 0, -1, 0> 1, 0? 0, 1, 0> 0? 0, 0> -13
`0, 0, -1, 0, 0, -1, 0, 0> 0> 03 0$ 0> 1>
`
`0,
`0,
`0,
`
`3.3.2 Creation of Stochastically-derived Codes. The 512 fixed codes of 60 elements each are
`assembled from the l,082stochastically-derived “stochasticc odebook’’elements asshown below. The
`left-most code elements are first-most in time.
`
`-4-
`
`Page 4 of 24
`
`

`
`Downloaded from http://www.everyspec.com
`
`FED-STD 1016
`
`Elements In Codes
`
`0, 1, 2,...
`2, 3, 4,...
`
`. . . . 58, 59
`. . . . 60, 61
`
`2(51 l-n), 2(511 -n)+l,..
`
`. . . . 2(511 -n)+59
`
`1,020, 1,021, 1,022,...
`1,022, 1,023, 1,024,...
`
`. . . . 1,078, 1,079
`. . . . 1,080, 1,081
`
`Index
`
`511
`510
`
`.n
`
`. i
`
`0
`
`—
`
`3.4 “Stochastic” Code Gain. The relative amplitude (to the nearest table value) to be applied to the
`stochastically-derived code elements of each subframe is determined during analysis and coded into
`5 bits according to the following table. The decimal index number is then transmitted in binary form.
`At the receiver, in voice synthesis, the gain index number is used to decode the relative amplitude
`of the stochastically - derived code elements during the subframe.
`
`Index
`
`Gain
`
`Index
`
`Gain
`
`Index Gain
`
`Index
`
`Gain
`
`16
`17
`18
`19
`20
`21
`22
`23
`
`1
`3
`13
`35
`64
`98
`136
`178
`
`24
`25
`26
`27
`28
`29
`30
`31
`
`224
`278
`340
`418
`520
`660
`870
`1,330
`
`-178
`-136
`98
`-64
`-35
`-13
`-3
`-1
`
`89
`
`10
`11
`12
`13
`14
`15
`
`o
`1
`2
`3
`4
`5
`6
`7
`
`-1,330
`-870
`-660
`-520
`-418
`-340
`-278
`-224
`
`3.5 AdaDtive Codes
`
`3.5.1 Adaptive “Code
`Book” and Integer-delay Codes. The adaptive “code book” is a 147-elen~ent,
`shifting storage register that is updated at the start of every subframe with the previous 60 elements
`(subframe interval) of Linear Prediction Filter excitation. Element ordering is such that the first
`excitation elements into the Linear Prediction Filter are the first into the adaptive “code book”.
`Elements already in the storage register are shifted up during the update process and the oldest
`elements are discarded. The 128 integer-delay overlapped adaptive codes, of 60 elements each, are
`generated from the information in the adaptive “code book” as follows. Adaptive codes 60 through
`147 are composed of elements -60 to -1, -61 to -2, . . . through -147 to -88, respectively (where
`element -1 was the last element into the adaptive “code book”). Adaptive code “n”, where n ranges
`from 20 to 59, repeats the adaptive “code book” elements sequentially from -n to -1 to form a
`60-element code. As examples, adaptive code 20 repeats adaptive “code book” elements -20 ...-1
`three times and adaptive code 59’s elements run -59 . . . -1, -59. Regarding order of utilization, the
`most negatively numbered (i.e., most delayed) element of a particular adaptive code is used to
`compute the first element in time of Linear Prediction Filter excitation for a particular subframe
`period.
`
`3.5.2 Noninteger-delay Codes. An additional 128 impli’tit, noninteger-delay codes, defined in
`section 3.5.4, can optionally be made available through interpolation during voice analysis. All 256
`adaptive codes shall be available for voice synthesis. Forty point interpolation, or the equivalent, shall
`be used in both voice analysis and voice synthesis. (However, this does not preclude interpolating
`with fewer points, perhaps as few as 8 points, during preliminary code search computations). The
`process of interpolation is described in section 3.5.3.
`
`-.
`
`-5-
`
`Page 5 of 24
`
`

`
`FED-STD 1016
`
`Downloaded from http://www.everyspec.com
`
`3.5.3 Interpolation. Anoninteger-delay adaptive codeisinterpolated fromthe nearest lower-valued
`integer-delay code (e.g., noninteger-delay code 49.67 is determined by interpolating from
`integer-delay code 49). The 60 elements of the integer-delay code are first renumbered as RO . . . R59
`for purposes of description, where RO is normally the most negatively numbered (i.e., most delayed)
`element under the previous numbering system (i.e., -1 to - 147), R1 is the next most negatively
`numbered element, etc. For example, for integer-delay code 66, RO=element -66, R 1 =element -65,
`and R59=element -7. For integer-delay code 21, because of the repetition within lower numbered
`integer-delay codes, RO=element -21, Rl=element -20, R58=element -4, and R59=element -3.
`L i k e w i s e , f o r i n t e g e r - d e l a y c o d e 5 8 , RO=element -58, Rl=element -57, R57=element -1,
`R58=element -58, and R59=element -57.
`
`The next step in explaining the process of interpolation is to show the computation of the weighting
`factors. The following FORTRAN program gives interpolation weighting factors for the interpolation
`of even numbers of points (N) equal to and less than 40. Note: interpolation with less than 8 points
`is not recommended and interpolation with other than 40 points is only for preliminary computations
`during voice analysis.
`
`program weights
`implicit none
`integer N, nf, i, j, k
`parameter (N=40, nf=5)
`real h(-6*N:6*N), w(-N/2:N/2-l, nf), f(nf), pi
`data f/O.25, 0.33333333, 0.5, 0.66666667, 0.75/
`pi = 4oO*atan(l .0)
`open(unit=l O, file= ’weights’, status= ’new’)
`do 10 k = -6*N, 6*N
`h(k) = 0.54 + 0.46* cos(pi*k/(6*N))
`10 continue
`do 30 i = 1, nf
`d o 2 0 j= -N/2, N/2-l
`w(j, i) = h(nint(12*(j+f( i)))) *sin(pi*(j+f( i)))/ (pi*(j+f(i )))
`continue
`20
`30 continue
`write (10,69) f
`d o 4 0 j= -N/2, N/2-l
`write (10,70) j, (w(j, k), k = 1, nf)
`40 continue
`69 format (7x, 5f14. 5)
`70 format(3x, i4, 5e14.5)
`end
`
`For N-point interpolation, the above program yields N weighting factors, numbered from -N/2 to
`N/2-l. Asthefinal step showing theprocess ofinterpolation, these weighting factors are multiplied
`by the values of the adaptive code elements within a “window” around the element being interpolated
`(R). The sum of these multiplications is the interpolated value of that element (R’). For example,
`for 40 point interpolation, to find noninteger-delay code 66.67 (i.e., integer= 66, fraction= .67), element
`-66 becomes RO. Weighting factor -20 (i.e., -.001 1766) is multiplied by the value of element -86,
`weighting factor -19 (i.e., .0014386) is multiplied by the value of element -85, . . . . weighting factor
`O (i.e., .41245) is multiplied by the value of element -66, . . . , up to weighting factor 19 (i.e.,
`-.001 1302) being multiplied by the value of element -47, The sum of these becomes the interpolated
`value of element -66 (i.e., R’O). The same operation takes place in a “window” around the remaining
`elements (Rl - R59). However, in the example given, the samples run out beyond R46 (i.e., for R46
`weighting factor 19 is multiplied by the value of element - 1).
`In such cases, the previously
`interpolated values for elements RO, Rl, R2, . . . (i.e., R’0, R*1, R’2, . . . ) are used to complete
`interpolation of the remaining elements. Thus, in the example given, when interpolating R58 (i.e.,
`element -8), weighting factor -20 is multiplied by the value of element -28 and weighting factor 19
`
`-6-
`
`Page 6 of 24
`
`

`
`Downloaded from http://www.everyspec.com
`
`FED-STD 1016
`
`is multiplied by the value of already interpolated element R’11 (i.e., interpolated element -56). The
`sum of the 40 values found by multiplying the 40 weighting factors by the 40 element values (i.e.,
`element -28, element -27, element -26, . . . element -1, R’0, R*1, . . . R’ 10, R’1 1 ) becomes the value of
`R’58 (i.e., interpolated element -8).
`
`3.5.4 Coding Within 1st and 3rd Subframes for Transmission. The following table identifies the
`8-bit values transmitted to represent each of the 256 (128 integer-delay and 128 noninteger-delay
`(implicit)) adaptive codes. The notation is such that, for example, hexadecimal ($) AF is expressed
`as 10101111 in binary form, where bit 7 is on the left and bit O is on the right.
`
`Adaptive Hex
`Code
`20.00 $42
`20.33 $46
`20.67 $47
`21.00 $57
`21.33 $56
`21.67 $59
`22.00 $58
`22.33 $AE
`22.67 $BE
`23.00 $BA
`23.33 $B8
`23.67 $BC
`24.00 $AC
`24.33 $A8
`24.67 $94
`25.00 $84
`25.33 $8C
`25.67 $9C
`26.00 $9E
`26.25 $8E
`26.50 $86
`26.75 $96
`27.00 $OA
`27.25 $02
`27.50 $OB
`27.75 $03
`28.00 $lB
`28.25 $13
`28.50 $09
`28.75 $01
`29.00 $19
`29.25 $11
`29.50 $F3
`29.75 $F7
`30.00 $E7
`30.25 $E3
`30.50 $E5
`30.75 $El
`31.00 $Fl
`31.25 $F5
`31.50 $61
`31.75 $65
`32.00 $75
`
`Adaptive Hex
`Code
`34.67 $CO
`35.00 $C3
`35.33 $C2
`35.67 $D2
`36.00 $D3
`36.33 $Dl
`36.67 $DO
`37.00 $30
`37.33 $32
`37.67 $3A
`38.00 $31
`38.33 $33
`38.67 $3B
`39.00 $3F
`39.33 $37
`39.67 $3E
`40.00 $36
`40.33 $34
`40.67 $4A
`41.00 $4B
`41.33 $4E
`41.67 $4F
`42.00 $5F
`42.33 $5E
`42.67 $5C
`43.00 $5D
`43.33 $54
`43.67 $55
`44.00 $50
`44.33 $51
`44.67 $AA
`45.00 $A6
`45.33 $A2
`45.67 $B6
`46.00 $B2
`46.33 $BB
`46.67 $BO
`47.00 $B9
`47.33 $B4
`47.67 $BD
`48.00 $A4
`48.33 $AO
`48.67 $A9
`
`Adaptive Hex
`Code
`51.67 $98
`52.00 $90
`52.33 $80
`52.67 $9A
`53.00 $8A
`53.33 $82
`53.67 $92
`54.00 $lA
`54.33 $12
`54.67 $00
`55.00 $08
`55.33 $06
`55.67 $OE
`56.00 $OF
`56.33 $07
`56.67 $17
`57.00 $lF
`57.33 $OD
`57.67 $05
`58.00 $lD
`58.33 $15
`58.67 $FB
`59.00 $FF
`59.33 $EB
`59.67 $EF
`60.00 $ED
`60.33 $EA
`60.67 $EE
`61.00 SEC
`61.33 $E6
`61.67 $E2
`62.00 $E4
`62.33 $EO
`62.67 $F4
`63.00 $FO
`63.33 $60
`63.67 $64
`64.00 $74
`64.33 $70
`64.67 $73
`65.00 $72
`65.33 $6C
`65.67 $7C
`(continued)
`
`- 7-
`
`Adaptive Hex
`Code
`68.67 $C5
`69.00 $C9
`69.33 $C8
`69.67 $C7
`70.00 $CB
`70.33 $C6
`70.67 $CA
`71.00 $D6
`71.33 $DA
`71.67 $DB
`72.00 $D7
`72.33 $D9
`72.67 $D5
`73.00 $D8
`73.33 $D4
`73.67 $20
`74.00 $28
`74.33 $38
`74.67 $22
`75.00 $2A
`75.33 $39
`75.67 $29
`76.00 $21
`76.33 $23
`76.67 $2B
`77.00 $27
`77.33 $2F
`77.67 $25
`78.00 $2D
`78.33 $3D
`78.67 $35
`79.00 $3C
`79.33 $2E
`79.67 $2C
`80.00 $26
`81.00 $24
`82.00 $49
`83.00 $48
`84.00 $4C
`85.00 $4D
`86.00 $44
`87.00 !$45
`88.00 $40
`
`Adaptive Hex
`Code
`97.00 $Al
`98.00 $97
`99.00 $87
`100.0 $9F
`101.0 $8F
`102.0 $81
`103.0 $91
`1 0 4 . 0 $9B
`105.0 $8B
`106.0 $83
`107.0 $93
`108.0 $18
`109.0 $10
`110.0 $04
`111.0 $Oc
`112.0 $16
`1 1 3 . 0 $lE
`114.0 $14
`1 1 5 . 0 $lC
`116.0 $F9
`117.0 $ FA
`118.0 $FD
`119.0 $E9
`120.0 $FE
`121.0 $E8
`122.0 $FC
`123.0 $43
`124.0 $F2
`125.0 $F6
`126.0 $F8
`127.0 $5B
`128.0 $5A
`129.0 $63
`130.0 $62
`131.0 $77
`132.0 $76
`133.0 $52
`134.0 $53
`135.0 $66
`136.0 $67
`137.0 $Cc
`138.0 $CD
`139.0 $AB
`
`—
`
`Page 7 of 24
`
`

`
`FED-STD 1016
`
`32.25 $71
`32.50 $6D
`32.75 $7D
`33.00 $69
`33.25 $79
`33.50 $7B
`33.75 $7F
`34.00 $6B
`34.33 $Cl
`
`Downloaded from http://www.everyspec.com
`
`49.00 $ AD
`49.33 $95
`49.67 $85
`50.00 $9D
`50.33 $8D
`50.67 $89
`51.00 $99
`51.33 $88
`
`66.00 $68
`66.33 $78
`66.67 $7A
`67.00 $7E
`67.33 $6A
`67.67 $6E
`68.00 $6F
`68.33 $C4
`
`89.00 $41
`90.00 $A7
`91.00 $A3
`92.00 $B7
`93.00 $B3
`94.00 $Bl
`95.00 $B5
`96.00 $A5
`
`140.0 $CF
`141.0 $CE
`142.0 $DE
`143.0 $BF
`144.0 $DF
`145.0 $ DD
`146.0 $DC
`147.0 $AF
`
`Note: Before an adaptive code is selected for transmission, consideration shouldbe
`given to the possibility that amultiple of actual ’’pitch’’ is being selected. Submultiple
`of aselected code’s pitch equivalent should reexamined and maybe utilized instead
`if results are found to be within approximately 0.5 dB ofa selected code’s squared
`prediction error.
`
`3.5.5 Coding Within 2nd and 4th Subframes for Transmission. The adaptive code selected for
`transmissions representedin 6bits, based upon the adaptive code selected in the previous subframe,
`Utilizing the table of adaptive codes in section 3.5.4, if aprevious subframe’s adaptive code wasin
`the range of20.00 - 29.25, the adaptive code tobe transmitted could run from 20.00 to 38.33. If the
`previous subframe’s adaptive code was inthe rangeof 115.0- 147.0, the adaptive code could run
`from 84.00 to 147,0. otherwise, the 6bits will code the range from 31 codes lower to 32 codes higher
`than the previous subframe’s adaptive code (considering both integer-delay and noninteger-dela!’
`adaptive codes). This is true even if an implementation uses only integer adaptive codes. Binar~
`coding is such that the lowest numbered adaptive code is coded as 000000 and the highest numbered
`adaptive code is coded as 111111. For example, for previous subframe adaptive codes between 29.50
`and 114.0, binary 011111 indicates no difference from the adaptive code of the previous subframe.
`
`AdaDtive Code Gain. The relative amplitude (to the nearest table value) to be applied to the
`3.6
`adaptive code elements of each subframe is determined during analysis and coded into 5 bits
`according to the following table. The decimal index number is then transmitted in binary form. At
`the receiver, in voice synthesis, the adaptive code gain index number is used to decode the relative
`amplitude of the adaptive code elements during the subframe.
`
`Index
`
`16
`17
`18
`19
`20
`21
`22
`23
`
`Gain
`
`0.780
`0.816
`0.850
`0.881
`0.915
`0.948
`0.983
`1.020
`
`Index
`
`Gain
`
`24
`25
`26
`27
`28
`29
`30
`31
`
`1.062
`1.117
`1.193
`1.289
`1.394
`1.540
`1.765
`1.991
`
`Gain
`
`0.255
`0.368
`0.457
`0.531
`0.601
`0.653
`0.702
`0.745
`
`Index
`
`89
`
`10
`11
`12
`13
`14
`15
`
`Gain
`
`-.993
`-.831
`-.693
`-.555
`-.414
`-.229
`0.000
`0.139
`
`Index
`
`o1234567
`
`3.7 Linear Prediction
`
`3.7.1 Linear Prediction Filter. A 10th order Linear Prediction Filter is excited by the sum of the
`gain-adjusted “stochastic” and adaptive codes to synthesize voice.
`
`3.7.2 Line Spectral Parameters. During voice analysis, the parameters of the Linear Prediction
`Filter are determined and transmitted on a 30 ms frame basis as 10 Line Spectral Parameters (LSPS),
`It is recommended that LSPS be determined with no
`on the basis of 10th order linear prediction.
`preemphasis, 15 Hz bandwidth expansion (i.e., 0.994 weighting factor), and a 30 ms nonoverlapped
`Hamming window spanning the last two subframes of the present frame and first two subframes of
`the next frame. Shown below is the coding to be employed for the 10 LSPS. Note: LSPS are
`
`-8-
`
`Page 8 of 24
`
`

`
`Downloaded from http://www.everyspec.com
`
`FED-STD 1016
`
`expressed in terms of frequency (Hz) and must be monotonic (i.e., higher numbered LSPS must not
`contain lower frequencies than lower numbered LSPS).
`
`.
`
`Index
`
`LSP 1
`(Hz)
`
`LSP2
`(Hz)
`
`LSP3
`(Hz)
`
`LSP4
`(Hz)
`
`LSP5
`(Hz)
`
`LSP6
`(Hz)
`
`LSP7
`(Hz)
`
`LSP8
`(Hz)
`
`LSP9
`(Hz)
`
`LSP1O
`(Hz)
`
`1,470
`1,570
`1,690
`1,830
`2,000
`2,200
`2,400
`2,600
`
`1,800
`1,880
`1,960
`
`2,100
`2,300
`
`2,480
`2,700
`2,900
`
`2,225
`2,400
`2,525
`2,650
`2,800
`
`2,950
`
`3,150
`3,350
`
`2,760
`2,880
`
`3,000
`3,100
`3,200
`3,310
`3,430
`3,550
`
`3,190
`3,270
`3,350
`
`3,420
`3,490
`3,590
`3,710
`3,830
`
`100
`170
`225
`
`250
`280
`340
`420
`
`500
`
`210
`235
`265
`295
`
`325
`360
`400
`440
`480
`520
`560
`610
`670
`740
`
`810
`
`880
`
`420
`460
`
`500
`
`540
`585
`640
`705
`775
`
`850
`950
`1,050
`1,150
`1,250
`
`1,350
`1,450
`
`1,550
`
`620
`660
`720
`795
`880
`970
`1,080
`1,170
`1,270
`1,370
`1,470
`1,570
`1,670
`
`1,770
`
`1,870
`
`1,970
`
`1,000
`1,050
`1,130
`1,210
`1,285
`1,350
`1,430
`1,510
`1,590
`1,670
`1,750
`1,850
`1,950
`
`2,050
`2,150
`
`2,250
`
`0 1 2 3 4 5 6 7 8 9
`
`10
`11
`12
`
`13
`14
`
`15
`
`LSP Weighted Averaging. To determine the LSP values to be used for each subframe,
`3.7.3
`weighted averaging is used between the LSPS transmitted with the previous frame and the LSPS
`transmitted with the present frame. For each of the subframes of a given frame, the following
`weighting is given to the LSPS transmitted with the previous and present frames before they are
`utilized.
`
`Subframe
`
`Previous LSPS
`
`Present LSPS
`
`1
`2
`3
`4
`
`7/8
`5/8
`3/8
`1/8
`
`1/8
`3/8
`5/8
`7/8
`
`Thus, for example, if LSP 1 of a frame is 250 Hz and LSP 1 of the previous frame was 340 Hz, the
`value used for subframe 1 of the present frame is: 7/8(340 Hz) + 1 /8(250 Hz) = 328.75 Hz. For each
`subframe, this method of weighted averaging is employed for all 10 LSPS.
`
`3.8 Transmission Format
`
`3.8.1 Transmission Rate. The transmission rate for CELP shall be 4,800 bits/s f.01 percent.
`
`3.8.2 Bit Assignment. The table below gives the assignment of the 144 bits in each CELP frame
`(30 ms at 4,800 bits/s). Order of transmission is from bit 1 to bit 144. Abbreviations used in the
`following table are:
`
`-9-
`
`.
`
`—
`
`Page 9 of 24
`
`

`
`FED-STD 1016
`
`Downloaded from http://www.everyspec.com
`
`i = bit number, with O being the least significant bit
`n = subframe number
`CG(n)-i = Fixed, Stochastically-derived Code Gain
`CI(n)-i = Fixed, Stochastically-derived Code Index
`HP-i = Parity
`LSP j-i = Line Spectral Parameter (LSP), where j = LSP number
`PD(n)-i = Adaptive Code Index
`PG(n)-i = Adaptive Code Gain
`SP = Expansion Bit
`SY = Synchronization Bit
`
`Bit
`
`Description
`
`Bit
`
`Description
`
`Bit
`
`Description
`
`Bit
`
`Description
`
`109
`110
`111
`112
`113
`114
`115
`116
`117
`118
`119
`120
`121
`122
`123
`124
`125
`126
`127
`128
`129
`130
`131
`132
`133
`134
`135
`136
`137
`138
`139
`140
`141
`142
`143
`144
`
`CI(l)-2
`PG(2)-1
`CI(3)-7
`LSP 4-O
`CI(2)-5
`PD(l)-7
`PG(l)-O
`CG(4)-4
`LSP 5-O
`PD(4)-2
`CI(l)-3
`CI(3)-1
`LSP 7-2
`CI(4)-2
`PD(l)-1
`PG(2)-4
`CG(3)-3
`LSP 3-1
`CI(l)-7
`PD(3)-2
`CI(2)-6
`LSP 9-2
`PG(4)-1
`CG(l)-1
`PD(2)-4
`HP-3
`LSP 6-O
`PG(3)-3
`CI(4)-6
`PD(l)-O
`LSP 2-3
`CG(4)-1
`CI(3)-2
`LSP 4-2
`PD(3)-5
`SY
`
`37
`38
`39
`40
`41
`42
`43
`44
`45
`46
`47
`48
`49
`50
`51
`52
`53
`54
`55
`56
`57
`58
`59
`60
`61
`62
`63
`64
`65
`66
`67
`68
`69
`70
`71
`72
`
`PD(2)-O
`CI(4)-1
`LSP 9-O
`CI(3)-8
`PG(l)-4
`CG(2)-2
`PD(l)-3
`LSP 6-1
`CI(3)-4
`CI(2)-2
`CG(l)-4
`PD(2)-3
`LSP 1-2
`PG(3)-2
`HP-1
`PD(3)-1
`CG(4)-3
`LSP 8-1
`PG(3)-O
`CI(2)-8
`PD(4)-1
`CI(4)-O
`LSP 3-2
`PG(2)-O
`PD(l)-6
`CG(2)-O
`CI(3)-6
`LSP 10-1
`PG(l)-1
`CI(4)-7
`PD(3)-3
`CG(l)-2
`LSP 5-3
`CI(l)-6
`LSP 2-O
`PG(3)-4
`
`73
`74
`75
`76
`77
`78
`79
`80
`81
`82
`83
`84
`85
`86
`87
`88
`89
`90
`91
`92
`93
`94
`95
`96
`97
`98
`99
`100
`101
`102
`103
`104
`105
`106
`107
`108
`
`PD(l)-4
`CG(3)-2
`LSP 7-1
`CI(2)-7
`CI(3)-O
`PD(2)-5
`LSP 4-1
`CG(l)-O
`PG(4)-3
`LSP 9-1
`PD(3)-6
`CI(l)-4
`CG(2)-1
`LSP 6-2
`CI(4)-3
`PG(2)-2
`PD(4)-3
`LSP 1-0
`CG(4)-2
`LSP 8-2
`CI(2)-4
`HP-2
`PD(2)-2
`LSP 3-O
`PG(l)-2
`CG(3)-4
`LSP 10-2
`CI(4)-5
`CI(2)-O
`PD(l)-2
`LSP 5-1
`SP-O
`PG(4)-2
`CG(2)-3
`LSP 2-1
`PD(4)-4
`
`PG(4)-4
`PD(3)-4
`LSP 1-1
`CG(2)-4
`CI(3)-3
`CI(l)-8
`?D(4)-O
`LSP 8-O
`PG(2)-3
`CG(3)-O
`PD(l)-5
`LSP 3-3
`CI(2)-3
`CI(4)-4
`PD(2)-1
`LSP 10-0
`PG(l)-3
`CG(4)-O
`LSP 5-2
`PD(3)-O
`HP-O
`CI(l)-1
`CI(4)-8
`LSP 2-2
`PG(3)-1
`PD(4)-5
`CG(l)-3
`CI(3)-5
`LSP 7-O
`CI(2)-1
`PD(3)-7
`CI(l)-O
`PG(4)-O
`LSP 4-3
`CG(3)-1
`CI(l)-5
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`26
`27
`28
`29
`30
`31
`32
`33
`34
`35
`36
`
`3.8.3
`Synchronization Bit. Thesingle synchronization bitperframe shall alternate between binary
`O and 1 from frame to frame. It should be coded as binary-O for the first frame transmitted.
`
`3.8.4 Expansion Bit. When following this standard, the expansion bit shall be set to binary O in each
`frame. The purpose of this bit is to allow for future transition to as yet undefined coding techniques.
`
`-1o-
`
`Page 10 of 24
`
`

`
`Downloaded from http://www.everyspec.com
`
`FED-STD 1016
`
`3.9 Error Correction
`
`Forward error correction of 11 bits with a (15,11) Hamming parity code is
`3.9.1 Encoding.
`provided. The 11 bits protected from a single bit error are: PD(l)-5, PD(l)-6, PD(l)-7, pG(l)-4,
`PG(2)-4, P~3)-5, PD(3)-6, PD(3)-7, PG(3)-4, PG(4)-4, and SP. (See section 3.8.2 foran explanation
`of these abbreviations). The 4 parity bits are encoded as follows. Parity bits Hp-O through Hp-3
`each represent an even parity computation on 7 of the 11 protected bits as shown below (i.e., a parity
`bit is O if the sum of the 7 protected bits is even).
`
`HP-O --PD(l )-5, PD(l)-6, PG(l)-4, PG(2)-4, PD(3)-6, PG(3)-4, and SP
`HP- 1 --PD(l )-5, PD(l)-7, PG(I)-4, PD(3)-5, PD(3)-6, PG(4)-4, and Sp
`HP-2 --PD(l )-6, PD(l)-7, PG(l)-4, PD(3)-7, PG(3)-4, PG(4)-4, and W
`HP-3 --PG(2)-4, PD(3)-5, PD(3)-6, PD(3)-7, PG(3)-4, PG(4)-4, and SP
`
`3.9.2 Decoding. The 4 parity bits (HP-0,1 ,2, and 3) shall be used to correct single errors in the 11
`protected bits as follows. Parity bits are calculated on the received 11 protected bits as described in
`section 3.9.1. Then, these calculated parity bits are Exclusive ORed with the received parity bits.
`The following table shows how to correct for a single bit error by reversing the binary value of one
`of the protected bits based upon the resulting binary value of the Exclusive ORed parity bits.
`
`Parity Result Invert
`
`Parity Result Invert
`
`3
`5
`6
`7
`9
`10
`
`PD(l)-5
`PD(l)-6
`PD( 1 )-7
`PG(l)-4
`PG(2)-4
`PD(3)-5
`
`3.10
`
`General Application Notes
`
`11
`12
`13
`14
`15
`
`PD(3)-6
`PD(3)-7
`PG(3)-4
`PG(4)-4
`SP
`
`3.10.1 Amplitude Scaling. “Stochastic” elements and gain values contained in this standard are based
`upon use of input digitized voice that can assume any integer value in the range -32,768 to +32,767
`and an impulse of 1.0 to calculate the impulse response of the perceptual weighting filter.
`
`3.10.2 Filter Structure. Various filter structures may be used in the implementation of this standard.
`All implementations must be interoperable with implementations based upon Direct Form (i.e.,
`block-wise) filtering.
`
`3.10.3 Smoothing. It is desirable to employ smoothing to prevent loud clipped voice (i.e., blasts) and
`squeaks. Smoothing based upon estimates of the channel error rate (provided by the error correction
`mechanism described in section 3.9) is recommended.
`
`4. EFFECTIVE DATE. The use of this standard by U.S. Government departments and agencies is
`mandatory effective 180 days after the date of this standard.
`
`5. CHANGES. When a Government department or agency considers that this standard does not
`provide for its essential needs, a statement citing specific requirements shall be sent in duplicate to
`the General Services Administration (K), Washington, DC 20405, in accordance with the provisions
`of Federal Information Resources Management Regulation 41 CFR 201-20. The General Services
`Administration will determine the appropriate action to be taken and will notify the agency.
`
`-11-
`
`Page 11 of 24
`
`

`
`Downloaded from http://www.everyspec.com
`
`FED-STD 1016
`
`TECHNICAL DEVELOPMENT ACTIVITY:
`
`National Security Agency
`Information Security Organization (R2)
`Fort George G. Meade, MD 20755
`
`PREPARING ACTIVITY:
`
`National Communications System
`Office of Technology and Standards
`Washington, DC 20305-2010
`
`MILITARY INTERESTS
`
`Military Coordinating Activity
`DCA -- DC
`
`--
`
`Custodians
`Army -- SC
`Navy -- EC
`Air Force --90
`
`-12-
`
`Review Activities
`Army -- CR
`Navy -- AS, OM
`Air Force -- 17
`USMC -- MC
`NSA -- NS
`
`Page 12 of 24
`
`

`
`Downloaded from http://www.everyspec.com
`
`FED-STD 1016
`February 14, 1991
`
`—
`
`FEDERAL STANDARD
`
`TELECOMMUNICATIONS: ANALOG TO DIGITAL CONVERSION OF RADIO
`VOICE BY 4,800 BIT/SECOND CODE EXCITED LINEAR PREDICTION (CELP)
`
`This standard is issued by the General Services Administration pursuant to
`the Federal Property and Administrative Services Act of 1949, as amended.
`
`1. SCOPE
`
`1.1 Description. This standard specifies interoperability -related requirements for the conversion of
`analog voice to a 4,800 bit/s digitized form for digital radio transmission by a method known as Code
`Excited Linear Prediction (CELP) and the reverse process, the synthesis of analog voice from
`4,800 bit/s CELP-digitized voice. In addition to digital radio applications, CELP is also very suitable
`for encrypted telephone use and other applications wherein voice must be digitized prior to
`encryption.
`
`1.2 Pur~ose. This standard is to facilitate interoperability between radio telecommunication facilities
`and systems of the Federal Government.
`
`1.3 Am3]ication. This standard shall be used by all Federal departments and agencies in the design
`and procurement of all radio equipment employing 4,800 bit/s digitized voice.
`
`2. CONVENTIONS AND DEFINITIONS
`
`a. Frame. A CELP frame is 144 bits in length. A frame interval is 30 ms f.01 percent in
`duration and contains 240 voice samples (8,000 samples/s).
`
`A CELP subframe is 1/4 the length of a frame.
`b . Subframe.
`ms t.01 percent in duration and contains 60 voice samples.
`
`7.5
`
`Thus, a subframe is
`
`3.
`
`REQUIREMENTS
`
`3.1
`
`Voice Svnthesis
`
`3.1.1 General Description.
`Since Code Excited Linear Prediction (CELP) is an analysis-
`by-synthesis type of technique, voice synthesis is described first. As shown in the diagram below,
`CELP synthesis involves the excitation of a parameter-adjusted Linear Prediction Filter by the sum
`of gain-scaled codes

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket