METHOD AND APPARATUS FOR CHANNEL ENCODING AND CHANNEL DECODING IN A WIRELESS COMMUNICATION SYSTEM
20170033894 ยท 2017-02-02
Inventors
- Seok-Ki Ahn (Suwon-si, KR)
- Jae-Yoel Kim (Suwon-si, KR)
- Chi-Woo Lim (Suwon-si, KR)
- Min Jang (Seongnam-si, KR)
- Kwang-Taik Kim (Yongin-si, KR)
- Woo-Myoung Park (Suwon-si, KR)
Cpc classification
H03M13/1102
ELECTRICITY
H03M13/6356
ELECTRICITY
H03M13/6516
ELECTRICITY
H04L1/005
ELECTRICITY
H03M13/635
ELECTRICITY
H04L1/0016
ELECTRICITY
International classification
Abstract
A method and apparatus for channel encoding and channel decoding in a wireless communication system are provided. The channel encoding method includes generating a first parity set and a second parity set based on information bits, determining a number of additional parity bits based on a number of the information bits and a required coding rate, generating the determined number of additional parity bits using the information bits, and generating a codeword including the information bits, the first parity set, the second parity set, and the generated additional parity bits.
Claims
1. A channel encoding method in a wireless communication system, the channel encoding method comprising: generating a first parity set and a second parity set based on information bits; determining a number of additional parity bits based on a number of the information bits and a required coding rate; generating the determined number of additional parity bits using the information bits; and generating a codeword including the information bits, the first parity set, the second parity set, and the generated additional parity bits.
2. The channel encoding method of claim 1, wherein the generation of the determined number of additional parity bits comprises: determining positions of information bits to be used in generating an additional parity bit according to the determined number of additional parity bits and a turn of the additional parity bit; and generating the additional parity bit by XOR-operating information bits at the determined positions, wherein the generation of the determined number of additional parity bits is performed until the determined number of additional parity bits are generated.
3. The channel encoding method of claim 2, wherein the determination of the positions of the information bits comprises determining the positions of the information bits by a function of the number of the information bits.
4. The channel encoding method of claim 2, wherein the determination of the positions of the information bits comprises determining the positions of information bits randomly using a random seed.
5. The channel encoding method of claim 2, wherein the positions of the information bits to be used are determined according to a first predetermined value as a number of bits used to generate each additional parity bit and a second predetermined value as a number of uses of each bit in generating the additional parity bits.
6. The channel encoding method of claim 1, wherein, if the required coding rate is lower than a predetermined coding rate, the determination of the number of additional parity bits is performed.
7. The channel encoding method of claim 1, wherein the additional parity bits are generated using one of a single parity check code, a low-density parity-check (LDPC) code, a Bose-Chaudhuri-Hocquenghem (BCH) code, and a Reed-Muller (RM) code.
8. A channel encoding method in a wireless communication system, the channel encoding method comprising: generating a first codeword including information bits, a first parity set, and a second parity set, the first and second parity sets being generated based on the information bits; determining a number of additional parity bits based on a number of bits of the first codeword and a required coding rate; generating the determined number of additional parity bits using the bits of the first codeword; and generating a second codeword including the bits of the first codeword and the generated additional parity bits.
9. The channel encoding method of claim 8, wherein the generation of the determined number of additional parity bits comprises: determining positions of codeword bits to be used in generating an additional parity bit according to the determined number of additional parity bits and a turn of the additional parity bit; and generating the additional parity bit by XOR-operating codeword bits at the determined positions, wherein the generation of the determined number of additional parity bits is performed until the determined number of additional parity bits are generated.
10. The channel encoding method of claim 9, wherein the determination of the positions of the codeword bits comprises determining the positions of the codeword bits by a function of the number of the codeword bits.
11. The channel encoding method of claim 9, wherein the determination of the positions of the codeword bits comprises determining the positions of the codeword bits randomly using a random seed.
12. The channel encoding method of claim 9, wherein the positions of the information bits to be used are determined according to a first predetermined value as a number of bits used to generate each additional parity bit and a second predetermined value as a number of uses of each bit in generating the additional parity bits
13. The channel encoding method of claim 8, wherein, if the required coding rate is lower than a predetermined coding rate, the determination of the number of additional parity bits is performed.
14. The channel encoding method of claim 8, wherein the additional parity bits are generated using one of a single parity check code, a low-density parity-check (LDPC) code, a Bose-Chaudhuri-Hocquenghem (BCH) code, and a Reed-Muller (RM) code.
15. A channel decoding method in a wireless communication system, the channel decoding method comprising: primarily decoding information bits based on the information bits, a first parity set, and a second parity set included in a codeword; and secondarily decoding additional parity bits using the additional parity bits included in the codeword and a result of the primary decoding, wherein a result of the secondary decoding is used as an input for decoding of the information bits during the primary decoding.
16. The channel decoding method of claim 15, wherein a number of occurrences of the primary decoding and a number of occurrences of the secondary decoding are scheduled according to a predetermined scheduling scheme.
17. The channel decoding method of claim 16, wherein the scheduling scheme is at least one of a first scheduling scheme and a second scheduling scheme, and wherein the secondary decoding is performed x times each time the primary decoding is performed once in the first scheduling scheme and the secondary decoding is performed n times before the primary decoding is performed in the second scheduling scheme, x and n being integers.
18. The channel decoding method of claim 15, wherein the additional parity bits are generated using the information bits during encoding.
19. The channel decoding method of claim 15, wherein the additional parity bits are generated using a first codeword including information bits, and first and second parity sets generated based on the information bits.
20. A channel encoder in a wireless communication system, comprising: a first encoder configured to generate a first parity set and a second parity set based on information bits; an additional parity bit generator configured to: determine a number of additional parity bits based on a number of the information bits and a required coding rate, and generate the determined number of additional parity bits using the information bits; and a codeword generator configured to generate a codeword including the information bits, the first parity set, the second parity set, and the generated additional parity bits.
21. The channel encoder of claim 20, wherein the additional parity bit generator is further configured to: determine positions of the information bits to be used in generating an additional parity bit according to the determined number of additional parity bits and a turn of the additional parity bit, generate the additional parity bit by XOR-operating the information bits at the determined positions, and generate one or more additional parity bits until the determined number of additional parity bits are generated.
22. The channel encoder of claim 21, wherein the positions of the information bits are determined by a function of the number of the information bits.
23. The channel encoder of claim 21, wherein the positions of the information bits are determined randomly using a random seed.
24. The channel encoder of claim 20, wherein, if the required coding rate is lower than a predetermined coding rate, the additional parity bit generator is further configured to determine the number of additional parity bits.
25. The channel encoder of claim 20, wherein the additional parity bits are generated using one of a single parity check code, a low-density parity-check (LDPC) code, a Bose-Chaudhuri-Hocquenghem (BCH) code, and a Reed-Muller (RM) code.
26. A channel encoder in a wireless communication system, the channel encoder comprising: a first encoder configured to generate a first codeword including information bits, a first parity set, and a second parity set, the first and second parity sets being generated based on the information bits; an additional parity bit generator configured to: determine a number of additional parity bits based on a number of bits of the first codeword and a required coding rate, and generate the determined number of additional parity bits using the bits of the first codeword; and a codeword generator configured to generate a second codeword including the bits of the first codeword and the generated additional parity bits.
27. The channel encoder of claim 26, wherein the additional parity bit generator is further configured to: determine positions of codeword bits to be used in generating an additional parity bit according to the determined number of additional parity bits and a turn of the additional parity bit, generate the additional parity bit by XOR-operating codeword bits at the determined positions, and generate one or more additional parity bits until the determined number of additional parity bits are generated.
28. The channel encoder of claim 27, wherein the positions of the codeword bits are determined by a function of the number of the codeword bits.
29. The channel encoder of claim 27, wherein the positions of the codeword bits are determined randomly using a random seed.
30. The channel encoder of claim 26, wherein if the required coding rate is lower than a predetermined coding rate, the additional parity bit generator is further configured to determine the number of additional parity bits.
31. The channel encoder of claim 26, wherein the additional parity bits are generated using one of a single parity check code, a low-density parity-check (LDPC) code, a Bose-Chaudhuri-Hocquenghem (BCH) code, and a Reed-Muller (RM) code.
32. A channel decoder in a wireless communication system, the channel decoder comprising: a first decoder configured to primarily decode information bits based on the information bits, a first parity set, and a second parity set included in a codeword; and a second decoder configured to secondarily decode additional parity bits using the additional parity bits included in the codeword and a result of the primary decoding, wherein the first decoder is further configured to use a result of the secondary decoding as an input for decoding of the information bits.
33. The channel decoder of claim 32, wherein a number of occurrences of the primary decoding and a number of occurrences of the secondary decoding are scheduled according to a predetermined scheduling scheme.
34. The channel decoder of claim 33, wherein the scheduling scheme is at least one of a first scheduling scheme and a second scheduling scheme, and wherein the secondary decoding is performed x times each time the primary decoding is performed once in the first scheduling scheme and the secondary decoding is performed n times before the primary decoding is performed in the second scheduling scheme, x and n being integers.
35. The channel decoder of claim 32, wherein the additional parity bits are generated using the information bits during encoding.
36. The channel decoder of claim 32, wherein the additional parity bits are generated using a first codeword including information bits, and first and second parity sets generated based on the information bits.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0024] The above and other aspects, features, and advantages of certain embodiments of the present disclosure will be more apparent from the following description taken in conjunction with the accompanying drawings, in which:
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040] Throughout the drawings, like reference numerals will be understood to refer to like parts, components, and structures.
DETAILED DESCRIPTION
[0041] The following description with reference to the accompanying drawings is provided to assist in a comprehensive understanding of various embodiments of the present disclosure as defined by the claims and their equivalents. It includes various specific details to assist in that understanding but these are to be regarded as merely exemplary. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the various embodiments described herein can be made without departing from the scope and spirit of the present disclosure. In addition, descriptions of well-known functions and constructions may be omitted for clarity and conciseness.
[0042] The terms and words used in the following description and claims are not limited to the bibliographical meanings, but, are merely used by the inventor to enable a clear and consistent understanding of the present disclosure. Accordingly, it should be apparent to those skilled in the art that the following description of various embodiments of the present disclosure is provided for illustration purpose only and not for the purpose of limiting the present disclosure as defined by the appended claims and their equivalents.
[0043] It is to be understood that the singular forms a, an, and the include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to a component surface includes reference to one or more of such surfaces.
[0044] Lest it should obscure the subject matter of the present disclosure, a detailed description of known functions or structures will be omitted. Hereinbelow, specific embodiments of the present disclosure will be described in detail with reference to the attached drawings.
[0045] While the various embodiments of the present disclosure are described as separate ones for the convenience of description, two or more of them can be implemented in combination as far as the combination does not cause conflict.
[0046] The terms used in the following description are defined in consideration of their functions in the present disclosure and may vary according to the intent of a user or an operator or the customs. Therefore, the present disclosure should be defined by the appended claims and their equivalents.
[0047] Many modifications can be made to various embodiments of the present disclosure. Specific embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. However, the scope of the present disclosure is not intended to be limited to the particular embodiments and it is to be understood that the present disclosure covers all modifications, equivalents, and/or alternatives falling within the scope and spirit of the present disclosure.
[0048] Ordinal terms as used in the present disclosure, such as first and second may modify the names of various components, not being intended to limit the components. These expressions are used to distinguish one component from another component. For example, a component may be referred to as a second component and vice versa without departing from the scope of the present disclosure. The term, and/or includes a combination or any of a plurality of related items.
[0049] In the present disclosure, the term have, may have, include, or may include signifies the presence of a feature, number, operation, component, part, or a combination of them, not excluding the presence or possible addition of one or more other features, numbers, operations, components, parts, or a combination of them.
[0050] Apparatuses and methods proposed by the present disclosure are applicable to various communication systems including a long term evolution (LTE) mobile communication system, an LTE-advanced (LTE-A) mobile communication system, a high speed downlink packet access (HSDPA) mobile communication system, a high speed uplink packet access (HSUPA) mobile communication system, a 3rd generation project partnership 2 (3GPP2) high rate packet data (HRPD) mobile communication system, a 3GPP2 wideband code division multiple access (WCDMA) mobile communication system, a 3GPP2 CDMA mobile communication system, an institute of electrical and electronics engineers (IEEE) 802.16m communication system, an evolved packet system (EPS), and a mobile Internet protocol (mobile IP) system.
[0051] Before describing the present disclosure, a turbo encoder will be described in brief.
[0052]
[0053] Referring to
[0054]
[0055] Referring to
[0056]
[0057] Referring to
[0058] The present disclosure proposes a method for more efficiently performing channel encoding, when channel encoding is performed at a coding rate equal to or lower than a predetermined value (for example, ).
[0059] Before a detailed description of the present disclosure, the basic concept of the present disclosure will be described in brief
[0060] In various embodiments of the present disclosure, a codeword is generated by generating additional parity bits and including the parity bits in the codeword. In regard to inclusion of additional parity bits in a codeword, additional parity bits may be added in parallel to a codeword generated from a conventional encoder (first embodiment), or additional parity bits may be added serially to a codeword generated from a conventional encoder (second embodiment). Further, channel decoding methods and apparatuses corresponding to the channel encoding methods are proposed.
[0061] Meanwhile, since a decoder for decoding a codeword generated from a conventional encoder and a decoder for decoding additional parity bits are co-existent for channel decoding of the present disclosure, decoding scheduling is performed to control the decoding numbers of the two decoders, to thereby increase a decoding speed.
[0062] Encoders according to various embodiments of the present disclosure will be described as based on a conventional turbo encoder. Therefore, a conventional operation of a rate turbo encoder is still performed, and as many additional parity bits as needed are generated according to a required coding rate. However, the various embodiments of the present disclosure are not limited to a turbo encoder.
[0063] With reference to
[0064]
[0065] Referring to
[0066] Meanwhile, it is assumed that the additional parity bit generator 407 uses, for example, a single parity check code in the present disclosure. That is, the additional parity bit generator 407 may generate additional parity bits using the single parity check code. The additional parity bit generator 407 may generate one additional parity bit by exclusive or (XOR-operating a predetermined number of (for example, two or three) information bits. The additional parity bits generated in this manner and a turbo codeword encoded at a coding rate of are constructed into a final codeword and transmitted, thus satisfying the required coding rate. While not shown, a codeword generator may generate the turbo codeword and the additional parity bits. Since as many additional parity bits as needed may be generated continuously in the proposed method of the present disclosure, all possible numbers of information bits and all possible required coding rates may be satisfied.
[0067] A codeword generated from the turbo encoder 400 illustrated in
[0068] Meanwhile, an issue to be considered for the additional parity generation operation is to determine the number and positions of information bits to be XOR-operated. Because the number and positions of information bits significantly affect encoding performance, the number and positions of information bits should be optimized in terms of performance. In general, channel encoding at a low coding rate operates in a low signal-to-noise ratio (SNR) area, and it is preferred in terms of performance to generate an additional parity bit from a small number of information bits. That's why the present disclosure uses a specific small number of (for example, two or three) information bits in XOR operation. Meanwhile, as a required coding rate decreases, the number of information bits needed for XOR operation tends to decrease.
[0069]
[0070] As described before with reference to
[0071]
[0072] Referring to
[0073] The additional parity bit decoder 609 processes additional parity bits generated from the turbo decoder 400 of
[0074] A description will be given of an encoding and decoding method according to another embodiment of the present disclosure with reference to
[0075]
[0076] The encoder 400 of
[0077] Referring to
[0078]
[0079] Referring to
[0080]
[0081] A turbo decoder 900 of
[0082] However, since the information bits 711 and the parity bit sets 713 and 715 are used for generating additional parity bits in the encoder 700 according to the second embodiment, the LLR values of parity bits included in the first parity set 713 and/or the second parity set 715 as well as the LLR values of the information bits 717 are needed as inputs to the additional parity decoder 909. Referring to
[0083] Meanwhile, the additional parity decoder 909 generates specific information for the information bits 711, the parity bits of the first parity set 713, and the parity bits of the second parity set 715 from the input information, and adds the generated specific information to the LLR values input to the turbo decoder 700.
[0084] Meanwhile, the BCJR decoders 901 and 907 of the turbo decoder 900 exchange only the LLR values of the information bits. Accordingly, to operate the turbo decoder 900 of
[0085] Now, an operation of an additional parity bit decoder according to various embodiments of the present disclosure will be described.
[0086]
[0087] Referring to
[0088] In the foregoing first embodiment, the additional parity bit decoder 1009 decodes an additional parity bit 1011 generated by XOR-operating a predetermined number of (two or three) information bits. In the foregoing second embodiment, the additional parity bit decoder 1009 decodes an additional parity bit 1011 generated by XOR-operating a predetermined number of (two or three) codeword bits. The decoding operation is similar to an operation of a check node for a low density parity check (LDPC) code.
[0089] Information R output from the additional parity bit decoder 1009 may be calculated using input information Q1, Q2, and Q3 by Equation 1.
R=((Q.sub.1)+(Q.sub.2)+(Q.sub.3)) Equation 1
[0090] where the function (x) is given as (x)=0.5 log(tan h(0.5)) and may be implemented in the form of a look-up table.
[0091] Further, inputs to the additional parity bit decoder 1009 include the values of additional parity bits received at the turbo decoder, and signals output from BCJR decoders 1001 and 1003. In the first embodiment, the signals output from the BCJR decoders 1001 and 1003 are the LLR values of information bits output from the turbo decoder, whereas in the second embodiment, the signals output from the BCJR decoders 1001 and 1003 are the LLR values of codeword bits output from the turbo decoder.
[0092] A signal output from the additional parity bit decoder 1009 should be provided to all information bits (or all codeword bits) used for generating the additional parity bits. Accordingly, if the number of bits used in XOR operation is 3, the additional parity bit decoder 1009 outputs three signals, as illustrated in
[0093] A decoding scheduling method for increasing a decoding convergence speed according to an embodiment of the present disclosure will be described below.
[0094]
[0095] Referring to
[0096] The decoder 1100 proposed in the present disclosure is configured by adding the additional parity bit decoder 611 to the conventional turbo decoder. For the convenience of description, decoding performed in the conventional turbo decoder will be referred to as decoding A 1101, and decoding performed in the parity bit decoder 611 will be referred to as decoding B 1103. A decoding convergence speed and decoding performance may be increased by scheduling the number of occurrences of decoding A 1101 and the number of occurrences of decoding B 1103. The present disclosure proposes the following scheduling schemes.
[0097] (1) Scheduling scheme 1: Decoding B 1103 is performed x times (x1) each time decoding A 1101 is performed once in the conventional turbo decoder.
[0098] (2) Scheduling scheme 2: Decoding B 1103 is performed sufficiently n times before decoding A 1101 is performed once in the conventional turbo decoder.
[0099] (3) Scheduling scheme 3: Scheduling scheme 1 and scheduling scheme 2 are performed in combination.
[0100]
[0101] Referring to
[0102] In operations 1213 and 1215, encoding is performed in the conventional manner. That is, a codeword is generated by rate turbo encoding in operation 1213, and the turbo codeword is punctured to match the required coding rate in operation 1215.
[0103] On the contrary, if the required coding rate is lower than in operation 1205, encoding is performed in a method of the present disclosure in operation 1207. That is, the number of necessary additional parity bits is determined. The number of additional parity bits may be determined to be {number of information bits*(1/required coding rate3)}. Subsequently, encoding is performed at the coding rate of and the determined number of parity bits are generated in operation 1209. In operation 1211, the bits of the generated turbo codeword and the generated additional parity bits are all output.
[0104]
[0105] Referring to
[0106] Now, a description will be given of a method for determining the number and positions of information bits (or codeword bits) for use in generating additional parity bits according to various embodiments of the present disclosure. Unless otherwise specified, the term bit means an information bit or a codeword bit.
[0107] To satisfy various numbers of information bits required for cellular communication, channel encoding should support various numbers of information bits. Accordingly, the number and positions of bits to be used in configuring additional parity bits should be predetermined for each possible number of bits and each possible required coding rate, and the determined numbers and positions of bits should be shared between a transmitter and a receiver. The present disclosure proposes the following two methods for determining the number and positions of bits.
[0108] (1) Method 1: The positions of bits to be used for generating an additional parity bit are determined as a function of the number of bits. This method is referred to as a systematic method.
[0109] (2) Method 2: The positions of bits to be used for generating an additional parity bit are determined randomly in a predetermined rule. This method is referred to as a random method.
[0110]
[0111] Referring to
[0112] In the example of
(0, 0.2L, 0.6L), (0, 0.4L, 0.85L), (0, 0.55L) Equation 2
[0113] Equation 2 indicates that a case of three bits used for XOR operation at a coding rate between and occupies a proportion of 66.6% and a case of two bits used for XOR operation at a coding rate between and occupies a proportion of 33.3%, and also provides information about the positions of bits used for XOR operation for each additional parity bit.
[0114] According to this method, the number and positions of bits used for generating each additional parity bit may be expressed for an arbitrary L value. Meanwhile, the transmitter and the receiver share simple information such as Equation 2 in advance. The receiver may acquire information about the method for generating additional parity bits in an encoder of the transmitter based on the shared information.
[0115] Meanwhile, if Method 2, that is, the random method is used, the transmitter and the receiver may share a random seed and determine the positions of bits randomly, using the random seed. However, because the number of bits used for XOR operation affects performance significantly in the additional parity generation methods proposed by the present disclosure, bits should be selected for XOR operation, satisfying the following two criteria, even in the random method.
[0116] (1) Criterion 1: a predetermined value as the number of bits used to generate each additional parity bit.
[0117] (2) Criterion 2: a predetermined value as the number of uses of each bit in generating additional parity bits.
[0118] The predetermined values given as Criterion 1 and Criterion 2 may be values which have been simulated statistically as leading to high efficiency. Meanwhile, the statistical simulation results may be laid out as a table listing values of Criterion 1 and Criterion 2 for coding rates, and values of Criterion 1 and Criterion 2 for each coding rate may be used, referring to the table. Meanwhile, although a single value may be given as a value of Criterion 1 or Criterion 2, a range of values may be given for Criterion 1 or Criterion 2. For example, for a coding rate of , the number of bits used for generating an additional parity bit may be set to 1 to 3.
[0119] While the above embodiments of the present disclosure have been described in the context of a single parity check code used for generating additional parity bits, they are also applicable to an encoder and decoder using a channel code other than the single parity check code, such as an LDPC code, a Bose-Chaudhuri-Hocquenghem (BCH) code, and a Reed-Muller (RM) code.
[0120]
[0121] Referring to
[0122] The afore-described aspects of the present disclosure may be implemented as computer-readable code in a computer-readable recoding medium. The computer-readable recording medium may be any recording device that stores data readable by a computer system. Examples of the computer-readable recording medium include read only memory (ROM), random access memory (RAM), compact disk-ROM (CD-ROM), magnetic tape, floppy disk, optical data storage device, and carrier waves. In addition, the computer-readable recording medium may be distributed over computer systems connected over a network, and computer-readable codes may be stored and executed in a distributed manner. Also, programmers skilled in the art of the present disclosure may readily interpret functional programs, code, and code segments for implementing the present disclosure.
[0123] The method and apparatus according to an embodiment of the present disclosure may be implemented in hardware, software, or a combination of hardware and software. The software may be stored, for example, irrespective of erasable or rewritable, in a volatile or non-volatile storage device such as a storage device like ROM, a memory such as RAM, a memory chip, or an integrated circuit (IC), or an optically or magnetically writable and machine-readable (for example, computer-readable) storage medium such as CD, digital versatile disc (DVD), or magnetic tape. The method according to an embodiment of the present disclosure may be implemented by a computer or a portable terminal including a controller and a memory. The memory is an example of a machine-readable storage medium suitable for storing a program or programs including instructions that implement embodiments of the present disclosure.
[0124] Accordingly, the present disclosure includes a program including code for implementing the apparatus or method as disclosed in the claims and a machine-readable storage medium that stores the program. Also, this program may be electronically transferred through a medium such as a communication signal transmitted by wired or wireless connection and the present disclosure includes its equivalents appropriately.
[0125] An apparatus according to an embodiment of the present disclosure may receive a program from a wired or wirelessly connected program providing device and store the program. The program providing device may include a program having instructions for implementing a predetermined method for protecting content, a memory for storing information needed for the content protection method, a communication unit for conducting wired or wireless communication with a graphic processing device, and a controller for transmitting the program upon request of a transmitting and receiving apparatus or automatically.
[0126] While the present disclosure has been shown and described with reference to various embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present disclosure as defined by the appended claims and their equivalents.