Equalization in the Light of MATLAB Simulink _ Experts Vision
-
Upload
juan-castillo -
Category
Documents
-
view
7 -
download
0
description
Transcript of Equalization in the Light of MATLAB Simulink _ Experts Vision
6/5/2015 Equalization in the Light of MATLAB Simulink | Experts Vision
https://xpertsvision.wordpress.com/2015/01/12/equalizationinthelightofmatlabsimulink/ 1/6
Equalization in the Light of MATLAB SimulinkPosted on January 12, 2015 by eveati
EqualizationEqualization is, the technique, used to keep the balance between frequency components within an electronicsignal, i.e. to minimizes ISI.
For many physical channels, such as telephone lines, not only are they band limited, but they also introducedistortions in their passbands. These distortions are generally InterSymbol Interferences (ISI).
Nyquist Condition:
The condition at which there is no InterSymbol interferences (ISI).
Equalizer:A device which is used to mitigate ISI, which are incurred by the signal when it is transmitted through somechannel. It’s also used to improve the performance of the receiver.
Different Types of Equalizers:
There are different types of equalizers which are used on the basis of their functionality. Some of them are listedbelow:
Linear EqualizersAdaptive EqualizersBlind EqualizersDecision Feedback EqualizersTurbo EqualizersViterbi Equalizers
What is Signal Constellations?
A signal constellation is the physical diagram used to describe all the possible symbols used by a signaling systemto transmit data and is an aid to designing better communications systems.
Equalizing a Signal Using MATLAB:
Equalizing a signal using Communications System Toolbox in MATLAB software involves these steps:
Create an equalizer object that describes the equalizer class and the adaptive algorithm that you want to use.
Experts VisionEngineering and TechnologyInnovations
Follow
Follow “ExpertsVision”Get every new post deliveredto your Inbox.
Enter your email address
Sign me up
Build a website with WordPress.com
6/5/2015 Equalization in the Light of MATLAB Simulink | Experts Vision
https://xpertsvision.wordpress.com/2015/01/12/equalizationinthelightofmatlabsimulink/ 2/6
An equalizer object is a type of MATLAB variable that contains information about the equalizer, such as thename of the equalizer class, the name of the adaptive algorithm, and the values of the weights.Adjust properties of the equalizer object, if necessary, to tailor it to your needs. For example, you can changethe number of weights or the values of the weights.Apply the equalizer object to the signal you want to equalize, using the equalize method of the equalizer object.
Example“equ.m”:
% Set up parameters.M = 16; % Alphabet size for modulationsigconst = step(comm.RectangularQAMModulator(M),(0:M1)’);% Signal constellation for 16QAMchan = [1 0.45 0.3+0.2i]; % Channel coefficientshMod = comm.RectangularQAMModulator(M); % QAMModulator System object
% Set up equalizers.eqrls = lineareq(6, rls(0.99,0.1)); % Create an RLS equalizer object.eqrls.SigConst = sigconst'; % Set signal constellation.eqrls.ResetBeforeFiltering = 0; % Maintain continuity between iterations.eqlms = lineareq(6, lms(0.003)); % Create an LMS equalizer object.eqlms.SigConst = sigconst'; % Set signal constellation.eqlms.ResetBeforeFiltering = 0; % Maintain continuity between iterations.eq_current = eqrls; % Point to RLS for first iteration.% Main loopfor jj = 1:4msg = randi([0 M1],500,1); % Random messagemodmsg = step(hMod,msg); % Modulate using 16QAM.
% Set up training sequence for first iteration.if jj == 1ltr = 200; trainsig = modmsg(1:ltr);else% Use decisiondirected mode after first iteration.ltr = 0; trainsig = [];end
% Introduce channel distortion.filtmsg = filter(chan,1,modmsg);
% Equalize the received signal.s = equalize(eq_current,filtmsg,trainsig);
% Plot signals.h = scatterplot(filtmsg(ltr+1:end),1,0,’bx’); hold on;scatterplot(s(ltr+1:end),1,0,’g.’,h);scatterplot(sigconst,1,0,’k*’,h);legend(‘Received signal’,’Equalized signal’,’Signal constellation’);title([‘Iteration #’ num2str(jj) ‘ (‘ eq_current.AlgType ‘)’]);hold off;
6/5/2015 Equalization in the Light of MATLAB Simulink | Experts Vision
https://xpertsvision.wordpress.com/2015/01/12/equalizationinthelightofmatlabsimulink/ 3/6
% Switch from RLS to LMS after second iteration.if jj == 2eqlms.WeightInputs = eq_current.WeightInputs; % Copy final inputs.eqlms.Weights = eq_current.Weights; % Copy final weights.eq_current = eqlms; % Make eq_current point to eqlms.endend
The example above illustrates how to use equalize within a loop, varying the equalizer between iterations.
Explanation:
As stated above, the first step in equalization of a signal is “creating an equalizer object that describes theequalizer class and the adaptive algorithm that you want to use.”
Setting up parameters:
First of all, we’ll define the size for modulation, which in this case is:
1. M = 16; % Alphabet size for modulation
Now we’ll use System object, comm.RectangularQAMModulator, which modulates the signal using Maryquadrature amplitude modulation with a constellation on a rectangular lattice.
Modulating a signal using quadrature amplitude modulation has two steps:
Calling step to modulate the signal according to the properties of comm.RectangularQAMModulator.
1. sigconst = step(comm.RectangularQAMModulator(M),(0:M1)’); % Signal constellation for 16QAM· Define and set up your rectangular QAM modulator object.
2. hMod = comm.RectangularQAMModulator(M); % QAMModulator Systemobject
Set up equalizers:
Now we’ll create three equalizer objects:
An RLS equalizer object.
1. eqrls = lineareq(6, rls(0.99,0.1)); % Create an RLS . equalizer object.6. eqrls.SigConst = sigconst'; % Set signalconstellation.7. eqrls.ResetBeforeFiltering = 0; % Maintain continuity between iterations.
An LMS equalizer object.
1. eqlms = lineareq(6, lms(0.003)); % Create an LMS equalizer object.9. eqlms.SigConst = sigconst'; % Set signalconstellation.10. eqlms.ResetBeforeFiltering = 0; % Maintain continuity between iterations.
Here eqlms is an equalizer object that describes a linear LMS equalizer having six weights and a step size of 0.003.
A variable, eq_current, which points to the equalizer object to use in the current iteration of the loop. Initially, thispoints to the RLS equalizer object. After the second iteration of the loop, eq_current is redefined to point to the
6/5/2015 Equalization in the Light of MATLAB Simulink | Experts Vision
https://xpertsvision.wordpress.com/2015/01/12/equalizationinthelightofmatlabsimulink/ 4/6
LMS equalizer object.
1. eq_current = eqrls; % Point to RLS for first iteration.
Simulating the System Using a Loop:
The next portion of the example is a loop that Generates a signal to transmit and selects a portion to use as atraining sequence in the first iteration of the loop:
% Main loop
12. for jj = 1:4
13 msg = randi([0 M1],500,1); % Random message
14 modmsg = step(hMod,msg); % Modulate using 16QAM.
% Set up training sequence for first iteration.
15 if jj == 1
ltr = 200; trainsig = modmsg(1:ltr);
16 else
% Use decisiondirected mode after first iteration.
17 ltr = 0; trainsig = [];
18 end
Introduces channel distortion
% Introduce channel distortion.
19. filtmsg = filter(chan,1,modmsg)
Equalizes the distorted signal using the chosen equalizer for this iteration, retaining the final state and weights forlater use
% Equalize the received signal.
20. s = equalize(eq_current,filtmsg,trainsig);
Plots the distorted and equalized signals, for comparison
% Plot signals.
21. h = scatterplot(filtmsg(ltr+1:end),1,0,’bx’); hold on;22. scatterplot(s(ltr+1:end),1,0,’g.’,h);23. scatterplot(sigconst,1,0,’k*’,h);24. legend(‘Received signal’,’Equalized signal’,’Signal constellation’);25. title([‘Iteration #’ num2str(jj) ‘ (‘ eq_current.AlgType ‘)’]);
6/5/2015 Equalization in the Light of MATLAB Simulink | Experts Vision
https://xpertsvision.wordpress.com/2015/01/12/equalizationinthelightofmatlabsimulink/ 5/6
26. hold off;
Switches to an LMS equalizer between the second and third iterations
% Switch from RLS to LMS after second iteration.
27. if jj == 228. eqlms.WeightInputs = eq_current.WeightInputs; % Copy final inputs.29. eqlms.Weights = eq_current.Weights; % Copy final weights.30. eq_current = eqlms; % Make eq_current point to eqlms.
end
end % Main Loop Ended
Results:
The example produces one scatter plot for each iteration, indicating the iteration number and the adaptivealgorithm in the title. The plot is below:
About these ads
6/5/2015 Equalization in the Light of MATLAB Simulink | Experts Vision
https://xpertsvision.wordpress.com/2015/01/12/equalizationinthelightofmatlabsimulink/ 6/6
About eveatiWe are a group of Professionals.View all posts by eveati →
Share this:
Twitter Facebook 111 Google LinkedIn Tumblr Pinterest
This entry was posted in Digital Communication, MATLAB and tagged adaptive, algorithum, communication, constellation, digital, eqlms, eqrls, equalization, MATLAB,modulation, modulator, Nyquist, signal. Bookmark the permalink.
Experts Vision
Like
Be the first to like this.
Related
What's a Digital Communication System?In "Digital Communication"
Motors and Generators | A Comparison in theLight of MATLAB SimPowerSystems
Solve equation by Newton's method usingMatlab
The Twenty Ten Theme. Blog at WordPress.com.