In addition, adaptive modulation allows the system to overcome fading and other interference. Both QAM and QPSK are modulation techniques used in IEEE 802.11 (Wi-Fi*), IEEE 802.16 (WiMAX*) and 3G (WCDMA/HSDPA) wireless technologies. The modulated signals are then demodulated at the receiver where the original digital message can be recovered. The use of adaptive modulation allows wireless technologies to optimize throughput, yielding higher throughputs while also covering long distances.
In order to build such a model different variables and parameters are created to manage the signal power and bandwidth, to simulate this model exactly like a real time system, its required to change parameters each time a run is made to analyze results for each condition matching real life requirements.
MATLAB
MATLAB is a computer programming language and a software environment for using that language effectively through managing variables, export and import data, perform calculation, generate plots, develop and manage files for use with MATLAB such as the toolboxes which can perform more specialized computation involving images and signal processing, financial analysis, control system design, and fuzzy logic. MATLAB was developed in the year 1970 by the Math Works, Inc., of Natick, Massachusetts (MATLAB stands for Matrix Laboratory); it’s for the application involving matrices, linear algebra, and numerical analysis.
MATLAB Basic Features
MATLAB has the Calculator job, it can calculate simple mathematics expression such as plus, minus, multiplications, divisions, and exponential. The result is been saved by defaults ans, however a variable name can be given to the mathematics operations.
MATLAB command window have the ability to save and remember any command you've created, and recall any variable had been calculated.
Figure 1
There are some rules set for the variable name in MATLAB to avoid conflict. For example a variable name can be up to 31 characteristic besides being a case sensitive, a variable name must start with a letter, and should be single word containing no spaces. MATLAB have some keywords or reserved word list that can not be used as a variable names.
One of the most important feature in MATLAB or any other programming language, although it doesn’t generate any function comments are important to explain stages, work flow, and variables meanings. Placing semicolon after any command is used for suppressing the result.
MATLAB has a basic equation for complex number which is c = a – b*j; a representing is the real part and b is the imaginary part, any operation on complex number result in a complex number.
MATLAB uses double precession floating point, with this representation all integers can be represented exactly within a limit which is 2353-1.
MATLAB Characterized with a built in function, some of these important functions are trigonometric function, Exponential functions, Complex functions, and Rounding and Remainder functions.
Simulation
Representing Simulation diagram which is constructed to show elements of the problem to be solved, an important factor of MATLAB which act as an environment for simulation and Model-Based Design for dynamic and embedded systems is the Simulink. It’s an interactive graphical environment with a set of block libraries that can be customized for designing, simulating, implementing, and testing.
Simulink is integrated with MATLAB and extended by adding on multiple products and tools, it has the ability to develop algorithms, define signals and parameters, debug, and test.
Simulink Basic Features
A set of pre defined blocks that are expandable.
The ability to manage complex design in a hierarchical view.
A search engine to navigate all signals, parameters, and generated codes.
- Application program interface (APIs)
The (APIs) provide a connection to other programs and convert hand written code.
Since the term embedded is the machine language, a function is being provided to the MATLAB to convert MATLAB algorithm into embedded system design.
Figure 2
There are three type of simulation speed debugger; first one is the Normal mode (the default), secondly is Accelerator that has the ability to change model parameters, and third is the Rapid Accelerator which can simulate model faster by creating a separate execute file on a second processor core.
A debugger job is to check results and examine errors with a graphic interface.
Working with Models
Blocks can be easily created and added to the model; blocks are categorized under Continues and Discreet dynamic blocks, Algorithms blocks, structural blocks, Customized block that can be created through users and added to the built in blocks, and Physical blocks that support physical systems such as electrical and mechanical fields.
Commands can be added to the blocks besides performing general editing functions, such as copy, paste, undo, and resize. Blocks also can be manageable through hierarchy, subsystems can be added to one box, and the ability of hiding the content subsystems is also available.
Managing Signals and Parameters
Through Model Explorer which was mention previously, signals and parameters can be created, defined, and edited.
Figure 3
Running a Simulation
To insure compiler speed and accuracy, running a simulation is very important to examine results live. Such an application used is the Solvers, it examine model based on the information contained in the blocks, solvers are also a way to compile a multi system, and systems with different state events.
Analyzing Results
Results are visualized in MATLAB simple by plotting graphs and comparing input and output signals. Such an application is the Signal Builder block that creates signals in a graphically waveform.
Adaptive Modulation
Implementing an adaptive modulation in MATLAB requires understanding the term adaptive modulation; it’s a transmission scheme in digital communications where the transmitter adapts its transmission mode in accordance with the channel. Depending on the severity of the channel, the transmitter could be adapting one or more of the following: constellation size, code rate, and power.
Estimating the channel at the receiver and feed this estimate back to the transmitter, so that the transmission scheme can be adapted relative to the channel characteristics.
Adapting to the channel fading can increase average throughput, reduce average probability of bit error by taking advantage of favorable channel conditions to send at higher data rates or lower power.
Adaptive modulation requires a feedback path between the transmitter and receiver. Moreover, if the channel is changing faster than it can reliably estimated and feedback to the transmitter, adaptive techniques will perform poorly. Often only the slow variation can be tracked, in which case flat fading is needed.
Figure 4
Adaptive Modulation using MATLAB
Using MATLAB, the discussed algorithm previously will be implemented, the first part is the transmitter, next is the channel, receiver, then feedback, and finally is the adaptive modulation part.
Parts that will be simulated first is the generated signal from a random function, channel frequency and noise, number of samples per frame, channel parameters to adapt signal fading, counters for feedback process.
In this version of the program the frequency chosen is 100 Hz fast fading, and the K-factor is 0.01
Figure 5 figure6
Running the code again with different values, changing noise sigma to 0.1, K_ factor to1; frequency to 4Hz assuming slow fading.
Figure7 Figure8
From the figures previously, the Signal to Noise Ratio is always low because the noise power in increased to 0.1, the K_ factor to 1, assuming slow fading.
If we kept the K-factor as 0.01 and only changed the frequency to 4Hz, then the most suitable modulation is the 16PSK, because of the slow fading according to the frequency.
Figure 9
Again by simulating other values, once we are going to increase the noise gain by 0.3, and next we are going to decrease by 0.002, and notice the difference in SNR values.
Figure 10 Figure 11
In figure 10 the noise power is increases, the performance of the signal increases and the SNR decreases. Decreasing the noise power leads to a high SNR values, therefore more signals sent in the 64PSK modulation technique.
Conclusion
- Basically MATLAB is a mathematics program that calculates normal and complex equations, beside the ability to perform on a set of numbers called arrays or matrices.
- MATLAB also can perform as a programming language for a large variety of fields such as images and signal processing, telecommunication, mechanical and technical systems.
- Simulink is a powerful instrument in MATLAB that can simplify codes into ready built in block that have the ability to be modified, and created by users and added to MATLAB library.
- In an example of Simulink and MATLAB, an Adaptive modulation has been written using MATLAB equations and code, then simulated, and results has been tested through plots to insure the healthy condition of a signal at different situations.
- Goal of simulation the chosen project "Adaptive Modulation" is to choose the best constellation to be sent through the system and received correctly with less fading and noise in order to achieve higher throughputs or better spectral efficiencies.
References
[1] J.F.Hayes,P. February 1968,’Adaptive feedback communications’ ,IEEE Trans. Commun. Tech., pp. 29-34
[2] J. K. Cavers,P. February 1972, ‘Variable-rate transmission for Rayleigh fading channels’ ,IEEE Trans. Commun., pp. 15-22
[3]Duane Hanselman, P. 2001, 'Getting Started' Mastering MATLAB 6, Upper Saddle River, New Jersey, pp 5 – 15
[4]William J. Palm III, P. 2001, 'An Overview of MATLAB' Introduction to MATLAB 7 for Engineers, McGraw-Hill, New York, pp 5
[5]William J. Palm III, P. 2001, Simulink', Introduction to MATLAB 7 for Engineers, McGraw-Hill, New York, pp 542
[6] ‘Simulation’ [Accessed 24 Feb, 2008]