Lecture 03

IIT Kanpur July 201
20 followers
Jul 19, 2024
Welcome to the third lecture of our series on 5G wireless standard design. We will begin with a quick recap of AMC before discussing how cellular data remains error-free. This will include an exploration of protocols like Automatic Repeat Request (ARQ) and Hybrid Automatic Repeat Request (HARQ). We will also examine various HARQ techniques, such as Chase Combining and Incremental Redundancy.
[Music]
we'll learn about another key technology
today which is arq and hybrid arq
protocols okay so we'll see the need of
it we'll understand today we are going
to spend half an hour understanding this
so what is motivation behind these
protocol calls so we uh learned about
this adaptive modation and coding
yesterday and we saw that if like for a
particular SNR you can get a particular
rate okay and SNR is like typically a
function of how far a user is from the
base station okay now what happens if
this SNR changes okay wherein like a
user requested for an MCS corresponding
to the high SNR okay and it moves to a
low SNR region right it could happen
when like you are on in a mall and then
you suddenly go to the basement of a
mall to a parking lot then the S drops
because the signal considerably drops
okay now you ask for this MCS 26 and
suddenly you have gone to MCS 2 okay so
what will happen we understood yesterday
that receiver will not be able to uh
decode this data without errors correct
okay right so so ldbc will not work
because it is receiving at a much higher
rate than what can it can decode
okay so this keeps happening in any
Wireless Systems okay if the transmitter
or receiver is mobile okay now have you
ever wondered how your mobile is able to
always provide you error-free data right
okay if it is a simple thing if it is
your email okay you always receive it
without error then no errors in the data
you have received how does that happen
Okay so that's where these arq protocols
come in okay and the first acronym I
used was arq which was automatic repeat
request and the second one is the some
version of this called hybrid automatic
repeat request okay is evolved version
of this and this is the reference so
we'll basically discuss these two
protocols and how they ensure that you
always receive the error free data
that's an intention because you don't
want to receive any data with error okay
you don't know what was the actual data
okay so this will first start with this
arq protocol okay so remember the
acronym automatic repeat request okay so
this aru protocol uses an error
detection code okay on top of this error
correction code which is ldpc for us
okay and that's what we are going to
learn it is a fundamental block this
error Det detection code okay how does
this work that we'll see later but what
it does is it can tell you whether your
decoded data has an error or not okay
how does it tell okay so there is
multiple kinds of error detection codes
you're going to the standard uses the
cyclic redundancy check okay so it can
only detect errors it cannot correct
errors okay unlike this ldpc which can
correct errors okay so let's see the
flow and how this
the CRC comes into picture at what stage
the CRC comes into picture so you see
this we are building upon this
transceiver chain which we like learned
in the last class so what did we see we
started from here we added this
module correct and now because there is
a need that like there can be errors in
data even though like you you know the
exact capacity okay so what are this so
so this is the data this module was not
there in the last class CRC calculation
and CRC validation these two modules
were not there okay so what are we doing
now okay so this is the data which we
want to transmit okay and this is the
data you want to receive at the receiver
okay your mobile transmitted in the up
link base station wants to receive or in
the down link base station transmitted
some data you want to receive okay so it
should be error free now so this data
okay is the intended data so there is
this CRC calculation module so what
happens okay so this module will
calculate the CRC based on this data
message okay how does it calculate what
protocol is there that will come later
okay let's say
some uh CRC is calculated this module is
able to do that okay and that is of
course based on the data so it'll
calculate some let's say uh some 24 bit
of CRC okay it adds to this
data fine okay so your actual data
becomes data plus CRC at this
stage instead of only encoding data what
will this ldpc encoder do it will encode
data plus
CRC okay keep this in mind CRC is
generated Based on data okay now we
understood this yesterday
right the whole of
it right okay so what happens here and
this is point number one the output of
this data plus CRC the output of this
what will happen you'll have data plus
CRC plus parity bits which this ldpc
encoder is going to add then you
whatever is the rate okay right this
you'll encode according to that rate we
saw that yesterday then
modulation your Channel demodulation
ldpc
decoder correct okay
so here what happens at Point number
three output of
this what is the output you are going to
get you'll get decoded data plus
CRC at this
stage is this clear that we at the
receiver what is going to happen Okay
that opposite of whatever happened in
transmitter
demodulation ldpc decoding will remove
the par bits and give you the message
bits which it tooken correct and then
you have this decoded data plus
CRC right now this CRC validation module
will look at this CRC and will tell you
whether this decoded data has errors or
not do we get the flow
okay so at Point number three you have
decoded data plus CRC this CRC
validation module we'll look at this
both of them okay it can validate
whether this decoded data has errors or
not how does it happen what is the
protocol will come later when we start
understanding the standard okay so at
the end of it what we know here is that
the decoded data is error free
erroneous fine
okay so if no error is detected in the
received data block here receiver will
indicate to the transmitter that the
receiver data is error free and how does
it do that it sends a one bit message
back to the transmitter and that's
called an
acknowledgement okay it's an act is a
one bit act okay because error free or
noner fre that's all okay that's the
signal which needs to be sent to the
transmitter okay so if you implement in
a very simple way so transmitter will
wait for this signal to
come then only it will transmit the next
block a very simple way of implementing
this protocol okay so unless until the
receiver tells the transmitter that I
have successfully acknowledged I have
successfully decoded this data
transmitter is not going to transmit the
next packet of data okay so this modules
guarantees that the received data is
error free so
if error is
detected in this arq protocol what
happens is the receiver discards this
data okay and then notifies the
transmitter by sending a negative
acknowledgement it's called an act so it
transmitter knows that receiver has not
been able to successfully decode the
data for whatsoever
reasons okay I gave one simple reason
that you move to the basement or that is
one you move from this room to the
outside or come from outside the room to
inside okay signal strength changes
because inside the room the signal will
get reflected by multiple walls it has
to like cross these walls so there will
be a lot of
attenuation okay so the SNR has reduced
so multiple reasons wherein like this
decoded data can fail
okay so in response to the snack
transmitter R transmit the same
information fine okay this is basically
arq protocol you see this it'll keep
happening in Loop and it'll guarantee
that you will receive your data
correctly the receiver is able to
receive the data correctly okay so this
is in a very simple form the arq
protocol okay so we'll understand what
hybrid arq protocol is okay it builds on
top of it and there is only one simple
difference and what is that that in arq
if the error is detected receiver throws
away that data in hybrid arq it doesn't
throw away it keeps that data it uses
that okay and I'll show you how it
improves the performance okay there
should be some reason to retain the data
correct and it retains the data and
requests for retransmission of data
because the receive data is
erroneous right so it is the data is
retained okay and this is called hybrid
arq okay it we'll see what are different
forms of this hybrid arq and how does it
help that is the intention okay because
if you keep doing it you are bound to
receive your data without any error
because negative acknowledgement keep
will keep going and at some stage there
is hope that like you will be able to
recover your data it might happen that
you in the basement of a building for
let's say some time you be able to
receive the data transmitter will give
up after making maximum number of
attempts okay it give up then I'm not
able to reach you that's all stops okay
but so what happens there are two
flavors of hybrid arq first one is
called Chase combining and another one
is called incremental redundancy we'll
see both these flavors how do they help
okay so I've shown you this block let's
see what is happening we'll understand
everything information
bits right okay so CRC is
inserted then you encode it okay this is
rate
3x4 so you there rate 3x4 you have used
for encoding as an example okay right so
you take this rate 3x4 encoded data okay
send it don't look at anything else here
okay look only
here okay so you sent this this was the
first
transmission these bits were input to
the decoder okay and what happens is the
CRC validation module says that these
bits are in error okay there are not an
error you done you want to understand
what happens if there is an error so
Knack goes to the transmitter
transmitter will do the first
ransmission this transmission this is
first ransmission
okay you get this the same data is
transmitted again exactly the
same okay so this is called Chase
combining Chase transmission and now you
see the same data is transmitting what
will this do what will the receiver do
because it has received a fresh copy of
the transmit data there second copy
right okay correct so R Transmissions
consist of same set of coded coded bit
as the original transmission just showed
it to you
okay so after each R transmission
receiver combines each received bit with
this previous transmission okay so what
am I doing I receive some let's say 100
bits I have another set of 100 bits I
simply add them okay signals I I'm
adding them okay they're fine
okay so this combined signal is fed to
the FC decoder this added signal is fed
to the FC decoder okay FC decoder will
decode it again will CRC validation
module again check the validity of it if
the CRC passes it's fine right if CRC is
not able to pass then again It'll ask
for R transmission same set of data is
sent again you again add that okay how
will this addition help I'll tell you in
the next slide okay but that's the
process that same data is transmitted
you keep adding that data at the
receiver okay and feed this combined
data to the FC decoder okay now FC
decoder decodes CRC gets validated or
not okay based on that another set of
ransmission another set of
retransmission okay if it how is this
helping that let's understand that okay
first thing you will note here is when I
retransmit this old data okay the code
rate is not changing you transmitted
with 3x4 okay what's happening here you
got the if it is a rate 3x4 okay I'm
explaining this part
okay so what what is happening if it is
rate 3x4 code three message bit and one
par bit when you are retransmitting you
retransmitting so same three message
bits and one par bit you add that what's
happening at the end of it right same
three message bit and one pirate bit
rate
remains 3x 4 okay I'm stressing upon
this because the second flavor that IR
I'm talking about will change the rate
okay that's why I'm alert in it to you
that this is not happening
here okay rate remains 3x4 after each
combining I gave you the reason all of
us understood that okay because message
bits and the same message bits and the
same parity bit is being retransmitted
okay now my claim is that if we are
doing it it should improve the
performance right it should basically
like help you in decoding the data
because for the first transmission we
could not do it how is it helping the
second transmission okay what is
happening and one reason you remember
why did we even face the situation
because the SNR has
reduced correct okay you ask for a
higher MCS but you are in a Zone where
in you cannot decode that okay so the
SNR has reduced if it is other way
around the SNR increases you will
peacefully be able to decode that
data right because you asked for a lower
MCS and you have gone to a higher MCS
Zone you'll be able to decode that
right okay but other way around it'll
not be able to decode because of the
obvious reasons okay because of what
Shannon told us now how does it help how
does this combining help I just told you
that SNR is reducing okay how will this
addition help in increasing the SNR okay
I'll show you that if I increase if I do
this combining I'll be able to increase
the SNR okay right if SNR gets
increased right there so I can basically
there is a hope that I'll be able to
decode the MCS which I had earlier asked
for which corresponded to the higher MCS
or the higher SNR okay right so let's
see that okay this combined receive
signal the added signal which is being
fed to the FC decoder this was the first
let's say this is okay this is the first
time you received your data okay I'm
looking only at one bit this is if there
are thousand bit same thing like it will
be like X1 plus the same model is
applicable okay now second time what
happens you first time you not able to
decode Knack second time data comes to
you what is changing across this the
noise okay I'm taking very simple
example to elucidate the fact a lot of
things other things also change but
forget them for a moment so what am I
doing here y1 + Y2 that's what I'm doing
what happens what will be the resultant
signal 2x + N1 + N2 okay now you look at
the SNR of this when you transmitted the
signal for the first time what is the
SNR P by Sigma
Square that's what the signal power is p
noise power is Sigma Square that's the
notation we used for the SNR so P by
Sigma Square okay right now what happens
so you were not able to decode the data
you asked for the second the first
retransmission okay you added that now
look at the SNR of this signal okay
we'll calculate the SNR of this signal
what is the signal power if x has power
P what will be the power of this 2x it
will be 4 P 2x² right power of
this a signal Square you get the power
right so that the power is 4 P what is
the power of noise you square this also
okay so what happens so the power is N1
plus simple okay this is
okay there some expectation sitting here
but I'm not using that so what happens
okay this is actually random signal okay
what happens what will happen What N1
squ
plus right so expectation of N1 Square
we saw we have assumed it to be Sigma
Square N2 is also same variance Sigma
Square what happens to this
expectation
of this is what if you have not seen it
this is zero because N1 and two are
independent noise with zero mean okay so
this goes to zero okay so power of this
is 2 Sigma Square noise power
is 2 Sigma Square signal power is 4 P
what is the
SNR right here here SNR was P by Sigma
Square what have I done by simple
combining I've doubled the
SNR okay right so I'm able to by this
using this combining I'm able to double
the if I add it thce that's how this R
transmission you add them the SNR will
become thce four times that's what is
happening so you increasing the SNR
there should be some reason right that's
why we are doing it okay so SNR dropped
you're artificially boosting it by
asking for the fresh packet of
data okay right so this is simple Chase
combining because like there's no other
way this that you can increase the SNR
in the simple
setup okay right so that's Chase
combining that is implemented is used in
standard day in and day out okay right
so this is first flavor second flavor is
incremental Rundy okay so if you have
any doubts retain them we I'll answer at
the end of this recording okay so look
at a similar kind of setup okay we are
looking now what we are looking at is
the incremental
redundancy second flavor of hybrid arq
okay right so what is happening look at
the first
difference I'm decoding it at a rate 1x4
I'm not decoding it at a rate 3x
4 okay right even though the user had
asked for a rate of
3x4 okay this we are assuming that user
had asked for rate 3x4 code okay I'm not
doing that I'm decoding I'm encoding it
at a rate of
1x4 okay fine now what happens here is
that so this is basic code when by 4 so
for three message bits how many output
bits will be
there 12 rate 1x4 right okay 3 input
bits and 12 output bits so nine pity
bits will be added if rate 3x 4 three
input bit and four output but when
pirate bit gets
added extending that idea okay right
because I'm using a basic 1x4 code okay
for initial transmission user had asked
for rate 3x4
okay right so what is happening so only
every third coded bit is
transmitted what does that mean how many
bits I
transmit
I 12 bits okay so I'll see let's say
this what am I doing here I'll take this
this is rate 1x4 okay so three bits and
nine message bits okay now user had
asked for rate 3x four code what does
that mean three message bit and one
parity bit so what will I do I'll take
this three message bit and take one p
bit from here transmit it right so user
had ask for 3x4 I'm giving 3x4 is this
clear okay though I've generated rate
1x4 code okay I'm not sending these
additional par bits for the first
instance okay because user are not asked
for it though I'm generating 1x4 okay
this rate 1x4 is called the mother code
okay right and you see this from this
rate 1x4 I'm generating a higher rate
code which is 3x4 3x 4 is higher than 1X
4 by doing what I'm dropping these
parity bits what is it called it's
called
punching okay right so you drop these
extra eight bits which were generated
okay now if the user had asked for 3x4
and if the conditions are fine user will
be able to decode this
3x4 fine right things don't change okay
now what happens if if the user position
changes if there is a knack okay
so yeah so this is I just gave you an
example this is written for you rate 3x
4 so effective number of transmit is
four
okay now the situation changes okay what
what is happening you see this there is
the first retransmission okay what am I
doing I'm sending four additional par
bits not the same message again
understand this is a difference between
the Chase and IR okay I'm not
retransmitting this message which is 3x4
I'm sending some fresh par bits get it
now what is the effective code rate
now
three earlier right what was four you
send it four now what are you
sending four fresh par bits correct so
this part you are sending what is it
this is rate 3x 8 fine digest this okay
so what have I done another way of
solving the same problem because you
mooved from highest Sr to low SNR region
right so your rate should reduce what is
MCS lower MCS is basically lower rate
correct okay lower modation scheme also
okay so at least I'm able to reduce the
rate
right so instead of boosting the SNR
what am I doing I'm reducing the
rate correct that should also help me in
solving the problem because I move to a
low SNR region and I should be able to
work with the lower rate okay it works
it's fine if it doesn't work what will
happen
Knack right okay what happens you send
four fresh par
bits so what will
eight 1 by4
okay so you see this rate is changing
further down because SNR had gone so
much below or so it had reduced so
much correct okay if you're not able to
decode you ask for another
retransmission at this stage you see
this what are we doing I'm transmitting
the old data right till here the rate
was changing here what is happening I'm
transmitting the old data right rate
will not change here it's just that this
part when you do the SNR will get boost
okay because what is happening here
you're sending the old message bit and
old parity bit you're not changing the
rate you're only boosting the SNR so the
hope that combination of this will work
okay so for third R transmission four
old bits are transmitted code rate
remains 1x4 at this stage right SNR of
this part will increase and you hope
that things work out for you right this
is incremental redundency what is the
name telling you why is this called
incremental redundency because you are
increasing redundency in steps
what is redundancy redundancy is the par
bits your original message bit is not
redundant it's just the par bits which
are redundant with respect to the
message okay so that's what is happening
so there's a hope that it'll work okay
and things work as I said if it doesn't
work Beyond a certain point of time
transmitter will give up okay now why
two different flavors in which Flav at
what circumstances one is better than
other let's understand that for a few
minutes okay so Chase versus incremental
redundency these are natural questions
okay why two different flavors okay
Chase combining is easier to implement
than
IR right okay you simply combine you
just retain the packet if the user has
asked for 3x4 Generate 3x4 retransmit
but IR you have to generate at a lower
rate then punching okay so slightly more
sophisticated framework than the chase
combining okay but uh 5G provides
framework to implement both of them
okay so now if all redundancy versions
provide the same amount of information
about the data packet which is the
message there are different so okay I
did not tell you this is called these
versions they are given names okay
redundency version zero redundency
version one okay so we'll Define it
formally so if what are we saying here
if all redundency version provide the
same amount of information about the
data packet which is the message okay
you can
transmit these versions in any order
okay why should I transmit the second
one let's go back why should I transmit
this after this I can transmit this also
after this right these are also four
parity bits right but if so all these
parity bits give me the same information
about the message bit you can transmit
them in any order okay
but for some code structure not all
redundancy versions are of equal
importance for example ldpc codes okay
so ldpc codes where the systematic bits
what are systematic bits this is a
technical name given to the message bits
okay so the systematic bits are of
higher importance than the parp bits
okay so what am I saying here what are
the comment I'm making here that
redundancy version zero
where in we sent the message bits plus
few par bits is more important than the
other redundancy versions okay because
the first rcy version contains the
message bit okay and that is crucial for
the ldpc decoder to decode the message
okay so keeping this in
mind initial trans should include all
the systematic bits and some parity bits
that's what we are doing
now if in the
in the R transmission par BS not in
initial transmission can be included so
if you have already you transmitted the
Rundy version zero okay and somehow you
figure out that at the receiver when
you're making an error message bits are
fine and the problem is with the
apparative bits okay most of the message
bits are fine okay so what will you do
that you will ask for the receiver will
ask for next redundancy version because
somehow intelligently it has figured out
that message bits most few message bits
are in error okay and other message bits
plus the DAT parity bits are in are in
error few message bits and the par bits
are not in error okay right so what will
happen here is it will ask for the next
redundency version
okay now however if the initial
transmission was received in poor
quality on not at all right what happens
look at these two bullets okay what I
saying here here most of the message
bits were find somewhere in error you
ask for next redundency version okay
because you need message bits for the
decoder to work now what happens here
the initial transmission was bad okay
right then
the figure out that the first packet
redundancy version is completely an
error right then what will happen here
is that you will not ask for the next
redundancy version you will ask for the
same redundancy version because of the
fact that ldpc needs these message bits
to decode the data okay right so what am
I saying here that if the initial
transmission or the initial reception is
so poor that all the message bits are in
error you will ask for the
retransmission of the same data which is
Ry version zero what does that become
that becomes jsing okay so R
transmission with only only parity bit
is not
appropriate some of the systematic bits
will provide better performance and what
is that where are the systematic bits
they are there in the first redundancy
version
rv0 correct okay and what does it become
it is the CH combining so to summary of
it is that if the initial transmission
is bad you go for CH combining the
initial transmission is okay but you are
still not able to decode go for
incremental redundancy okay because
that's the code structure ldpc needs
that there are multiple other ways of
understanding it but for this class this
is if you understand this this is enough
okay so I'll stop here and we'll discuss
uh in the next class the next technology
[Music]
[Music]
[Music]
