Final College PPT
Final College PPT
GUIDES
College Guides : Dr. V. Sakthivel
MediaTek Guide : Senior Manager Pradeep Thanneeru
To handle the issues related to the performance, any new updation or coding error
on the basis of code and specification study.
LTE organizes its symbols and sub-carriers in the time and frequency
domains, First consider the time domain. The timing of the LTE
transmissions is based on a time unit Ts, which is defined as follows:
LTE FDD is full duplex system, means both the downlink and uplink transmission
happens at the same time at different frequencies and is assigned in complete
radio frame separately for downlink and uplink.
Downlink and Uplink both can be send and receive in separate Frames from UE to
eNodeB and vice-versa.
In TDD, the two transmissions share the same frequency bands but are separated
in time. Hence, they share the same Frame, means at one moment of time either
downlink subframe is transmitted or uplink subframe in a radio Frame.
DwPTS and UpPTS both provide time which enables downlink and uplink
switching to be performed, used for RACH and sound reference signal.
After being powered on, UE tunes the RF and attempts to measure RSSI for
specific frequencies over a set of supported frequency bands one after another and
ranks those cells based on signal strength.
Two types of Frequency scan SLS and DBS
(i) SLS Storage list search: Search frequencies which was stored in mobile before
switch on
(ii) DBS Deviated band search: after SLS if UE didn’t find any cell then UE will
Start DBS search for whole frequency band.
UE first finds the primary synchronization signal (PSS) which is located in the last
OFDM symbol of first time slot of the first and 5th sub-frames This enables UE to
be synchronized on sub-frame level. Primary Synchronization Signal helps for Slot
Timing Detection and Physical Layer ID (0,1,2) detection.
MIB carries the following information. You can get the System Bandwidth and
SFN by decoding MIB. (i) DL Bandwidth, Number of Transmit Antenna, (ii)
System Frame Number (SFN), (iii) PHICH Configuration
RACH is the first message from eNodeB from UE. LTE Random Access Procedure
is used by the UEs to initiate a data transfer.
The same PRACH preamble from multipe UE reaches the network at the same
time. This kind of PRACH collision is called ”Contention” and the RACH process
that allows this type of ”Contention” is called ”Contention Based” RACH
Process.
There is some cases that these kind of contention is not acceptable due to some
reason (e.g, timing restriction) and these contention can be prevented.
In this case Network will allocate preamble signature at different time so that it
would not collide. This kind of RACH process is called ”Contention Free” RACH
procedure.
CFI(Control format indicator): it tells how many OFDM symbols are used for
carrying control channels(eg. PDCCH and PHICH) at each subframe.
One PDCCH carries one DCI message with one of the formats.
Each scheduling message is transmitted on a separate PDCCH, and consequently
there are typically multiple simultaneous PDCCH transmissions within each cell.
UE de-mask each control candidate’s CRC using its Radio Network Temporary
Identifier (RNTI). If no CRC error is detected, the UE considers it as a successful
decoding attempt and reads the control information within the successful
candidate.
Detect PCFICH channel and figure out how many symbols are used for PDCCH.
Based on this, UE will calculate CCE index for PDCCH.
Decode PDCCH and find DCI which is destined to the UE.
From the DCI, figure out the locations for PDSCH which is allocated for the UE.
Decode PDSCH
Physical layer request for cell search to RRC layer so that it can camp on to a cell,
RRC layer performs the following functions such as broadcast of system
information, paging, establishment/release of an RRC connection.
The setup request confirmation comes from higher layer comes to various modules
in order to perform events like cell search, power scan and specific cell search etc.
After cell camp on, Controller and driver will perform various data calculations will
configuration the DSP, where data analysis is done at very lower level.
Google C++ Testing Framework helps you write better C++ tests. No matter
whether you work on Linux, Windows, or a Mac, Google C++ Testing Framework
isolates the tests by running each of them on a different object. When a test fails,
Google C++ Testing Framework allows you to run it in isolation for quick
debugging.
Tests should be fast, with Google C++ Testing Framework, you can reuse shared
resources across tests and making tests depend on each other.
Google Test assertions are macros that resemble function calls. You test a class or
function by making assertions about its behavior. When an assertion fails, Google
Test prints the assertion‘s source file and line number location, along with a failure
message.
You may also supply a custom failure message which will be appended to Google
Test’s message. ASSERT * versions generate fatal failures when they fail, and
abort the current function. ASSERT * versions generate nonfatal failures, which
don‘t abort the current function.
This section describes assertions that compare two values. In the event of a
failure, Google Test prints both val1 and val2. Value arguments must be
comparable by the assertion‘s comparison operator or you’ll get a compiler error.
ASSERT EQ() does pointer equality on pointers. If used on two C strings, it tests
if they are in the same memory location, not if they have the same value.
The assertions in this group compare two C strings. If you want to compare two
string objects, use EXPECT EQ, EXPECT NE, etc.
For performance related issues, some regions will be mentioned from the other
teams where actually the issue is happening. Once after we got to know about the
regions, we must use Log tool for analysis through the log.
RACH Failure: This is the first message from UE to eNB, when you power it on.
Analysis part: This issue will be observed in two perspectives. One is with
scheduling request and the other is in terms of RA-RNTI.
Scheduling Request process:
(i) First step is to check whether C-RNTI is enabled or not.
(ii) Next Step is to check whether UL grant is received from the network when
C-RNTI is enabled.
RA-RNTI Process:
First step is to check whether RA-RNTI is enabled or not.
Next is to check whether RAR grant is received from the network when RA-RNTI
is enabled.
Once after RAR grant is received, then have to check whether T-CRNTI is enabled
or not.
At last, when T-CRNTI is enabled, one must check for the MSG4(RRC Connection
setup).
If the UE does not receive a response within the random access window or fails to
verify the response, the response fails. In this case, if the number of random access
attempts is smaller than the upper limit, the UE retries random access. Otherwise,
random access fails.
If anyone of the steps is not successful, then it leads to the RACH failure
performance issue. All this analysis used to do by using LOG tool.
For example, to find out whether C-RNTI is enabled or not, one must check in
very large region in LOG tool which takes lot of time around 1 day and with the
help of LR Tool, to find out C-RNTI is enabled or not it takes very less time..
Setting up a New Test Project To write a test program using Google Test, you
need to compile Google Test into a library and link your test with it. Google Test
should be compiled GTEST ROOT and GTEST ROOT/include in the header
search path
Simple Tests Use the TEST() macro to define also said has tembstub.cpp file and
name a test function, These are ordinary C++ functions that don’t return a value.
In this function, along with any valid C++ statements you want to include, use
the various Google Test assertions to check values.
The test’s result is determined by the assertions; if any assertion in the test fails
(either fatally or non-fatally), or if the test crashes, the entire test fails. Otherwise,
it succeeds.