%基于ZF准则的BER性能
function zf()
clear all
close all
format long;
Nt=2;
Nr=2;%天线个数
SNR=[0:2:20];%设置不同信噪比
channel_n=100*ones(1,length(SNR));
error_mmselinp=zeros(1,length(SNR));%初始化误码率
error_zflinp=zeros(1,length(SNR));
for loop_ebno=1:length(SNR)%不同信噪比的循环
snr=10.^(SNR(loop_ebno)/10);%将信噪比从分贝形式转化成比例表示
ea=1;%每个天线发射的功率
es=ea*Nt;%总共的发射功率
sigma_n2=es/snr;%噪声功率
num=200;%发送数据个数
tic
for loop_channel=1:channel_n(loop_ebno)%信道的实现次数的循环
H=sqrt(1/2)*(randn(Nr,Nt)+j*randn(Nr,Nt));%信道增益矩阵
zf_F=H'*inv(H*H'); %求出F^
beta_zf=sqrt(es/norm(zf_F,'fro').^2);%计算zf_F的Frobenius范数%求出缩放因子beta
F_zf=beta_zf*zf_F;%求出预编码矩阵F=F^×beta
for loop_num=1:num%在一帧数据符号中,信道保持不变。一帧总共有num个数据发送
gen_u=(sign(randn(Nt,1))+j*sign(randn(Nt,1)));%产生信号
u=sqrt(1/2)*gen_u;%归一化信号功率
x_zf=F_zf*u;%发送信号
noise=sqrt(sigma_n2/2)*(randn(Nr,1)+j*randn(Nr,1));%生成噪声功率为sigma_n2的噪声
y_zf=H*x_zf+noise;
r_zf=1/beta_zf*y_zf;%接收信号
rev_data_zf=sign(real(r_zf))+j*sign(imag(r_zf));%输出判决
error_zflinp(1,loop_ebno)=error_zflinp(1,loop_ebno)+sum(((abs(rev_data_zf-gen_u)).^2/4));%计算误比特数
end
end
toc
ber_zflinp(1,loop_ebno)=error_zflinp(1,loop_ebno)/(num*Nt*2*channel_n(loop_ebno)); %乘以2是因为产生的数据符号是复数,相当于进行了4QAM调制
end
%画出ZF的BER性能曲线
P=semilogy(SNR,ber_zflinp,'*-k');
set(P,'Linewidth',[2]);%P线宽2号
grid on;
xlabel('symbol SNR(dB)');
ylabel('BER');
title('基于ZF准则的预编码BER性能')
leg='zflinear';%设置图例
legend(leg);
zf.rar_MIMO ZF_MIMO中的ZF_MIMO预编码_MIMO预编码性能_mimo 预编码
版权申诉
12 浏览量
2022-09-14
20:54:12
上传
评论
收藏 1KB RAR 举报
alvarocfc
- 粉丝: 109
- 资源: 1万+
最新资源
- 基于SHT25温湿度传感器、FREERTOS、STM32F103C8T6、LCD1602温湿度采集显示系统proteus仿真设计
- C# 屏幕放大取色器 随时随地获取屏幕像素颜色
- 下载安装这个软件.apk
- 【数据集详细解释及案例分析】数据集详细解释及案例分析
- 基于SHT71温湿度传感器、STM32F103C8T6、LCD1602温湿度采集显示系统proteus仿真设计
- 基于TH02温湿度传感器、STM32F103C8T6、LCD1602、FREERTOS的温湿度采集系统proteus仿真设计
- 【TCP-IP协议详细解释及案例分析】TCP-IP协议详细解释及案例分析
- 一文搞懂 LSTM(长短期记忆网络).rar
- 【autosar简介及基本案例解析】autosar简介及基本案例解析
- java模拟斗地主洗牌发牌
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0