资源简介
实现了OFDM系统的盲信道子空间信道估计,并用matlab描述了ber性能曲线
![](http://www.nz998.com/pic/65063.jpg)
代码片段和文件信息
clear all;
close all;
%生成一个1*64的矩阵
for N=1:100
mod_in=randint(164);
%子载波个数16循环前缀个数4
%QPSK调制
mod_out=zeros(1length(mod_in)/2);
R=reshape(mod_in2length(mod_in)/2);
T=R‘ ;
B2D=bi2de(T‘left-msb‘)+1;
Temp=[-1-j -1+j 1-j 1+j];
for i=1:length(mod_in)/2
mod_out(i)=Temp(B2D(i))/sqrt(2);%归一化
end
%串并变换
E=reshape(mod_out2length(mod_out)/2);
%IFFT
f=ifft(E);
%并串
g=reshape(f132);
for i=1:32
g(i)=real(g(i));
end
a=g‘*g;
if N==1
l=a;
end
l=(a+l)/2;
end
%信道
m=[1 0.4 -0.7 0.5 0.1]; %5个
m1=zeros(14);
m2=zeros(14);
for i=1:4
m1(i)=m(i);
end
m2(1)=m1(1);
c0=toeplitz(m1m2);
m3=zeros(14);
m4=zeros(14);
u=5;
for i=2:5
u=u-1;
m4(u)=m(i);
end
m3(1)=m4(1);
c1=toeplitz(m3m4);
c3=zeros(44);
H=[c0 c3 c3 c1 c3 c3 c3 c3;c1 c0 c3 c3 c3 c3 c3 c3;c3 c1 c0 c3 c3 c3 c3 c3;c3 c3 c1 c0 c3 c3 c3 c3 ;c3 c3 c3 c1 c3 c3 c3 c0;c3 c3 c3 c3 c0 c3 c3 c1;c3 c3 c3 c3 c1 c0 c3 c3;c3 c3 c3 c3 c3 c1 c0 c3;c3 c3 c3 c3 c3 c3 c1 c0];
%接收信号自相关矩阵
out1=H*l*H‘;
%加高斯白噪声
snr=4;
SymCh = awgn(out1snr‘measured‘);
%svd分解
[USV] =svd(SymCh);
rank_l=rank(l);
b=U;
for i=1:rank_l;
b(:1)=[];
end
%b为噪声子空间特征向量36*4
%生成矩阵
A=zeros(14);
%b的第1列生成的A矩阵
for z=1:4:33
m3=zeros(14);
m4=zeros(14);
u=5;
e=z;
for n=1:4
u=u-1;
m4(u)=b(e1);
e=e+1;
end
m3(1)=m4(1);
temp=toeplitz(m3m4);
temp=fliplr(temp);
M=[temp;A];
if z==1
A11=M;
elseif z==5
A12=M;
elseif z==9
A13=M;
elseif z==13
A14=M;
elseif z==17
A15=M;
elseif z==21
A16=M;
elseif z==25
A17=M;
elseif z==29
A18=M;
elseif z==33
A19=M;
end
end
%b的第2列生成的A矩阵
for z=1:4:33
m3=zeros(14);
m4=zeros(14);
u=5;
e=z;
for n=1:4
u=u-1;
m4(u)=b(e2);
e=e+1;
end
m3(1)=m4(1);
temp=toeplitz(m3m4);
temp=fliplr(temp);
M=[temp;A];
if z==1
A21=M;
elseif z==5
A22=M;
elseif z==9
A23=M;
elseif z==13
A24=M;
elseif z==17
A25=M;
elseif z==21
A26=M;
elseif z==25
A27=M;
elseif z==29
A28=M;
elseif z==33
A29=M;
end
end
%b的第3列生成的A矩阵
for z=1:4:33
m3=zeros(14);
m4=zeros(14);
u=5;
e=z;
for n=1:4
u=u-1;
m4(u)=b(e3);
e=e+1;
end
m3(1)=m4(1);
temp=toeplitz(m3m4);
temp=fliplr(temp);
M=[temp;A];
if z==1
A31=M;
elseif z==5
A32=M;
elseif z==9
A33=M;
elseif z==13
A34=M;
elseif z==17
A35=M;
elseif z==21
A36=M;
elseif z==25
A37=M;
elseif z==29
A38=M;
elseif z==33
A39=M;
end
end
%b的第4列生成的A矩阵
for z=1:4:33
m3=zeros(14);
m4=zeros(14);
u=5;
e=z;
for n=1:4
u=u-1;
m4(u)=b(e4);
e=e+1;
end
m3(1)=m4(1);
temp=toeplitz(m3m4);
temp=fliplr(temp);
M=[temp;A];
if z==1
A41=M;
elseif z==5
A42=M;
elseif z==9
A43=M;
elseif z==13
A44=M;
elseif z==17
A45=M;
elseif z==21
A46=M;
elseif z==25
A47=M;
elseif z==29
A48=M;
elseif z==33
A49=M;
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5894 2006-07-06 17:37 基于子空间盲.m
----------- --------- ---------- ----- ----
5894 1
- 上一篇:ZEMAX 与MATLAB的接口技术
- 下一篇:GN算法,matlab
评论
共有 条评论