本帖最后由 angelinaaa 于 2013-4-26 23:20 编辑
%蓝色为问题集中区,其他应该问题不大
clc;
clear;
% 论文仿真原型程序,仿真(SQRD) Vblast接收的检测性能,绘制误比特率~信噪比曲线。
% 发端初始化===============================================================
% 发射天线数tx,接收天线数rx,发射矩阵长度L(帧长)
tx=4;rx=4;L=1;
Modulation='BPSK';
% EbN0=0;
EbN0=[0:5:20];
B=30000;Ts=1/24300;
% 建立EbN0与SNR之间的换算关系
SNR=EbN0-10*log10(Ts*B);
% 信源A
A=randint(tx*L,1);
% 经过BPSK调制的V-Blast发射矩阵X
X=zeros(tx,L);
for k=1:tx
X(k,:)=(-1).^(A(k:tx:end)+1);
end
% 信道传输=================================================================
% 快衰落Rayleigh信道H
H=sqrt(1/2)*(randn(rx,tx,L)+i*randn(rx,tx,L));
% 均值为0方差为1的高斯白噪声n
n=sqrt(1/2)*(randn(rx,L)+i*randn(rx,L));
% 未叠加噪声的接收信号R
R=zeros(rx,L);
for k=1:L
R(:,k)=sqrt(1/tx)*H(:,:,k)*X(:,k);
end
% SQRD=======================================================
disp('SQRD')
bersqr=[];
for m=SNR
m %调试,显示每步m结果
snr=10^(m/10);
R_noised=R+sqrt(1/snr)*n;
x=[];
c=[];
a=zeros(tx*L,1); %随机生成估计值列向量
for t=1:L
r=R_noised(:,t); %R接收矩阵去一维
HH=H(:,:,t);
xtemp=zeros(tx,1); %设对应硬判断估计值矩阵
R1=zeros(tx,tx); %各矩阵赋初值
Q=HH
P=eye(tx)
for j=1:tx %SQRD 法排序重置过程
Qnorm=[];
for i=j:tx
Qnorm=[Qnorm,norm(Q(:,i))]
end
[qt tt]=min(Qnorm)
% [wt,tt,qt]=minnormc(Q,S)
% %调用求取最小列范数函数,并保留相应变量:最小范数对应列向量、最小范数对应列序号、列最小范数值
[P]=swap(P,tt+j-1,j); %关键矩阵对应换序
[Q]=swap(Q,tt+j-1,j);
[R1]=swap(R1,tt+j-1,j);
% R1(j,j)=norm(Q(:,j));
R1(j,j)=qt; %R对角线上元素赋值
Q(:,j)=Q(:,j)/R1(j,j); %Q列向量归一化重置值
for k=(j+1):tx
R1(j,k)=Q(:,j)'*Q(:,k); %R对角线上方其他元素赋值
Q(:,k)=Q(:,k)-R1(j,k)*Q(:,j);
end
end %经典QR分解部分
y=Q'*r; %QR分解
u=zeros(tx,1);
for k=tx:-1:1
k
d=0;
for i=1:tx
if ((k+i)<=tx) %R1斜上对角线元素计算
d=d+R1(k,k+i)*sqrt(1/tx)*u(k+i);
end
end
u(k)=(y(k)-d)/R1(k,k)
end
xtemp=(u>=0)-(u<0)+0 %硬判决
x=[x,xtemp];
end
c=P*x %排列替换x到c
for k=1:tx
a(k:tx:end)=(c(k:tx:end)+1)/2
end
[errbit,temp_ber]=biterr(A,a)
bersqr=[bersqr,temp_ber]
end
semilogy(EbN0,bersqr,'p- b'),grid on
legend('SQRD');
xlabel('EbN0(dB)');
ylabel('误比特率');
title('blast检测比较')
===============================================================
function [G]=swap(G,xx,z)
T=[];
T(:,1)=G(:,xx);
G(:,xx)=G(:,z);
G(:,z)=T(:,1);
运行后性能非常差,应该是10的-3左右的误码率,但查不出错误,比设计急用,希望大家能帮帮那个忙!谢谢了!!!
sqrt.png
(10.47 KB, 下载次数: 0)
2013-4-26 23:13 上传
2013-4-26 23:15 上传
点击文件名下载附件
3.28 KB, 下载次数: 33
SQRD算法
2013-4-26 23:15 上传
点击文件名下载附件
84 Bytes, 下载次数: 26
交换函数