clc;
clear all;
%%产生训练序列,采用BPSK调制,符号:+1/-1
X=zeros(64,64);
d=rand(64,1);
for i=1:64
if(d(i)>=0.5)
d(i)=+1;
else
d(i)=-1;
end
end
for i=1:64
X(i,i)=d(i);
end
%%计算信道矩阵
tau=[0.5 3.5];
for k=1:64
s=0;
for m=1:2
s=s+(exp(-j*pi*(1/64)*(k+63*tau(m))) * (( sin(pi*tau(m)) / sin(pi*(1/64)*(tau(m)-k)))));
%Go through the above cited paper for the theory behind the formula
end
g(k)=s/sqrt(64);
end
G=g';
H=fft(G);
XFG=X*H;
n1=ones(64,1);
n1=n1*0.000000000000000001i;
noise=awgn(n1,8);
variance=var(noise);
N=fft(noise);
Y=XFG+N;
%%计算信道矩阵G的自协方差矩阵Ggg
gg=zeros(64,64);
for i=1:64
gg(i,i)=G(i);
end
gg_myu = sum(gg, 1)/64;
gg_mid = gg - gg_myu(ones(64,1),:);
sum_gg_mid= sum(gg_mid, 1);
Rgg = (gg_mid' * gg_mid- (sum_gg_mid' * sum_gg_mid) / 64) / (64 - 1);
%LS估计的信道矩阵
%Hls=inv(X)*Y;
H_ls=(inv(X)) * Y;
Hls=zeros(64,64);
for i=1:64
Hls(i,i)=H_ls(i);
end
%MMSE估计的信道矩阵
u=rand(64,64);
F=fft(u)*inv(u);%The 64 X 64 twiddle factor matrix..
I=eye(64,64);
Rgy=Rgg * F'* X';
Ryy=X * F * Rgg * F' *X' + variance * I;
Gmmse=Rgy * inv(Ryy)* Y;
H_mmse=fft(Gmmse);
for i=1:64
Hmmse(i,i)=H_mmse(i);
end
%%仿真
for n=1:6
SNR_send=5*n;%SNR=5,10,15,20,25,30
error_count_ls=0;%记录错误个数
error_count_mmse=0;
%每个SNR下用发1000次64个符号序列仿真
for c=1:1000
%Generate Random Data[i/p matrix..]
X=zeros(64,64);
d=rand(64,1);
for i=1:64
if(d(i)>=0.5)
d(i)=+1;
else
d(i)=-1;
end
end
for i=1:64
X(i,i)=d(i);
end
XFG=X*H;%符号通过实际信道
n1=ones(64,1);
n1=n1*0.000000000000000001i;%Just to ensure that the function awgn adds 'complex gaussian noise'..
noise=awgn(n1,SNR_send);
variance=var(noise);
N=fft(noise);
Y=XFG+N;%叠加噪声
%接收端:
%I(k)表示判决矩阵
%I:LS估计
I=inv(Hls)* Y;
for k=1:64
if(real(I(k))>0)%Putting it through a slicer
I(k)=1;
else
I(k)=-1;
end
end
for k=1:64
if(I(k)~=d(k))
error_count_ls=error_count_ls+1;
end
end
%II:MMSE估计
I=inv(Hmmse)* Y;
for k=1:64
if(real(I(k))>0)%Putting it through a slicer
I(k)=1;
else
I(k)=-1;
end
end
for k=1:64
if(I(k)~=d(k))
error_count_mmse=error_count_mmse+1;
end
end
end%1000次序列估计结束
ser_ls(n)=error_count_ls/64000;%共发1000*64个符号
ser_mmse(n)=error_count_mmse/64000;
ser_ls
ser_mmse
SNR(n)=SNR_send;
end;
%绘图,LS用蓝线,MMSE用黑线
semilogy(SNR,ser_mmse,'k-');
grid on;
xlabel('SNR(dB)');
ylabel('SER');
title('基于SER的MMSE/LS估计的性能比较');
hold on;
semilogy(SNR,ser_ls,'b*');
semilogy(SNR,ser_ls,'b-');
semilogy(SNR,ser_mmse,'kv');
grid on;
wouderw
- 粉丝: 343
- 资源: 2959
最新资源
- HTML5实现好看的大气宽屏官网网站源码.zip
- HTML5实现好看的大气境外旅游公司网站源码.zip
- HTML5实现好看的大气健身运动网站源码.zip
- HTML5实现好看的大气律师事务所网站源码.zip
- HTML5实现好看的大气绿色农场主网站源码.zip
- HTML5实现好看的大气宽屏商务公司网站源码.zip
- HTML5实现好看的大气农业科技网站源码.zip
- HTML5实现好看的大气图纸设计公司网站源码.zip
- HTML5实现好看的大气商务公司网站源码.zip
- HTML5实现好看的大学研究生教育网站源码.zip
- HTML5实现好看的大学毕业季专题网页源码.zip
- HTML5实现好看的大学教育网站源码.zip
- HTML5实现好看的地理研究所公司网站源码.zip
- HTML5实现好看的电工维修修理网页源码.zip
- HTML5实现好看的淡蓝色医疗健康网页源码.zip
- HTML5实现好看的电脑教育培训机构网站源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页