• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: Matlab
  • 标签: ZF  

资源简介

代码实现ZF迫零预编码功能。在移动通信系统中,由于多用户干扰,造成接收端信号受到干扰,可以通过在站端进行预编码消除。

资源截图

代码片段和文件信息

function zf()%定义命名函数
clear all
close all
format long; %将数据显示为长整型科学计数 
Nt=4;%发送天线个数
Nr=4;%接收天线数
SNR=[0:2:20];%设置不同信噪比 从0开始0+2 0+2+2 ....到20结束的11个不同的信噪比
channel_n=100*ones(1length(SNR));%初始化信道矩阵 建立100组 1*length(SNR)的全1信道矩阵
error_zflinp=zeros(1length(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(NrNt)+j*randn(NrNt));%信道增益矩阵
        zf_F=H‘*inv(H*H‘); %求出F^文献MIMO信道预编码技术研究  重要文献p27  线性预编码器取右伪逆矩阵
        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=(s

评论

共有 条评论