?? ante.m
字號:
clear;
SNR = [-5:2:10];
NumAntenna =4; %天線陣元數
Tlen = 1000; %訓練序列長度
Dlen = 20000; %數據長度
step = 0.0001; %步長
alfa = pi/3; %波達方向
theta = pi/2;
for nEN = 1:length(SNR)
numoerror1=0;
numoerror2=0;
w = zeros(1,NumAntenna)';
w(1)=1;
d = randsrc(1,Tlen+Dlen); %產生訓練序列
en = 10^(SNR(nEN)/10);
sigma = sqrt((1/(2*en)));
m = [1:NumAntenna];
a = exp(-i*2*pi*(m-1)*cos(alfa)*sin(theta)); %產生引導向量
rd1 = d.'*a;
rd2=awgn(rd1,SNR(nEN),'measured');
for n = 1:Tlen
u=rd2(n,:).';
r(n) = w'*u/NumAntenna; %天線陣元輸出
w = w-step*u*conj(r(n)-d(n)); %利用LMS算法,更新加權因子
end
%接收數據
for n = Tlen+1:Tlen+Dlen
u=rd2(n,:).';
r(n) = w'*u/NumAntenna;
end
%不利用智能天線,直接接收
s = awgn(d(Tlen+1:end),SNR(nEN),'measured');
for n=1:Dlen
s1(n)=sign(real(s(n)));
ds(n)=sign(real(r(n+Tlen)));
s_data(n)=d(n+Tlen);
end
%統計誤碼率
numoerror1=sum(s1~=s_data);
numoerror2=sum(ds~=s_data);
ber1(nEN) = numoerror1/Dlen;
ber2(nEN) = numoerror2/Dlen;
end
figure;semilogy(SNR,ber1);hold on;
semilogy(SNR,ber2,'*-');
xlabel('信噪比');
ylabel('誤比特率');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -