U.S. patent application number 12/114764 was filed with the patent office on 2008-10-02 for method and apparatus for code group identification and frame synchronization by use of reed-solomon decoder and reliability measurement for umts w-cdma.
Invention is credited to Shin-Lin Shieh, Hui-Ming Wang, Shin-Yuan Wang.
Application Number | 20080244364 12/114764 |
Document ID | / |
Family ID | 31996911 |
Filed Date | 2008-10-02 |
United States Patent
Application |
20080244364 |
Kind Code |
A1 |
Shieh; Shin-Lin ; et
al. |
October 2, 2008 |
Method And Apparatus For Code Group Identification And Frame
Synchronization By Use Of Reed-Solomon Decoder And Reliability
Measurement For UMTS W-CDMA
Abstract
A method and apparatus having a modified Reed-Solomon decoder is
used for finding a specific code group used by a base station and
the frame timing synchronization with the base station. The
modified Reed-Solomon decoder uses a standard Reed-Solomon decoder
and some reliability measurements computed from the received code
word symbols. If the reliability of a received symbol is too low,
this symbol is considered as erasure. By selecting code word
symbols with higher reliabilities and erasing code word symbols
with lower reliabilities, the symbol error probability is reduced
and the performance is improved. Several modified Reed-Solomon
decoders and a few decoding strategies are introduced in order to
decode the received code word sequences with a power- and
memory-effective method.
Inventors: |
Shieh; Shin-Lin; (Chin-Men
Hsien, TW) ; Wang; Shin-Yuan; (Hsinchu City, TW)
; Wang; Hui-Ming; (Taipei City, TW) |
Correspondence
Address: |
LIN & ASSOCIATES INTELLECTUAL PROPERTY, INC.
P.O. BOX 2339
SARATOGA
CA
95070-0339
US
|
Family ID: |
31996911 |
Appl. No.: |
12/114764 |
Filed: |
May 3, 2008 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10316319 |
Dec 10, 2002 |
|
|
|
12114764 |
|
|
|
|
60412532 |
Sep 19, 2002 |
|
|
|
Current U.S.
Class: |
714/784 ;
375/E1.005; 714/E11.023 |
Current CPC
Class: |
H04B 1/70735 20130101;
H04B 1/7083 20130101; H04L 1/0045 20130101; H04L 1/0057
20130101 |
Class at
Publication: |
714/784 ;
714/E11.023 |
International
Class: |
H03M 13/05 20060101
H03M013/05; G06F 11/07 20060101 G06F011/07 |
Claims
1. A method for generating a corrected code sequence, comprising:
(a) receiving a frame of code word symbols; (b) forming a sequence
of hard decision symbols from said frame of code word symbols, each
hard decision symbol having a corresponding reliability; (c)
sending said sequence of hard decision symbols and corresponding
reliabilities to a modified Reed-Solomon decoder; (d) generating a
corrected code sequence using said modified Reed-Solomon decoder
and ending said method if said modified Reed-Solomon decoder
returns successfully; (e) ending said method if total number of
code word symbols received is greater than a limit; (f) receiving a
number of additional code word symbols; (g) updating said sequence
of hard decision symbols and corresponding reliabilities based on
said additional code word symbols; and (h) returning to step
(c).
2. The method for generating a corrected code sequence as claimed
in claim 1, wherein an additional code word symbol with a receiving
index m is used is said step (g) according to the steps of: (g1)
determining a new hard decision symbol and a new corresponding
reliability for said additional code word symbol; (g2) identifying
an associated hard decision symbol having a receiving index equal
to the remainder of m divided by n, n being the number of symbols
in said sequence of hard decision symbols; (g3) increasing the
corresponding reliability of said associated hard decision symbol
if said new hard decision symbol is identical to said associated
hard decision symbol; (g4) decreasing the corresponding reliability
of said associated hard decision symbol if said new hard decision
symbol is not identical to said associated hard decision symbol and
said new corresponding reliability is less than the corresponding
reliability of said associated hard decision symbol; and (g5)
replacing said associated hard decision symbol and corresponding
reliability with said new hard decision symbol and decreased new
corresponding reliability if said new hard decision symbol is not
identical to said associated hard decision symbol and said new
corresponding reliability is greater than the corresponding
reliability of said associated hard decision symbol.
3. The method for generating a corrected code sequence as claimed
in claim 1, wherein said modified Reed-Solomon decoder in said step
(d) performs: (i) receiving a new symbol from said sequence of hard
decision symbols; (ii) declaring said new symbol as a valid symbol
if the corresponding reliability of said new symbol is greater than
a reliability threshold, or as an invalid symbol otherwise; (iii)
recording total number of valid symbols; (iv) sending a code
sequence based on valid symbols to a Reed-Solomon error-and-erasure
decoder if said recorded total number of valid symbols is greater
than a threshold of total number of valid symbols, or execute step
(vi) otherwise; (v) generating said corrected code sequence and
ending said step (d) if said Reed-Solomon error-and-erasure decoder
returns successfully; and (vi) ending said step (d) if all symbols
of said sequence of hard decision symbols have been received, or
returning to step (i) otherwise.
4. The method for generating a corrected code sequence as claimed
in claim 3, wherein said sequence of hard decision symbols has at
most 15 hard decision symbols, and said threshold of total number
of valid symbols is an integer number between 3 and 15 and is a
function of the number of hard decision symbols received.
5. The method for generating a corrected code sequence as claimed
in claim 1, wherein said modified Reed-Solomon decoder in said step
(d) performs: (i) receiving a sequence of hard decision symbols
including valid symbols and invalid symbols; (ii) sending a code
sequence based on valid symbols to a Reed-Solomon error-and-erasure
decoder if total number of invalid symbols in said sequence of hard
decision symbols is not greater than a threshold of total number of
invalid symbols, or ending said step (d) otherwise; (iii)
generating said corrected code sequence and ending said step (d) if
said Reed-Solomon error-and-erasure decoder returns successfully;
(iv) selecting k symbols from current valid symbols of said
sequence of hard decision symbols, said k symbols having lowest k
reliabilities among all current valid symbols of said sequence of
hard decision symbols; (v) declaring said k symbols invalid and
determining total number of invalid symbols from said sequence of
hard decision symbols; and (vi) returning to step (ii) if total
number of invalid symbols in said sequence of hard decision symbols
is not greater than said threshold of total number of invalid
symbols, or ending said step (d) otherwise.
6. The method for generating a corrected code sequence as claimed
in claim 5, wherein said sequence of hard decision symbols has at
most 15 hard decision symbols, and said threshold of total number
of invalid symbols is an integer number between 0 and 12.
7. A method for generating a corrected code sequence, comprising:
(a) receiving first and second frames of code word symbols; (b)
forming first and second sequences of hard decision symbols from
said first and second frames of code word symbols; (c) comparing
each hard decision symbol in said first sequence with a
corresponding hard decision symbol in said second sequence and
declaring said hard decision symbol valid if corresponding hard
decision symbols are identical and invalid if not identical; (d)
sending a code sequence based on valid hard decision symbols
determined from step (c) to a Reed-Solomon error-and-erasure
decoder if total number of invalid hard decision symbols is less
than a threshold of total number of invalid hard decision symbols,
or ending said method otherwise; and (e) generating a corrected
code sequence and ending said method if said Reed-Solomon
error-and-erasure decoder returns successfully.
8. A method for generating a corrected code sequence, comprising:
(a) receiving a plurality of frames of code word symbols; (b)
forming a plurality of sequences of hard decision symbols, each
sequence corresponding to one of all received frames of code word
symbols; (c) forming a new sequence of hard decision symbols, each
hard decision symbol in said new sequence having a value determined
by taking a majority vote of corresponding hard decision symbols in
said plurality of sequences; (d) sending said new sequence to a
Reed-Solomon error-and-erasure decoder; and (e) generating a
corrected code sequence and ending said method if said Reed-Solomon
error-and-erasure decoder returns successfully.
9. The method for generating a corrected code sequence as claimed
in claim 8, further comprising: (f) receiving a new frame of code
word symbol if said Reed-Solomon error-and-erasure decoder fails to
return a valid code sequence; and (g) returning to step (b).
Description
CROSS-REFERENCES TO RELATED APPLICATIONS
[0001] This is a division of U.S. application Ser. No. 10/316,319,
filed Dec. 10, 2002, which is a non-provisional application of U.S.
provisional Application No. 60/412,532, filed Sep. 19, 2002. The
above provisional and non-provisional applications are incorporated
herewith by reference.
FIELD OF THE INVENTION
[0002] The present invention generally relates to an apparatus and
method for code group identification and frame synchronization used
in direct-sequence code division multiple access (DS-CDMA)
communication systems, such as wide-band CDMA systems and 3rd
generation partnership project (3GPP) system.
BACKGROUND OF THE INVENTION
[0003] Currently, DS-CDMA cellular systems are classified as
inter-cell synchronous systems with precise inter-cell
synchronization and asynchronous systems without it. For inter-cell
synchronous systems, an identical long code is assigned to each
base station, but with a different time offset. The initial cell
search can be executed by performing timing acquisition of the long
code. The search for a peripheral cell on hand-over can be carried
out quickly because the mobile station can receive the offset
information of the long code for the peripheral base station from
the current base station. Therefore, each base station requires a
precise-time synchronization apparatus, such as the global position
system (GPS) and rubidium backup oscillators. However, it is
difficult to deploy GPS in basements or other locations where RF
signals cannot easily reach.
[0004] In asynchronous systems such as wide-band CDMA and 3GPP,
each base station adopts two synchronization channels such that a
mobile terminal can establish the link and will not lose the
connection on hand-offs by acquiring the synchronization codes
transmitted in synchronization channels. The first synchronization
channel (primary synchronization channel, hereinafter PSCH)
consists of an unmodulated primary synchronization code (denoted as
C.sub.psc) with length of 256 chips transmitted once every slot.
C.sub.psc is the same for all base stations. This code is
periodically transmitted such that it is time-aligned with the slot
boundary of downlink channels. The secondary synchronization
channel (hereinafter SSCH) consists of a sequence of 15 unmodulated
secondary synchronization codes (C.sub.ssc.sup.i,0 to
C.sub.ssc.sup.i,14) repeatedly transmitted in parallel with
C.sub.psc in the PSCH. The 15 secondary synchronization codes are
sequentially transmitted once every frame. Each secondary
synchronization code is chosen from a set of 16 different
orthogonal codes of length 256 chips. This sequence on the SSCH
corresponds to one of the 64 different code groups which the base
station downlink scrambling code belongs to. The code allocation
for a base station is shown in Table 1 as illustrated in FIG. 9.
These 64 sequences are constructed such that their cyclic-shifts
are unique. In other words, if the count of cyclic-shifting is 0 to
14, all 960 (=64*15) possible sequences generated by
cyclic-shifting the 64 sequences are different from each other.
Base upon this property, cell search algorithms can be developed to
uniquely determine both the code group and the frame timing.
[0005] During the initial cell search for the wide-band CDMA system
proposed by 3GPP, a mobile station searches for the base station to
which it has a lowest path loss. It then determines the downlink
scrambling code and frame synchronization of the base station. This
initial cell search is typically carried out in three steps:
Step 1: Slot Synchronization
[0006] During the first step of the initial cell search procedure,
the mobile station searches for the base station to which it has
lowest path loss via the primary synchronization code transmitted
on the PSCH. This is typically done with a single matched filter
matching to the primary synchronization code. Since the primary
synchronization code is common to all the base stations, the power
of the output signal of the matched filter should have peaks for
each ray from each base station within a receivable range. The
strongest peak corresponds to the most stable base station for
linking. Detecting the position of the strongest peak yields the
timing and the slot length that the strongest base station
modulates. That is, this procedure allows the mobile station to
acquire slot synchronization to the strongest base station.
Step 2: Frame Synchronization and Code-Group Identification
[0007] During the second step of the cell search procedure, the
mobile station utilizes the secondary synchronization code in the
SSCH to find the frame synchronization and the code group of the
cell found in the first step. Since the secondary synchronization
code is transmitted in parallel with the primary synchronization
code, the slot timing of the secondary synchronization channel can
also be found during the first step. The received signal at each
time slot of the secondary synchronization channel is consequently
correlated with 16 possible secondary synchronization code word
symbol signals for code word symbol identification for code
identification. The 15 consecutive code word symbols received and
identified within one frame construct a received sequence. By
sending the received sequence into a Reed-Solomon Decoder or by
correlating the received sequence with the 960 possible sequences,
the code group for the synchronized base station as well as the
frame synchronization can be determined.
Step 3: Scrambling-Code Identification
[0008] During the last step of the cell search procedure, the
mobile terminal determines the exact primary scrambling code used
by the found base station. The primary scrambling code is typically
identified through symbol-to-symbol correlation over the Common
Pilot Channel (hereinafter CPICH) with all codes within the code
group identified in the second step. After the identification of
the primary scrambling code, the Primary Common Control Physical
Channel (hereinafter PCCPCH) can be detected. Then the system- and
cell-specific information can be read.
[0009] In summary, the main tasks of the initial cell search
procedure are to (1) search for a cell with the strongest received
power, (2) determine frame synchronization and code group, and (3)
determine the down-link primary scrambling code.
[0010] The cell search procedure (2) is the subject of this
invention. The SSCH is used to determine frame synchronization. A
frame of 15 SSCH symbols forms a code word sequence taken from a
codebook of 64 different code word sequences. The same code word
sequence is repeated every frame in a cell. The 64 code word
sequences are chosen to have distinct code phase shifts, and any
phase shift of a code word sequence is different from all phase
shifts of all other code word sequences. With these properties, the
frame boundary can be detected by identifying the correct starting
phase of the SSCH symbol sequence. In order to satisfy the above
properties and maximize the minimum distance between different code
word sequences, a (15,3) Comma-Free Reed-Solomon Code over GF(16)
is proposed.
[0011] The standard Reed-Solomon decoder for (15,3) Comma-Free
Reed-Solomon can be found in textbooks about error correcting codes
and can correct up to 6 symbol errors. However, due to the
frequency error, channel fading, channel noise or other reasons,
the number of symbol errors may exceed 6 frequently. Therefore, the
standard Reed-Solomon decoder fails to return a valid code
word.
[0012] Another method is proposed by Yi-Ping Eric Wang in "IEEE
Journal on Selected Areas in Communications vol. 18, no. 8 Aug.
2000". Wang proposed that after achieving slot synchronization, the
receiver operations start with correlating the received signal of
SCH with all 16 S-SCH sequences, and then accumulates SSCH
correlations over N.sub.t slots according to the 64 Reed-Solomon
code word sequences used, each with 15 hypothesized frame
boundaries. The total number of hypotheses is therefore 960. At the
end, the hypothesis with the largest accumulated metric is chosen
as the candidate for frame boundary-code group pair, which is given
to next stage for scrambling code identification.
[0013] The method proposed by Wang has better performance, but it
needs large amount of memory and large amount of computation work.
In our invention, we provide a power- and memory-effective method
by use of standard Reed-Solomon decoder combined with reliability
measurement.
SUMMARY OF THE INVENTION
[0014] According to the present invention, the disclosed exemplary
embodiments may provide a power- and memory-effective method and
apparatus for frame synchronization and code group identification.
Accordingly, In an exemplary embodiment, the disclosed is directed
to an apparatus for frame synchronization and code group
identification, comprising: a correlator bank having a plurality of
correlators, a hard decision and reliability measurement unit, a
code sequence identifier, a frame boundary finder and a code group
identification unit.
[0015] When each signal is received, the signal is sent to the
correlator bank to identify the correlation between the current
received signal and 16 orthogonal code word symbols. The hard
decision and reliability measurement unit then chooses the hard
decision symbol with the highest correlation, and the reliability
is computed as a function of 16 correlations.
[0016] Accordingly, the invention may provide a modified
Reed-Solomon decoder in the code sequence identifier to decode the
code word sequence. In an exemplary embodiment, the modified
Reed-Solomon decoder uses a threshold to determine if a code word
symbol should be erased or not based on the reliability of the hard
decision symbol. When the number of valid symbols exceeds or equals
to a threshold which is between 3 and 15, the whole code sequence
is sent to a standard Reed-Solomon error and erasure decoder for
decoding.
[0017] In another exemplary embodiment, the modified Reed-Solomon
decoder compares the number of erasures in a code word sequence
with a threshold which is an integer between 0 and 12. If the
number of erasures is not larger than a threshold, the code
sequence is sent to a standard Reed-Solomon error and erasure
decoder. If the decoder does not return a valid code, k additional
code word symbols with lowest reliabilities are erased and the new
code sequence is sent to the standard Reed-Solomon error and
erasure decoder again.
[0018] The invention may further reduce the symbol error
probability and improve the performance of the code sequence
identifier by using more than one frame of code word symbols.
Accordingly, a symbol and reliability update unit is added in the
code sequence identifier. Because the code word symbols are
transmitted cyclically, after a frame of code words is received and
recorded, the next code word symbol ideally is identical to the
first code word symbol in the recorded frame. The next code word
symbol and its reliability are used to update the corresponding
code word symbol in the recorded frame. When more than one frame of
symbols are received, a decoding strategy is to update the hard
decision symbols with the additional symbols according to their
reliabilities. The updated code sequence is then decoded by the
modified Reed-Solomon decoder.
[0019] Another exemplary decoding strategy for using more than one
code word sequence is to first receive two code word sequences and
then generate a new code word sequence by comparing the two code
word sequences. A code word symbol is erased if the corresponding
code word symbols in the two received sequences are not identical.
The new code word sequence is then sent to a standard Reed-Solomon
error and erasure decoder.
[0020] An alternative exemplary decoding strategy includes using
hard decision on multiple frames of code word symbols with voting.
A number of code word sequences are received and their
hard-decision symbol values are recorded. A new code word sequence
is generated by taking the majority vote of the corresponding code
word symbols in the multiple frames. The new code word sequence is
then sent to a standard Reed-Solomon error and erasure decoder.
[0021] The invention may further provide a method of frame
synchronization. By observing the 64 code word sequences in Table
1, the present invention found that the first code word symbol in a
frame must have a smallest symbol value. If the smallest symbol
value is unique, this symbol is the head of the frame. If the
smallest symbol value is found twice, then the neighboring symbol
after the head of the frame must have a smaller value than the
neighboring symbol after the smallest symbol found in the other
slot.
[0022] The invention may also provide a memory efficient method for
identifying the code group of the code word sequence. The 64 code
word groups that are valid code words of comma-free Reed-Solomon
codes also have the feature that the code word sequence in each
group can be uniquely identified by the first three code word
symbols. By storing the first three code word symbols of each code
word group in the 64 code word groups, the code number of a
received code word sequence can be identified.
[0023] The foregoing and other features, aspects and advantages of
the present invention will become better understood from a careful
reading of a detailed description provided herein below with
appropriate reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0024] The present invention can be understood in more detail by
reading the subsequent detailed description in conjunction with the
examples and references made to the accompanying drawings,
wherein:
[0025] FIG. 1 illustrates the block diagram of the apparatus for
code group identification and frame synchronization according to
the invention;
[0026] FIG. 2 illustrates the flow chart of an embodiment of
modified Reed-Solomon Decoder--"Threshold-Erase Decoder";
[0027] FIG. 3 illustrates the flow chart of an alternative
embodiment of modified Reed-Solomon Decoder--"Erase k by k
Decoder";
[0028] FIG. 4 illustrates the symbol and reliability update
procedure;
[0029] FIG. 5 illustrates a decoding procedure after receiving more
than one frame;
[0030] FIG. 6 illustrates a decoding strategy of multi frames with
hard decision only;
[0031] FIG. 7 illustrates a decoding strategy of multi frames with
voting; and
[0032] FIG. 8 illustrates the frame boundary finder.
[0033] FIG. 9 illustrates the table of 64 groups of valid code
words of comma-free Reed-Solomon codes.
DETAILED DESCRIPTION OF THE EMBODIMENTS
[0034] The gist of the present invention is using a standard
Reed-Solomon error-and-erasure decoder combined with reliability
measurement for code group identification and frame synchronization
in UMTS WCDMA systems. FIG. 1 shows a block diagram of the
apparatus for frame synchronization and code group identification
of this invention. The apparatus comprises a correlator bank having
a plurality of correlators 101, a hard decision and reliability
measurement unit 102, a code sequence identifier 103, a frame
boundary finder 104 and a code group identification unit 105.
[0035] It is known that each one of the 64 code groups of secondary
synchronization code corresponds to a valid code word from (15,3)
Reed-Solomon code. In general, after 16 Walsh code correlators, the
hard-decision symbol error rate is too high that in most cases the
standard Reed-Solomon decoder fails to return a valid code word.
However, using a Reed-Solomon decoder has many advantages such as
less memory requirement and low computation complexity.
[0036] According to this invention, when a signal is received, it
is sent to the correlator bank comprising 16 correlators 101 to
identify the correlation between the current received signal with
the 16 orthogonal code word symbols CS.sub.01, CS.sub.02, . . . ,
and CS.sub.16. The output correlation values from the 16
correlators at time m are {r.sup.01.sub.m, r.sup.02.sub.m, . . . ,
r.sup.16.sub.m}. The hard decision symbol value R.sub.m at time m
is chosen from {CS.sub.01, CS.sub.02, . . . , CS.sub.16} with the
highest correlation. The reliability measurement is defined as a
function of the 16 correlation values {r.sup.01.sub.m,
r.sup.02.sub.m, . . . , r.sup.16.sub.m}, which is used to measure
how reliable the hard decision symbol value R.sub.m is. For
example, reliability measurement L.sub.m can be defined as
L m = max ( r m 01 , r m 02 , , r m 16 ) . or ##EQU00001## L m =
max ( r m 01 , r m 02 , , r m 16 ) j = 1 16 r m j .
##EQU00001.2##
[0037] As shown in FIG. 1, the hard decision and reliability
measurement unit 102 receives the correlation values from the
plurality of correlators 101 to choose a symbol R.sub.m by making a
hard decision. A reliability measurement L.sub.m for the chosen
symbol is then calculated according to a pre-determined formula
shown above.
[0038] Since each one of the 64 code groups is a valid code word
from (15,3) Reed-Solomon codes, the minimum number of code word
symbols required is 3 for the Reed-Solomon decoder to return a
valid code. When all code word symbols are received, this invention
selects code word symbols with higher reliability measurements and
erase others. Based on the property of (15,3) Reed-Solomon codes,
at most 12 code word symbols with low reliability can be erased if
all 15 code word symbols are received.
[0039] According to the present invention, the code sequence
identifier 103 comprises a modified Reed-Solomon decoder 111. An
embodiment of the modified Reed-Solomon decoder 111 is a
"threshold-erase decoder" in which a threshold .sigma..sub.r is
used to determine if a code word symbol should be erased based on
the reliability measurement calculated in the hard decision and
reliability measurement unit 102.
[0040] FIG. 2 shows a flow chart of the method of implementing the
threshold-erase decoder for the modified Reed-Solomon decoder 111.
When a new code word symbol is received, its hard decision symbol
value and corresponding reliability are recorded. If the
reliability is less than the threshold .sigma..sub.r, the received
code word symbol is considered an invalid symbol, an erasure is
declared, and the corresponding reliability is set to be -.infin..
If the reliability is larger than .sigma..sub.r, the hard decision
symbol value is recorded and the number of valid symbol (VSN) is
increased by 1.
[0041] When the number of valid symbols is larger than or equal to
a threshold .sigma..sub.v, which is an integer between 3 and 15 and
is a function of the received symbol number (RSN), the whole code
sequence is sent to the standard Reed-Solomon error-and-erasure
decoder. If the decoding process fails and the RSN is less than 15,
another new code word symbol is received. If the reliability of the
new symbol is larger than .sigma..sub.r, the new code sequence
(with a new received code word symbol) is sent to a standard
Reed-Solomon error and erasure decoder again. The whole decoding
process ends when the standard Reed-Solomon decoder returns a valid
code word or exits when all 15 code word symbols are received.
[0042] FIG. 3 shows another embodiment for the modified
Reed-Solomon decoder 111 which is named "erase k by k decoder". A
code sequence with 15 code symbols is sent into the "erase k by k
decoder". The hard-decision symbol values (R.sub.0,R.sub.1,R.sub.2,
. . . , R.sub.4) and their corresponding reliabilities
(L.sub.0,L.sub.1,L.sub.2, . . . , L.sub.14) are recorded. It should
be noted that some of the code symbols may not be received or may
be erased invalid symbols and, therefore, they are viewed as
erasures and their reliabilities are set to be -.infin..
[0043] The total number of erasures e.sub.0 is determined and
compared with a threshold .sigma..sub.e, which is an integer
between 0 and 12. If the number of erasures e.sub.0 is not larger
than .sigma..sub.e, the code sequence is sent to the standard
Reed-Solomon error and erasure decoder. If the decoding process
fails, (L.sub.0,L.sub.1,L.sub.2, . . . , L.sub.14) is first sorted
in an ascending order (L.sub.(0),L.sub.(1),L.sub.(2), . . . ,
L.sub.(14)), wherein L.sub.(i) corresponds to R.sub.(i). At this
moment, there are e.sub.0 erasures and, thus, R.sub.(0), R.sub.(1),
. . . , R.sub.(e0-1) are erasures and L.sub.(0)=L.sub.(1)= . . .
=L.sub.(e0-1)=-28. In L.sub.(e0), L.sub.(e0+1), . . . , L.sub.(14),
the lowest k reliabilities (corresponding to symbols which are not
erasures) are L.sub.(e0), L.sub.(e0+1), . . . , L.sub.(e0+k-1).
[0044] The k code word symbols R.sub.(e0), R.sub.(e0+1), . . . ,
R.sub.(e0+k-1) with corresponding reliabilities L.sub.(e0),
L.sub.(e0+1), . . . , L.sub.(e0+k-1) are then erased, wherein k is
a positive integer and is a function of current e.sub.0,i.e., it
can be changed in each erase process. The number of erasure becomes
e.sub.0+k. Compare the current number of erasure (e.sub.0+k) with
the threshold .sigma..sub.e. If the number of erasure is not larger
than .sigma..sub.e, the new code sequence (with k more erasures) is
sent to the Reed-Solomon decoder again. The whole
erase-compare-decode process ends when a valid code word is
returned from the standard Reed-Solomon error and erasure decoder
or the number of erasure exceeds the threshold .sigma..sub.e.
[0045] To further reduce the symbol error probability and improve
the performance of the code sequence identifier 103, the invention
may use more than one frame of code word symbols. Accordingly, a
symbol and reliability update unit 112 may be added in the code
sequence identifier 103 as shown in FIG. 1. A method of updating
the hard decision symbol value and reliability measurement when
more than 15 symbols are received as well as a decoding procedure
using more than one frame will be discussed in the following.
[0046] Because the 15 code word symbols are cyclically transmitted,
if a code sequence of 15 code word symbols fails to be decoded, it
is not necessary to abandon this code sequence. In other words, new
code word symbols can be received and used to update the
hard-decision symbol values and the corresponding reliability
measurements. FIG. 4 illustrates an embodiment of the method for
updating the hard decision symbol value and reliability
measurement.
[0047] Assume the previous received code word sequence of 15 code
symbols is (R.sub.0, R.sub.1, R.sub.2, . . . , R.sub.14) and the
corresponding reliabilities is (L.sub.0, L.sub.1, L.sub.2, . . . ,
L.sub.14). Since the 15 code word symbols are cyclically
transmitted, ideally,
R.sub.i=R.sub.i mod 15.A-inverted.i=15,16,17, . . .
[0048] After a frame of code word symbols is received, the total
RSN is 15. When the 16th code word symbol is received, the
hard-decision symbol value R' (or R.sub.15) and the corresponding
reliability L' (or L.sub.15) are recorded. Ideally, R' should be
equal to R.sub.0. But in the presence of the noise or other
reasons, the hard-decision symbol values R.sub.0 and R.sub.15 may
not be equal. If the two hard-decision symbol values (R.sub.0 and
R.sub.15) are equal, the reliability L.sub.0 is updated by
increasing the reliability for a certain amount. The amount of
increased reliability is a function of the original reliability
L.sub.0 and the current received reliability L.sub.15. For example,
these two reliabilities can be added to represent the new
reliability,
L.sub.0.sub.(after updating)=L.sub.0+L.sub.15
[0049] However, if the two hard-decision symbol values (R.sub.0 and
R.sub.15) are not equal, the symbol and the corresponding
reliability have to be updated based on the result of comparing
their corresponding reliabilities (L.sub.0 and L.sub.15). The
hard-decision symbol value after updating is set to be the symbol
value whose corresponding reliability is larger.
R 0 ( after updating ) = { R 0 , if R 0 .noteq. R 15 and L 0
.gtoreq. L 15 R 15 , if R 0 .noteq. R 15 and L 0 < L 15
##EQU00002##
Also, the reliability after updating should be decreased. The
amount of decreased reliability is also a function of L.sub.0 and
L.sub.15. For example,
L.sub.0(after
updating)=max(L.sub.0,L.sub.15)-min(L.sub.0,L.sub.15)
[0050] By the same token, when the 17th code word symbol (R.sub.16)
is received (RSN equals to 16 now), ideally, R.sub.16 should be
equal to R.sub.1. The hard-decision symbol value and reliability
update procedure can again be applied to R.sub.1 and R.sub.16, and
so on and so forth.
[0051] With the method of updating the hard decision symbol value
and reliability for R.sub.i and R.sub.i mod 15, the decoding
procedure can then be introduced. FIG. 5 shows a decoding strategy
when more than one frame (15 symbols) are received. When the
original code word sequence of 15 code word symbols R=(R.sub.0,
R.sub.1, R.sub.2, . . . , R.sub.14) fails to be decoded,
.sigma..sub.N new code word symbols may be received. For example,
if .sigma..sub.N is equal to 4, 4 new code word symbols (R.sub.15,
R.sub.16, R.sub.17, R.sub.18) are received. Applying the symbol
value and reliability update procedure to R.sub.0 and R.sub.15,
R.sub.1 and R.sub.16, R.sub.2 and R.sub.17, R.sub.3 and R.sub.18, a
new code word sequence R' can be obtained. It is worth noting that
even if the hard-decision symbol values may not be changed, the
corresponding reliabilities may be different.
[0052] The new code word sequence R' and new reliability sequence
L' are sent to the modified Reed-Solomon decoder. If the new code
word sequence R' fails to be decoded again, another .sigma..sub.N
new code word symbols may be received to obtain another new code
word sequence R'' and new reliability sequence L'', wherein
.sigma..sub.N can be any positive integer and can be changed for
each update procedure. Again, R'' and L'' are sent to the modified
Reed-Solomon decoder shown in FIG. 2 and FIG. 3 or the combination
of them. The whole decoding procedure ends when the modified
Reed-Solomon decoder returns a valid code word sequence. To avoid
an endless loop due to a low signal-to-noise ratio or other
reasons, a limitation of total RSN is used to terminate the loop.
When the total received symbol number exceeds a pre-determined
integer value MAX_RSN, the current code sequence will be
abandoned.
[0053] FIG. 6 shows another decoding strategy for more than one
code word sequence with hard decision only. Two code word sequences
R.sup.1 and R.sup.2 are received first. Their hard-decision symbol
values are R.sup.1=(R.sup.1.sub.0, R.sup.1.sub.1, R.sub.2, . . . ,
R.sup.1.sub.14) and R.sup.2=(R.sup.2.sub.0, R.sup.2.sub.1,
R.sup.2.sub.2, . . . , R.sup.2.sub.14) respectively. Compare
R.sup.1.sub.j and R.sup.2.sub.j for j=0, 1, 2, . . . , 14. If the
hard-decision symbol values (R.sup.1.sub.j and R.sup.2.sub.j) are
not the same, R.sub.j is declared as erasure. After comparing 15
symbols in R.sup.1 and R.sup.2 if the total number of erasures
e.sub.0 being declared erasure is smaller than threshold
.sigma..sub.e, which can be any integers from 1 to 13, the code
word sequence R=(R.sub.0, R.sub.1, R.sub.2, . . . , R.sub.14) with
e.sub.0 erasures is sent to the standard Reed-Solomon error and
erasure decoder.
[0054] If the code sequence R fails to be decoded, these two code
word sequences may simply be discarded or other decoding strategies
may be tried. On the other hand, another code word sequence R.sup.3
with 15 code word symbols may continue to be received. By comparing
R.sup.3 to the previous recorded code word sequence R, a new
resulting code word sequence can be recorded in R' using the
procedure described above. If the total number of erasures e.sub.0
being declared in R' is smaller than the threshold .sigma..sub.e,
which may be decreased, the code word sequence R' with e.sub.0
erasures is sent to the standard Reed-Solomon error and erasure
decoder. The whole procedure ends when the standard Reed-Solomon
error and erasure decoder returns a valid code word or the number
of received code word sequence is equal to a maximum number of code
word sequences allowed.
[0055] FIG. 7 shows an alternative decoding strategy using hard
decision with voting. At the beginning, .sigma..sub.s code word
sequences are received and their hard-decision symbol values
R.sup.1=(R.sup.1.sub.0, R.sup.1.sub.1, R.sup.1.sub.2, . . . ,
R.sup.1.sub.14), R.sup.2=(R.sup.2.sub.0, R.sup.2.sub.1,
R.sup.2.sub.2, . . . , R.sup.2.sub.14), . . . ,
R.sup..sigma.s=(R.sup..sigma.s.sub.0, R.sup..sigma.s.sub.1,
R.sup..sigma.s.sub.2, . . . , R.sup..sigma.s.sub.14) are recorded.
For each code word symbol, the hard-decision symbol value R.sub.j,
j=0, 1, 2, . . . , 14, is set to be the value by taking the
majority vote of the set {R.sup.1.sub.j, R.sup.2.sub.j,
R.sup.3.sub.j, . . . , R.sup..sigma.s.sub.j}. The resulting code
word sequence is recorded in R=(R.sub.0, R.sub.1, R.sub.2, . . . ,
R.sub.14) and sent to the standard Reed-Solomon error and erasure
decoder. If the decoding process fails, a new code word sequence
may be received, and the majority vote is taken and then, the
resulting code word sequence is decoded again. The whole decoding
strategy ends when the standard Reed-Solomon error and erasure
decoder returns a valid code word or the number of received code
word sequences equals the maximum number of code word sequence
allowed.
[0056] As shown in FIG. 1, after the correct code sequence has been
identified by the code sequence identifier 103, the frame boundary
of the code sequence is determined by the frame boundary finder
104. FIG. 8 illustrates the method to finding the frame boundary
after the Reed-Solomon decoder returns a valid code word
sequence.
[0057] With reference to Table 1, it can be observed that the 64
code word sequences from the 64 groups are valid code words of
comma-free Reed-Solomon codes, i.e., all code words do not have
internal repetition. In addition, in each code word sequence of 15
code word symbols, the first code word symbol has the smallest
symbol value, and the smallest symbol value is found at most twice
in this code word sequence. If the smallest symbol value is unique,
this symbol is the head of the frame. If the smallest symbol value
is found twice, then the neighboring symbol after the head of the
frame must have a smaller value than the neighboring symbol after
the smallest symbol found in the other slot. For example, if the
smallest symbol is found at slot number=0 and slot number=j, the
symbol at the slot number=1 must have a smaller symbol value than
the symbol at slot number=j+1.
[0058] As an example, the code word in Group 0 is (1, 1, 2, 8, 9,
10, 15, 8, 10, 16, 2, 7, 15, 7, 16) in which the smallest symbol
value is 1. The smallest symbol value is found twice in slot
number=0 and slot number=1. Comparing the two symbol values of the
next symbols, i.e., slot number=1 and slot number=2, the symbol
after the head of the frame, i.e., slot number=1, has a smaller
symbol value. Take another example, the code word in Group 63 is
(9, 12, 10, 15, 13, 14, 9, 14, 15, 11, 11, 13, 12, 16, 10) in which
the smallest symbol value is 9. The smallest symbol value is found
twice in slot number=0 and slot number=6. Comparing the two symbol
values of the next symbols, i.e., slot number=1 and slot number=7,
the symbol after the head of the frame, i.e., slot number=1 has a
smaller symbol value.
[0059] As discussed before, the valid code word sequence returned
by the Reed-Solomon decoder may be a cyclic shift of the original
code word sequence. The frame boundary can be determined by finding
the smallest two symbol values in the code word sequence. If the
smallest two symbol values are not equal, the head index of frame
boundary is the index of the smallest symbol value. If the smallest
two symbol values are equal, the head index can be determined by
comparing the two symbol values of the next symbols. Based on the
property introduced above, it is easy to find the head index of the
frame boundary.
[0060] Moreover, after the frame boundary has been determined, the
apparatus of this invention identifies the code group using the
code group identification unit 105. With reference to Table 1, it
is observed that the code word sequence in each group can be
uniquely identified by the first three code word symbols. By use of
the property, only the first three columns of Table 1 have to be
stored. By comparing the first three code word symbols, the code
group number can be identified. Consequently, the memory
requirement is much reduced in the code group identification unit
of this invention.
[0061] It is worth mentioning that FIGS. 2 and 3 illustrate a
"threshold-erase decoder" and an "erase k by k decoder"
respectively for the modified Reed-Solomon decoder 111 of this
invention. Variation of these decoders can be made for the modified
Reed-Solomon decoder. For example, the "threshold-erase decoder"
and "erase k by k decoder" can also be combined if desired.
[0062] Although the present invention has been described with
reference to the exemplary embodiments, it will be understood that
the invention is not limited to the details described thereof.
Various substitutions and modifications have been suggested in the
foregoing description, and others will occur to those of ordinary
skill in the art. Therefore, all such substitutions and
modifications are intended to be embraced within the scope of the
invention as defined in the appended claims.
* * * * *