Estimation of channel response and i/q imbalance of mimo ofdm
2 views (last 30 days)
Show older comments
Hello all
I am doing a project on joint estimation of i/q imbalance and channel response for mimo ofdm systems.
My output for i/q is 1 and for channel response I get numerous values. I don't know whether it is correct. Share ur ideas.
clc;
clear all;
close all;
%input
M=128;
nt=2;
nr=1;
L=16;
%r
h1=randn(M,1);
h2=randn(M,1);
h=vertcat(h1,h2);
x1=gallery('circul',M:M);
x2=gallery('circul',M:M);
x=horzcat(x1,x2);
r=x*h;
%ek
e=eye(M);
%y due to cfo
y=e*r;
%z due to cfo and i/q
u=(1+exp(-j*10))/2;
v=(1-exp(j*10))/2;
y1=conj(y);
z=(u*y)+(v*y1);
%a
u1=conj(u);
a=(v/u1);
%ur
z1=conj(z);
a1=abs(a)^2;
e1=conj(e);
ur=(e1*(z-(a*z1))/(1-a1));
%p
p=M/nt;
%ud
a1=randn(M,L);
a2=randn(M,L);
A=horzcat(a1,a2);
a11=randn(M,p-L);
a22=randn(M,p-L);
B=horzcat(a1,a11,a2,a22);
B1=inv(B);
ud=B1*ur;
%CRE
q = 96; %p-L
M = 128;
P = zeros(q,M);
P(:,2:2:end) = (48)*eye(q,M/2);
cre=norm(P*ud)^2;
CRE = norm(P*B1*(z-(a*z1)))^2;
%I/Q_imbalance
o=ctranspose(P*B1*z1); %traspose_conj of p*B1*z1
aopt=(o*(P*B1*z1))/(norm(P*B1*z1))^2;
%channel response
aopt1=abs(aopt)^2;
cha_res=B1*(z-(aopt*z1))/(1-aopt1);
7 Comments
Walter Roberson
on 24 Feb 2012
Have another look at that blog. It says inv(A)*b should be replaced by A\b . You have the two variables reversed.
Answers (0)
See Also
Categories
Find more on Link-Level Simulation 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!