Lost frame concealment.
Abstract
This record has no abstract on file.
Term
Term ended
Projected expiry passed 2 June 2014, 12.3 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
16 claims: 2 independent, 14 dependent
- 1Claims of equivalent WO 9429850 A1 CLAIMS 1. An apparatus in a receiver in a frame based communication system, for concealing the effects of lost frames in a speech decoder (24), which speech decoder is of the source-filter type and is controlled by means (20, 22, 24) including internal state variables updated on a frame by frame basis for modifying received filter defining parameters representing background sounds, said apparatus being characterized by:(a) means (14) for detecting loss of frames;(b) means (18) for concealing the effects of a lost frame by restricting updating of at least one of said internal state variables.
- 9A method in a receiver in a frame based radio communication system, for concealing the effects of lost frames in a speech decoder, which speech decoder is of the source-filter type and comprises means including internal state variables updated on a frame by frame basis for modifying received filter defining parameters representing background sounds, said method being characterized by:(a) detecting loss of frames, (b) concealing the effects of a lost frame by restricting updating of at least one of said internal state vari¬ ables.
Independent claims2
228 paragraphs in 31 sections, as filed
Description of equivalent WO 9429850 A1
LOST FRAME CONCEALMENT
TECHNICAL FIELD
0003The present invention relates to lost frame concealment in a communication system, for example a radio communication system, and specifically to an apparatus and a method for improving decoding of background sounds in such a system.
BACKGROUND OF THE INVENTION
0005Means for improving encoding/decoding of background sounds, primarily intended for digital cellular telephone systems, have been described in Swedish Patent Applications 93 00290-5 and 93 01798-6. These means are primarily designed to handle a situation where the connection between the speech encoder and the speech decoder is close to ideal, in the sense that no frames are lost. However, in for example the American digital cellular standard IS-54 the Fast Associated Control CHannel (FACCH) is established by stealing speech frames from the traffic channel (a similar channel exists in the European GSM specification). In such a case it may be necessary to modify the methods described in the above Swedish patent applications. A similar situation arises in a packet switched network when packets (frames) are lost or arrive too late to be used for speech generation in real time (the packets may take different routes between sender and receiver).
0006An object of the present invention is an apparatus and a method in which so called lost frame concealment is applied to the received signal in order to make the speech decoding more robust or insensitive to lost frames.
SUMMARY OF THE INVENTION
0008In accordance with the invention this object is solved by an apparatus in a receiver in a frame based communication system, for concealing the effects of lost frames in a speech decoder, which speech decoder is of the source-filter type and is controlled by means including internal state variables updated on a frame by frame basis for modifying received filter defining parameters representing background sounds, said apparatus being characterized by:
0009(a) means for detecting loss of frames;
0010(b) means for concealing the effects of a lost frame by restricting updating of at least one of said internal state variables.
0011Furthermore, in accordance with the invention the above object is also solved by a method in a receiver in a frame based radio communication system, for concealing the effects of lost frames in a speech decoder, which speech decoder is of the source-filter type and comprises means including internal state variables updated on a frame by frame basis for modifying received filter defining parameters representing background sounds, said method being characterized by:
0012(a) detecting loss of frames,
0013(b) concealing the effects of a lost frame by restricting updating of at least one of said internal state vari¬ ables.
0014Swedish patent application 9302025-3 describes a similar approach for transmission error concealment.
BRIEF DESCRIPTION OF THE DRAWING
0016The invention, together with further objects and advantages thereof, may best be understood by making reference to the following description taken together with the accompanying drawing, which is a schematic block diagram of the relevant parts of a receiver in a radio communication system containing an appa¬ ratus in accordance with the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
0018To understand the operation of the invention it is useful to briefly review the operation of a typical digital cellular radio connection, typical lost frame concealment techniques, and also to review the algorithms of the above mentioned Swedish patent applications.
0019In a communication link of a digital cellular telephone system the acoustic signal is first digitized and then a speech coding algorithm is applied (see for example B.S. Atal, V. Cuperman and A. Gersho, eds, "Advances in Speech Coding", Kluwer Academic Publishers, 1991). This algorithm compresses the speech signal and transforms it to a number of quantized parameters (usually in a frame based manner). The resulting bits are thereafter protected by addition of coding redundancy, using channel encoding techniques (see for example G.C. Clark and J.B. Cain, "Error Correction Coding for Digital Communication", Plenum Press, 1981). The resulting bit stream is then modulated (see for example J.G. Proakis, "Digital Communication", 2nd edition, McGraw-Hill, 1989) and transmitted, for example using TDMA (Time Division Multiple Access) techniques. At the receiver the signal is demodulated. Possible time or multipath dispersion can be countered by various equalization techniques, for example Viterbi equalization or decision feedback equalization (see for example the reference by J.G. Proakis above). Channel decoding (see for example the reference by G.C. Clark and J.B. Cain above) is then used in order to decode the bits that form the quantized parameters that the speech decoder needs in order to reconstruct the transmitted speech signal. It is clear from the above discussion that lost frames can affect the reconstructed speech signal, thus reducing the quality of that signal.
0020In for example the American digital cellular system in accordance with the standard IS-54 a stolen frame for FACCH would result in a lost speech frame at the speech decoder in the receiver. The speech decoder solves this problem by "filling in" suitable information. Usually the corresponding information from the previous frame is used instead of the lost frame. However, if the decoder provides so called anti-swirling actions for background sounds, which actions will be further described below, the quality of the resulting audio signal would be unacceptable if this method were used.
0021With this background information in mind, the present invention will now be described with reference to Figure 1. Figure 1 shows the parts of a receiver in a mobile radio communication system necessary to describe the present invention. An antenna 10 receives the transmitted signal and forwards it to a demodulator 12. Demodulator 12 demodulates the received signal and forwards it to an equalizer 13, for example a Viterbi-equalizer, which converts the received and demodulated signal into one or several bit streams, which are forwarded to a decision means 14. Decision means 14 determines whether a received frame contains bits from a traffic channel or the fast associated control channel (FACCH). A suitable decision means is described in Swedish patent 9102611-2, which is hereby incorporated by reference. If the received frame contains bits from a traffic channel the bit stream is forwarded to a channel decoder 16. Channel decoder 16 converts the bit stream into a filter parameter stream and an excitation parameter stream for speech decoding. On the other hand, if the received frame contains bits from FACCH, the bit stream is not forwarded to channel decoder 16. Instead a concealing means 18 is informed of the fact that the present frame does not contain speech data.
0022The receiver also contains a speech detector 20 (also called voice activity detector or VAD). A suitable speech detector is described in WO 89/08910 by British Telecom PLC. Speech detector 20 determines from said filter and excitation parameters whether the received frame contains primarily speech or background sounds. The decision of speech detector 20 may be forwarded to an optional signal discriminator 22, which uses some of the excitation parameters to determine whether received signals representing background sounds are stationary or not. If a frame is declared as containing stationary background sounds, the output of signal discriminator 22 controls a parameter modifier 24 to modify the received filter parameters. This modification is described in detail in Swedish Patent Application 93 00290-5, which is hereby incorporated by reference. Furthermore, the stationarity detection of signal discriminator 22 and the interaction between speech detector 20, signal discriminator 22 and parameter modifier 24 is described in detail in Swedish Patent Application 93 01798-6 and 93 03613-5, which are hereby incorporated by reference. The possibly modified filter parame- ters (if the received signal represents stationary background sounds) and the excitation parameters are forwarded to a speech decoder 26, which outputs an audio signal on output line 28.
0023In order to describe the error concealment techniques of the present invention it is necessary to briefly describe the effect of lost frames (which occurs when FACCH frames replace speech frames) on the so called anti-swirling algorithms that are described in the above two Swedish patent applications. These effects can be divided roughly as follows:
00241. Voice activity or speech detector 20 that is used to control the anti-swirling algorithm is usually adaptive ("Voice
0025Activity Detection", Recommendation GSM 06.32, ETSI/GSM, 1991;
0026WO 89/08910 by British Telecom PLC). This means that there are thresholds and corresponding states that are automatically updated internally in the voice activity detector, using either a measured speech signal or, when applied in the receiver as is assumed here, decoded parameters from the channel decoder. When there are lost frames the required parameters have to be generated in the receiver. One way of handling this situation is to use the same parameters as in the previous frame. However, this leads to thresholds or internal state variables that are not updated correctly, which may result in erroneous decisions. The result .would be a reduced quality of the reconstructed audio signal.
00272. Voice activity or speech detector 20 forms its speech/back- ground sound decision using incoming filter and excitation parameters and also internally updated states, i.e. old incoming parameters and additional a priori information. Lost frames may therefore result in immediate erroneous decisions in the receiver, which leads to reduced quality of the recon- structed audio signal. Furthermore, since the current decision also depends on old incoming parameters, lost frames may also influence future decisions.
00283. Signal discriminator 22, which may be a part of the system in a preferred embodiment of the present invention, investigates incoming statistical moments, preferably energy values that describe the average signal energy for each frame. It needs to store a large number of these energies, both for the current frame and for older frames in one or several buffers (details are described in the above Swedish Patent Application 93 01798-6). Should there be errors in these incoming energies, these errors will also be stored in the buffers causing erroneous decisions for a significant amount of time. The result would be a reduced quality of reconstructed background sound signals.
00294. The actions that are used in order to counter swirling in case of a stationary background sound signal suffer in several ways when an erroneous decision caused by lost frames occurs. One effect is that speech is destroyed when a stationary back¬ ground sound is erroneously detected and the anti-swirling actions are initiated. The opposite erroneous decision (speech when there is actually a stationary background sound present) can also occur, and therefore the character of the background sound is changed momentarily, which can be rather annoying. Repeated switching between decisions indicating speech/- stationary background sounds is also undesirable, since time constants are in effect during the transition between the two states. Should excessive switching take place this would be very disturbing.
00305. The actual anti-swirling actions in parameter modifier 24 (essentially spectral low pass filtering in combination with bandwidth expansion, as explained in detail in the above Swedish Patent Application 93 00290-5) suffer from lost frames. One effect occurs because of erroneous decisions from speech or voice activity detector 20 or from signal discrimi¬ nator 22. In these cases the updating of the low pass filter may be initiated or turned off, causing a deviation as compared to the case where no frames have been lost. Another effect occurs due to lost frames affecting the spectral information that feeds the low pass filters and the bandwidth expansion. Both these effects may cause quality reductions.
00316. A postfilter of speech decoder 26 (whenever present) has similar problems as described in section 5. above. Furthermo¬ re, the so called spectral tilt is perceptually very sensi- tive, and since it may be manipulated by the anti-swirling algorithm, lost frames can give a significant quality reduction of the reconstructed speech signal.
00327. The effects described above may combine and influence each other. For example an erroneous decision in speech detector 20 may result in stopped updating of buffers of signal discriminator 22. This in turn will influence signal dis¬ criminator 22 for a significant period of time, causing reduced quality of the anti-swirling actions.
0033From the above discussion it is clear that lost frames can result in incorrect updating of internal variables of speech detector 20, signal discriminator 22, parameter modifier 24 or combina¬ tions thereof. In accordance with the present invention these problems are reduced or eliminated by modifying the updating process when frame loss has been detected. This modified updating will now be described more in detail.
0034When a lost frame has been detected concealing means 18 can control the operation of the updating process of corresponding internal state variables in speech detector 20, signal discrimi¬ nator 22 and parameter modifier 24, as indicated by control lines 30, 32 and 34, respectively. These modifications include:
0035Stopping updating of internal state variables (for example thresholds) of speech detector 20 when frame loss is detected. This implies that the internal variables of speech detector 20 are locked to the same value as in the previous frame, or that the updating of these state variables is restricted (state variables can only be updated by smaller amounts than usual).
0036- Another action is to lock the decision in speech detector 20 to the decision from the previous frame in case frame loss is detected.
0037If frame loss has been detected the updating of the buffers in signal discriminator 22 can be stopped or restricted.
0038- Another possibility is to lock the decision of signal dis¬ criminator 22 to the decision of the previous frame.
0039If frame loss has been detected the updating of internal filter coefficients of parameter modifier 24 controlling low pass filtering and/or bandwidth expansion can be stopped or restricted.
0040The spectral tilt of a possible post filter can be locked to the tilt of the previous frame.
0041Since different parameters influence different blocks in the drawing (speech detector 20, signal discriminator 22, parameter modifier 24 and a possible postfilter), it is appreciated that one or several of these actions can be taken in case of frame loss.
0042In the above discussion it is also appreciated that if frame loss persists for several consecutive frames, internal state variables of the receiver will be locked to (or essentially locked to) values corresponding to the latest received frame.
0043The invention has been described with reference to a frame based radio communication system, in which frames are sometimes "stolen" from the traffic channel to be used for other purposes. However, the same principles can also be applied to situations in which frames are lost for other reasons, for example in a packet switched network, where packets (these can either be considered entire frames or as parts of a frame) use different routes from transmitter to receiver and may be "lost" due to late arrival or actual loss of packets during transfer.
0044A preferred embodiment of the method in accordance with the present invention is illustrated in detail by the two PASCAL program modules in the attached APPENDIX.
0045It will be understood by those skilled in the art that various modifications and changes may be made to the present invention without departure from the spirit and scope thereof, which is defined by the appended claims.
APPENDIX
0047[INHERIT ( 'spd$def' )]
0048MODULE vad_dtx_rx (input,output);
CONST
0050nr_sub_blocks 4 nr_acf_lags_in 10 nr_acf_lags_used 8 burstconst 3 hangconst 5 frames avO 4
VAR
0052adaptcount [STATIC] INTEGER; { For threshold } thvad [STATIC] DOUBLE; { For threshold } rvad [STATIC] ARRAY [0..nr_acf_lags_used]
0053OF REAL; burstcount [STATIC] INTEGER; { For overhang } hangcount [STATIC] INTEGER; { For overhang } n [STATIC] ARRAY [-1..nr_sub_blocks-l]
0054OF INTEGER; last_dm [STATIC] REAL; { For VAD } old_lag_count [STATIC] INTEGER; very_old_lag_count [STATIC] INTEGER; thresh [STATIC] REAL; lthresh [STATIC] INTEGER; nthresh [STATIC] INTEGER;
0055acf old,av0 : [STATIC] ARRAY [-frames_av0..0, 0..nr_acf_lags_used] OF REAL; aavl,ravl,avl [STATIC] ARRAY [0..nr_acf_lags_used] OF REAL;
0056elapsed frames [STATIC] INTEGER; sp_hangover : [STATIC] INTEGER; speech_dtx : [STATIC] BOOLEAN;
0057sp_old : [STATIC] BOOLEAN;
0058PROCEDURE schur_pas ( acf : ARRAY [Al..A2:INTEGER] OF REAL;
0059VAR re : ARRAY [B1..B2: INTEGER] OF
0060REAL; mdim : INTEGER ); EXTERNAL;
0061PROCEDURE stepup_pas ( re : ARRAY [Al..A2:INTEGER] OF REAL;
0062VAR a : ARRAY [Bl..B2:INTEGER] OF
0063REAL; mdim : INTEGER ); EXTERNAL;
0064PROCEDURE Flstat_det_rx ( pow : REAL; sp_l : BOOLEAN; VAR sp : BOOLEAN); EXTERNAL;
0065PROCEDURE Flstat det rx init; EXTERNAL;
0066[GLOBAL]
0067PROCEDURE FLvad init; { MUST be called from start}
0068VAR i 3 : INTEGER;
BEGIN
0070{ threshold }
0071adaptcount := 0; thvad := 1000000; rvad[0] := 6; rvad[l] := -4; rvad[2] := 1; FOR i := 3 TO nr_acf_lags_used DO BEGIN rvad[i] := 0; END;
0072{ end threshold }
0073{ vad }
0074old_lag_count := 0; very_old_lag_count := 0; n[3] := 19; hangcount := -1; burstcount := 0; last_dm := 0; thresh := 0.05;
0075lthresh := 2; nthresh := 4;
0076FOR i := -frames_av0 TO -1 DO BEGIN
0077FOR j := 0 TO nr_acf_lags_used DO BEGIN acf_old[i,j] := 0; av0[i,j] := 0; END; END;
0078{ end vad }
0079elapsed_frames := 24; sp_hangover := 0; speech_dtx := TRUE; sp_old := TRUE; Flstat_det_rx_init; END; { init_vad_dtx }
0080PROCEDURE vad_thresh ( acfO : REAL; { Input } ravl ARRAY [A1..A2: INTEGER] OF REAL; { Input } stat BOOLEAN; { Input } ptch BOOLEAN; { Input } pvad DOUBLE { Output }
0081);
0082{ Common variables used: ( all output )
0083adaptcount initially set to 0 thvad initially set to 1000000 rvad initially set to rvad[0] : 6 rvad[l] : -4 rvad[2] : 1 rvad[3-8] : 0 }
CONST
0085pth = 300000; plev = 800000; fac = 3; adp = 8; inc = 16; dec = 32; margin ss 80000000;
VAR
INTEGER;
BEGIN
0089IF acfO < pth THEN BEGIN thvad := plev; END ELSE BEGIN IF NOT (stat AND NOT ptch) THEN BEGIN adaptcount := 0; END ELSE BEGIN adaptcount := adaptcount +1 ; IF adaptcount > adp THEN BEGIN thvad := thvad - thvad / dec; IF thvad < pvad*fac THEN BEGIN thvad := MIN ( thvad +thvad/inc, pvad*fac); END;
0090IF thvad > pvad+margin THEN BEGIN thvad := pvad + margin; END;
0091FOR i := 0 TO nr_acf_lags_used DO
0092BEGIN rvad[i] := ravl[i]; END;
0093adaptcount := adp + 1; END; END; END; END; { Procedure }
0094PROCEDURE FLvad_rx_l ( acf_in : realACFType; { Input } ltp_lags : integersubframeltptype; { Input }
0095VAR vad : BOOLEAN); { Output }
0096{ Common variables used:
0097n[-1..3] ltp_lags Input/Output oldlagcount Input/Output veryoldlagcount Input/Output thvad threshold
VAR
0099ptch, wad, stat : BOOLEAN; lag_count, smallag, i,3,k : INTEGER; acfO, dm,difference : REAL; pvad : DOUBLE; re : ARRAY [1..nr_acf_lags_used] OF REAL;
BEGIN
0101n[-l] := n[3]; FOR i := 0 TO 3 DO BEGIN n[i] := ltp_lags[i]; END;
0102FOR i := -frames_avO TO -1 DO BEGIN
0103FOR k := 0 TO nr_acf_lags_used DO BEGIN acf_old[i,k] := acf_old[i+l,k]; avO[i,k] := avO[i+l,k]; END; END;
0104FOR k := 0 TO nr_acf_lags_used DO BEGIN acf_old[0,k] := acf_in[k]; END; { Adaptive filtering and energy computation. }
0105pvad := rvad[0] * acf_old[0,0] ;
0106FOR k := 1 TO nr_acf_lags_used DO BEGIN pvad := pvad + 2.0 * rvad[k] * acf_old[0,k] ; END;
0107{ ACF averaging }
0108FOR k := 0 TO nr_acf_lags_used DO BEGIN avO[0,k] := 0;
0109FOR j := 0 TO frames_avO-l DO BEGIN av0[0,k] := av0[0,k] + acf_old[-j,k] ;
0110END; avl[k] := avO[-frames_avO,k] ; END;
0111{ Solve the equations system } schur_pas (avl,re,nr_acf_lags_used); stepup_pas (re,aavl,nr_acf_lags_used);
0112FOR i := 0 TO nr_acf_lags_used DO BEGIN ravl[i] := 0;
0113FOR k := 0 TO nr_acf_lags_used-i DO BEGIN ravl[i] := ravl[i] + aavl[k] * aavl[k+i];
END; END;
0115IF av0[0,0] <= 0 THEN BEGIN dm := 0; END ELSE BEGIN dm := ravl[0] * av0[0,0];
0116FOR i := 1 TO nr_acf_lags_used DO BEGIN dm := dm+ 2*ravl[i]*av0[0,i] ;
0117END; dm := dm/av0[0,0]; END; difference := dm - last_dm; stat := ABS( ifference) < thresh; last_dm := dm; ptch := ( (old_lag_count+very_old_lag_count) >=nthresh ); acfO := acf_in[0]; vad_thresh (acf0,ravl,stat,ptch,pvad); wad := (pvad>thvad);
0118IF wad THEN BEGIN burstcount := burstcount + 1; END ELSE BEGIN burstcount := 0; END;
0119IF burstcount >= burstconst THEN BEGIN hangcount := hangconst; burstcount := burstconst; END;
0120vad := wad OR (hangcount >= 0);
0121IF hangcount >= 0 THEN BEGIN hangcount := hangcount -1; END;
0122lag_count := 0;
0123FOR j := 0 TO 3 DO BEGIN
0124IF n[j] > 19 THEN BEGIN smallag := MAX(n[j] ,n[j-1] ) MOD
0125MIN(n[j],n[j-l]); IF MIN(smallag,MIN(n[j],n[j-l] )-smallag) < lthresh THEN BEGIN lag_count := lag_count + 1; END; END; END; very_old_lag_count := old_lag_count; old_lag_count := lag_count;
END;
0127PROCEDURE FLdtx_hand_rx_l ( vad : BOOLEAN; { Input }
0128VAR sp : BOOLEAN); { Output }
BEGIN
0130IF elapsed_frames < 24 THEN BEGIN elapsed_frames := elapsed_frames + 1; END;
0131IF speech_dtx THEN BEGIN
0132IF vad THEN BEGIN sp := TRUE; END ELSE BEGIN sp_hangover := 1;
0133IF elapsed_fran.es = 23 THEN BEGIN elapsed_frames := 22; END; sp := (elapsed_frames > 23); speech_dtx := FALSE; END; END ELSE BEGIN
0134IF vad THEN BEGIN sp := TRUE; speech_dtx := TRUE; END ELSE BEGIN
0135IF sp_hangover < 5 THEN BEGIN sp_hangover := sp__hangover + 1; IF elapsed frames = 23 THEN BEGIN elapsed_frames := 22;
0136END; END; IF sp_hangover > 4 THEN BEGIN elapsed_frames := 0; sp := FALSE; END ELSE BEGIN sp := (elapsed_frames > 23); END;
END;
END;
END;
0140[GLOBAL]
0141PROCEDURE FLvad_rx ( acf_in : realACFType; { Input } ltp_lags : integersubframeltptype; { Input }
0142FllostFrame : BOOLEAN; { Input }
0143VAR sp : BOOLEAN); { Output }
0144VAR vad : BOOLEAN; spl : BOOLEAN;
BEGIN
0146IF NOT FllostFrame THEN BEGIN
0147FLvad_rx_l (acf_in,ltp_lags,vad);
0148FLdtx__hand_rx_l (vad,spl);
0149FLstat det rx (acf in[0],spl,sp);
0150IF NOT use_stat_det THEN BEGIN sp := spl; END; sp old := sp; END ELSE BEGIN sp := sp_old; END;
END;
0152END.
0153[INHERIT ( 'spdSdef' )]
0154MODULE as_actions_rx (input,output);
0155{ "Global" (for the module) variables }
VAR
0157FLfilter filter_state [STATIC] realArraylOType;
0158FLfilter_ filter_coeff [STATIC] REAL;
0159FLfilter filter_gain [STATIC] REAL;
0160FLfilter_post_state [STATIC] realArraylOType;
0161FLfilter_post_coeff [STATIC] REAL;
0162FLfilter_post_gain [STATIC] REAL;
0163FLfilter_my_state [STATIC] REAL;
0164FLfilter_my_coeff [STATIC] REAL;
0165FLfilter my_gain [STATIC] REAL;
0166FLexpand_factor [STATIC] REAL; first sp [STATIC] BOOLEAN;
0167{ External routines }
0168PROCEDURE stepdn_unstable_special_pas ( a : realArraylOType; { Input }
0169VAR re : RealArraylOType; { Output }
0170VAR unstable : BOOLEAN); { Output } EXTERNAL;
0171PROCEDURE stepdn special pas ( a realArray1OType; { Input } VAR re RealArraylOType); { Output } EXTERNAL;
0172PROCEDURE FLpostCoeffCalculation(
0173ZFLacfW : realACFType;
0174VAR ZFLetaCurr : realArraylOType );
EXTERNAL;
0176PROCEDURE FLcalculateACF(
0177FLalphaCurr : realArraylOType; VAR FLacfW : realACFType ); EXTERNAL;
0178PROCEDURE FLcalculateautocorrfunction(
0179FLalphaCurr : realArraylOType; VAR FLacfW : realACFType ); EXTERNAL;
0180[GLOBAL]
0181PROCEDURE FLas_actions_rx_ini ;
0182{ MUST be called first to initilize }
0183{ some things. }
0184VAR m : INTEGER;
0185{ NOTE FLb _exp is transferred as COMMON }
BEGIN
0187FOR m := 1 TO nrCoeff DO BEGIN
0188FLfilter_filter_state[m] := 0;
0189FLfilter_post_state[m] := 0; END;
0190FLfilter_my_state := 0; first sp := TRUE; { The following could be placed in ROM }
0191FLfilter_filter_coeff := EXP(-1.0/(4.0*50.0) ); FLfilter_my_coeff := EXP(-1.0/(0.25*50.0) ); FLfilter_post_coeff := FLfilter_my_coeff;
0192FLfilter_filter_gain := 1 - FLfilter_filter_coeff; FLfilter_post_gain := 1 - FLfilter_post_coeff; FLfilter_my_gain := 1 - FLfilter_my_coeff;
0193IF FLbw_exp >= 0 THEN BEGIN
0194FLexpand_factor := EXP(-FLpi*FLbw_exp/8000.0); END ELSE BEGIN
0195FLexpand_factor := 1; END;
0196{FLexpand_factor := EXP(-FLpi*100.0/8000.0);} {FLexpand_factor := EXP(-FLpi*400.0/8000.0);} { ### }
0197{ ### }
0198WRITELN( 'FLfilter_filter_coeff: ' ,FLfilter_filter_coeff); WRITELN( 'FLfilter_filter_gain: ' ,FLfilter_filter_gai ); WRITELN( 'FLfilter_my_coeff: ' ,FLfilter_my_coeff); WRITELN( 'FLfilter_my_gain: ' ,FLfilter_my_gain); WRITELN( 'FLfilter_post_coeff: ' ,FLfilter_post_coeff); WRITELN( 'FLfilter_post_gain: ' ,FLfilter_post_gain);
0199WRITELN( 'FLbw_exp: ' ,FLbw_exp);
0200WRITELN( 'FLexpand_factor: ' ,FLexpand_factor);
0201WRITELN( 'FLv_post: ' ,FLv_post);
0202{ ### }
END;
0204[GLOBAL]
0205PROCEDURE FLas_actions_rx ( sp : BOOLEAN; { In } FLa_in : realArraylOType; { In } FLrc_in : realArraylOType; { In } FllostFrame BOOLEAN; { In } VAR FLa_pres : realArraylOType; { Out } VAR FLrc_pres : realArray1OType; { Out } VAR FLa_post_pres : realArraylOType; { Out } VAR FLetacurr : realArraylOType; { In/Out } VAR FLmy_use : REAL); { Out }
VAR
0207m : INTEGER;
0208FLdum : REAL;
0209FLRC_temp : realArraylOType; unstable : BOOLEAN;
0210FLacfw : realACFType; i_ab : INTEGER; { ### } eta temp : realArraylOType; { ### }
BEGIN
0212FOR m := 1 TO nrCoeff DO BEGIN
0213FLa_post_pres[m] := FLa_in[m] * FLnyweight[m] ; END;
0214IF sp THEN BEGIN
0215{FLfilter_my_state := FLfilter my_coeff *
0216FLfilter_my_state + FLfilter_my_gain * FLmy;} { ### }
0217FLmy use := FLmy;
0218FOR m := 1 TO nrCoeff DO BEGIN FLa pres[m] := FLa in[m]; FLrc_pres[m] := FLrc_in[m]; END;
0219IF first_sp THEN BEGIN
0220FLdum := FLexpand_factor;
0221FOR m := 1 TO nrCoeff DO BEGIN
0222Flfilter_filter_state[m] := FLa_in[m] * FLdum;
0223FLfilter_post_state[m] := FLa_post_pres[m] * FLdum;
0224FLdum := FLdum * Flexpand_factor; END; END; END ELSE BEGIN
0225IF NOT FllostFrame THEN BEGIN
0226FLfilter_my_state := FLfilter_my_coeff *
0227FLfilter_my_state + FLfilter_my_gain * FLmy_off; END;
0228FLmy_use := FLfilter_my_state;
0229FLdum := FLexpand_factor;
0230FOR m := 1 TO nrCoeff DO BEGIN
0231IF NOT FllostFrame THEN BEGIN
0232FLfilter_filter_state[m] := FLfilter_filter_state[m] * FLfilter_filter_coeff + FLfilter_filter_gain * FLa_in[m] * FLdum;
0233FLfilter_post_state[m] := FLfilter_post_state[m] * FLfilter_post_coeff + FLfilter_post_gain * FLa_post_pres[m] * FLdum; END;
0234FLa_pres[m] :=
0235FLfilter_filter_state[m];
0236FLa_post_pres[m] :=
0237FLfilter_post_state[m];
0238FLdum := FLdum * FLexpand_factor; END;
0239{ Check for stability }
0240stepdn_unstable_special_pas (
0241FLa_pres, { In } FLRC_pres, { Out } unstable); { Out }
0242IF unstable THEN BEGIN
0243WRITELN( 'Unstable a-parameter (as_actions_rx)' ); FOR m := 1 to nrCoeff DO BEGIN FLa_pres[m] := FLa_in[m]; FLrc_pres[m] := FLrc_in[m]; END; END;
0244stepdn_unstable_special_pas (
0245FLa_post_pres, { In } FLRC_temp, { Out } unstable); { Out }
0246IF unstable THEN BEGIN
0247WRITELN( 'Unstable post_filter (as_actions_r )' );
0248FLdum := FLexpand_factor;
0249FOR m := 1 TO nrCoeff DO BEGIN FLa_post_pres[m] := FLa_in[m] *
0250FLnyweight[m]* Fldum; FLdum := FLdum * FLexpand_factor; END; END;
0251FLcalculateACF (
0252FLa_post_pres, FLACFw);
0253{Flcalculateautocorrfunction (
0254FLa_pres, FLACFw);}
0255FLpostCoeffCalculation (
0256FLACFw, FLetaCurr);
END;
0258first_sp := (sp AND first_sp); END; END.
Contents31
Every citation, both waysCites: the store holds 0 of 1
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US6665637B2 | Cited by | United States of America | Applicant |
| US7318025B2 | Cited by | United States of America | Applicant |
| See references of WO 9429850A1 | Non-patent | – | Search report |
103 members in 21 offices
Priority claims11
| Document | Office | Kind | Date |
|---|---|---|---|
| 19930002025 | Sweden | – | |
| 9302025 | Sweden | A | |
| 19930004058 | Sweden | – | |
| 9304058 | Sweden | A | |
| 9400532 | Sweden | W | |
| 9302025 | – | – | – |
| 9304058 | – | – | – |
| SE19930002025 | – | – | – |
| SE19930004058 | – | – | – |
| SE9400532 | – | – | – |
| WO1994SE00532 | – | – | – |
Members103
| Document | Office | Kind | |
|---|---|---|---|
| SE9302025D0 | Sweden | D0 | |
| SE9304058D0 | Sweden | D0 | |
| SE9401462D0 | Sweden | D0 | |
| SE9403386D0 | Sweden | D0 | |
| SE9302025L | Sweden | L | |
| SE9304058L | Sweden | L | |
| SE9401462L | Sweden | L | |
| CA2140363A1 | Canada | A1 | |
| CA2140364A1 | Canada | A1 | |
| CA2140365A1 | Canada | A1 | |
| WO9429849A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO9429850A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO9429851A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU7011494A | Australia | A | |
| AU7011594A | Australia | A | |
| AU7011694A | Australia | A | |
| SE501340C2 | Sweden | C2 | |
| MX9404250A | Mexico | A | |
| MX9404251A | Mexico | A | |
| MX9404252A | Mexico | A | |
| FI950590A | Finland | A | |
| FI950590L | Finland | L | |
| FI950591A | Finland | A | |
| FI950591A7 | Finland | A7 | |
| FI950592A | Finland | A | |
| FI950592A7 | Finland | A7 | |
| TW243570B | Taiwan Province of China | B | |
| EP0655159A1 | European Patent Office (EPO) | A1 | |
| EP0655160A1 | European Patent Office (EPO) | A1 | |
| EP0655161A1This record | European Patent Office (EPO) | A1 | |
| KR950703192A | Republic of Korea | A | |
| KR950703193A | Republic of Korea | A | |
| SE502244C2 | Sweden | C2 | |
| CN1110486A | China | A | |
| CN1110883A | China | A | |
| CN1110884A | China | A | |
| SE9403386L | Sweden | L | |
| CA2188122A1 | Canada | A1 | |
| WO9530282A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU2422295A | Australia | A | |
| JPH08500233A | Japan | A | |
| JPH08500234A | Japan | A | |
| JPH08500235A | Japan | A | |
| TW268172B | Taiwan Province of China | B | |
| KR960700499A | Republic of Korea | A | |
| NZ267734A | New Zealand | A | |
| NZ267735A | New Zealand | A | |
| SE503547C2 | Sweden | C2 | |
| AU670514B2 | Australia | B2 | |
| AU670698B2 | Australia | B2 | |
| AU670699B2 | Australia | B2 | |
| NZ267733A | New Zealand | A | |
| US5572622A | United States of America | A | |
| FI964309A | Finland | A | |
| FI964309L | Finland | L | |
| US5596678A | United States of America | A | |
| SE504396C2 | Sweden | C2 | |
| US5598506A | United States of America | A | |
| EP0758502A1 | European Patent Office (EPO) | A1 | |
| CN1147320A | China | A | |
| BR9507565A | Brazil | A | |
| SG43802A1 | Singapore | A1 | |
| JPH09512679A | Japan | A | |
| MX9605118A | Mexico | A | |
| SG45176A1 | Singapore | A1 | |
| SG46982A1 | Singapore | A1 | |
| AU689893B2 | Australia | B2 | |
| RU2120141C1 | Russian Federation | C1 | |
| RU2120667C1 | Russian Federation | C1 | |
| RU2120668C1 | Russian Federation | C1 | |
| TW350172B | Taiwan Province of China | B | |
| EP0655159B1 | European Patent Office (EPO) | B1 | |
| DE69416493D1 | Germany | D1 | |
| US5901186A | United States of America | A | |
| ES2129646T3 | Spain | T3 | |
| DE69416493T2 | Germany | T2 | |
| GR3029729T3 | Greece | T3 | |
| HK1012749A1 | Hong Kong, China | A1 | |
| HK1013880A1 | Hong Kong, China | A1 | |
| KR100220376B1 | Republic of Korea | B1 | |
| KR100220380B1 | Republic of Korea | B1 | |
| KR100220381B1 | Republic of Korea | B1 | |
| HK1014071A1 | Hong Kong, China | A1 | |
| DK0655159T3 | Denmark | T3 | |
| EP0655160B1 | European Patent Office (EPO) | B1 | |
| EP0655161B1 | European Patent Office (EPO) | B1 | |
| DE69421500D1 | Germany | D1 | |
| DE69421501D1 | Germany | D1 | |
| DK0655160T3 | Denmark | T3 | |
| DK0655161T3 | Denmark | T3 | |
| GR3031751T3 | Greece | T3 | |
| GR3031787T3 | Greece | T3 | |
| ES2141236T3 | Spain | T3 | |
| ES2141326T3 | Spain | T3 | |
| DE69421501T2 | Germany | T2 | |
| DE69421500T2 | Germany | T2 | |
| EP0758502B1 | European Patent Office (EPO) | B1 | |
| DE69518837D1 | Germany | D1 | |
| DE69518837T2 | Germany | T2 | |
| CN1064768C | China | C |
40 legal events, as 5 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Announcement of lapse in spainLapsedFD2A | FD2A | ES | |
| Notification of lapseLapsedST | ST | FR | |
| Nl: lapsed or anulled due to non-payment of the annual feeLapsedNLV4 | NLV4 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Ep patent lapsedLapsedEBP | EBP | DK | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| European patent in force as of 2002-01-01IF02 | IF02 | GB | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Definitive protectionFG2A | FG2A | ES | |
| It: translation for a ep patent filedITF | ITF | EP | |
| It: translation for a ep patent filedITF | ITF | EP | |
| Fr: translation filedET | ET | EP | |
| Ep patent with danish claimsT3 | T3 | DK | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOS IGRAGRAH | GRAH | EP | |
| Despatch of communication of intention to grantORIGINAL CODE: EPIDOS AGRAGRAG | GRAG | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOS IGRAGRAH | GRAH | EP | |
| Despatch of communication of intention to grantORIGINAL CODE: EPIDOS AGRAGRAG | GRAG | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 0655161
- Publication, DOCDB
- 0655161
- Publication, EPODOC
- EP0655161
- Application
- 95901980
- Application, DOCDB
- 95901980
- Application, EPODOC
- EP19950901980
Titles6
- German
- VERDECKUNG VON VERLORENEN TRAHMEN.
- English
- LOST FRAME CONCEALMENT.
- French
- DISSIMULATION DE TRAME PERDUE.
- English
- LOST FRAME CONCEALMENT
- French
- DISSIMULATION DE TRAME PERDUE
- German
- VERDECKUNG VON VERLORENEN TRAHMEN
Classification
- CPC, 3
- G10L19/005
- G10L25/78
- H04L1/0045
- IPC, 8
- G10L13 00
- G10L19 005
- G10L25 78
- H04B1 10
- H04L1 00
- G10L19 00
- G10L21 04
- G10L11 02
Designated states1
- Contracting states, 1
- Netherlands (Kingdom of the)