MMSE equalizer
Show older comments
I have written a code for estimation and MMSE equalization for OFDM system. When I apply equalization at the receiver the BER increases. Let me the problem in my code. Code is attached. thanks
clc
close all
clear all
H = comm.QPSKModulator('BitInput',true);
Hdemod = comm.QPSKDemodulator('BitOutput',true);
% hScope = commscope.ScatterPlot;
% hScope.Constellation = [0.7071+0.7071i -0.7071+0.7071i -0.7071-0.7071i 0.7071-0.7071i];
% hScope.SamplesPerSymbol = 1;
n=16; %no of random data...
r_data = randint(n,1); %random numbers generator...
data_qpsk=[];
data_qpsk = step(H,r_data); %Data converted in QPSK symbols...
d1=data_qpsk(1);
d5=data_qpsk(5);
data_qpsk(1) = 0.7071+0.7071i; % adding two pilots at location 1 and 5.
data_qpsk(5) = 0.7071+0.7071i;
% update(hScope, data_qpsk);
dawgn=awgn(data_qpsk,0); % Adding white Gaussian Noise
est(1)=dawgn(1);
est(2)=dawgn(5);
% MMSE starts here......
des=[0.7071+0.7071i 0.7071+0.7071i];% desired data symbols
rec=[est(1) est(2)]; % received data symbols...
z=filter([1 0 0 0 0 0 0 0],[1],rec);
Rxx=xcorr(rec);
Rxz=xcorr(des,z);
x=toeplitz([Rxx zeros(1,5)],zeros(1,8))
cof=x\([Rxz zeros(1,5)].'); % coefficients for MMSE equalizer...
det1=filter(cof,[1],dawgn);
det1
for i=1:8
det(i)=filter(cof,[1],dawgn(i));
end
det.'
% update(hScope, det);
1 Comment
Daniel Shub
on 9 Apr 2012
Can you explain what the problem is?
Answers (3)
Sundus Naseer
on 6 Jun 2012
0 votes
??? Undefined variable "comm" or class "comm.QPSKModulator".
Error in ==> mmse at 5 H = comm.QPSKModulator('BitInput',true);
Sundus Naseer
on 6 Jun 2012
0 votes
:P :P
Honglei Chen
on 6 Jun 2012
It seems you don't have Communication System Toolbox correctly installed. What is your result of the following command?
>>ver
Categories
Find more on Computer Vision Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!