MMSE equalizer

34 views (last 30 days)
Rehan
Rehan on 9 Apr 2012
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
Daniel Shub on 9 Apr 2012
Can you explain what the problem is?

Sign in to comment.

Answers (3)

Sundus Naseer
Sundus Naseer on 6 Jun 2012
??? Undefined variable "comm" or class "comm.QPSKModulator".
Error in ==> mmse at 5 H = comm.QPSKModulator('BitInput',true);

Sundus Naseer
Sundus Naseer on 6 Jun 2012
:P :P

Honglei Chen
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

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!