资源简介
在这个代码中我们利用MMSE检测算法对4输入4输出传输系统进行信号检测

代码片段和文件信息
%译码算法
clear all
Nt=4;%发射天线数
Nr=1;%接收天线数
num_S=4;%每次发射的符号数量
num_slot=4;%时隙数
nit=1000;%采样点数
M_qam=4;%调制方式
num_bit_per_sym=log2(M_qam);%每个符号含有的比特数
snr_min=0;%最小信噪比
snr_max=20;%最大信噪比
graph_inf_bit=zeros(snr_max-snr_min+12);
for SNR=snr_min:1:snr_max
clc
disp(‘Wait Until SNR=‘);%disp文本形式显示矩阵
disp(snr_max);
SNR %显示仿真进度
graph_inf_bit(SNR-snr_min+11)=SNR;%横坐标取值;当前SNR存储到graph_inf_bit的第一列中的SNR-snr_min+1位置
num_error_sym=0;%初始化误符号数
num_error_bit=0;%初始化误比特数
for num_sym=1:nit
s0=randint(num_Snum_bit_per_sym);%产生随机数列;rand随机产生0到1之间的数,randint随机产生0到1之间的整数,即0或1
s=zeros(num_S1);
for i=1:num_S
if s0(i:)==[0 0]
s(i1)=-1+j;
elseif s0(i:)==[0 1]
s(i1)=-1-j;
elseif s0(i:)==[1 0]
s(i1)=1+j;
else
s(i1)=1-j;
end
end %调制过程;以上是4QAM映射,s0(i:)表示s0矩阵的第i行,所有列
h=(randn(NtNt)+j*randn(NtNt))/sqrt(2);%路径增益 满足正态分布的伪随机数4*1
de_snr=10^(SNR/10);%将信噪比从db数换算成十进制
sig=sqrt(Nt/de_snr);
noise=sig*(randn(num_slotNr)+j*randn(num_slotNr))/sqrt(2);%归一化处理
r=h*s+noise; %接收到的信号4*1
%----------------------part 1-----MMSE检测算法--------------
W_mmse=inv(h‘*h+eye(4)./de_snr)*h‘;%inv表示取逆
ss=W_mmse*r;
%Signal demodulation
re_sym=zeros(num_Snum_bit_per_sym);%存放译码结果,num_bit_per_sym每个符号含有的比特数
%----------------------part 2-----成对译码-------------
qam_space_2=[-1+j
-1-j
1+j
1-j];
for i=1:num_S
for ii=1:M_qam
f_1_3=(abs(ss(i1)-qam_space_2)).^2;
end
[M1 N1]=min(f_1_3);%M1为(f_1_3)的最小值,N1为对应的s3
re_sym(i1)=qam_space_2(N1)
end
for i=1:length(re_sym)
if re_sym(i)==-1+j
re_sym1(i:)=[0 0] ;
elseif re_sym(i)==-1-j
re_sym1(i:)=[0 1] ;
elseif re_sym(i)==1-j
re_sym1(i:)=[1 1] ;
else re_sym1(i:)=[1 0] ;
end
end
de_sym=bi2de(re_sym1);%二进制转化为十进制
de_s0=bi2de(s0);
for rp=1:num_S
if de_sym(rp1)~=de_s0(rp1)%发射矩阵与译码接收的矩阵比较
num_error_sym=num_error_sym+1;
for mm=1:num_bit_per_sym
if re_sym1(rpmm)~=s0(rpmm)
num_error_bit= num_error_bit+1;
end
end
end
end
end
per_bit= num_error_bit/(num_S*num_bit_per_sym*nit);%误比特率的计算,误比特率=错误的比特数/(符号长度*错误符号个数*符号数)
graph_inf_bit(SNR-snr_min+12)=per_bit;
end
x=graph_inf_bit(:1);
y=graph_inf_bit(:2);
semilogy(xy‘k-o‘);
grid on
hold on
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3095 2017-12-02 14:00 MMSE.m
----------- --------- ---------- ----- ----
3095 1
- 上一篇:powertool.exe
- 下一篇:可行性研究报告 学生学籍管理系统
相关资源
- 在高斯白噪声信道下的QPSK编码误码率
-
simuli
nk 课程设计 qpsk - 移动通信实验现代数字调制、解调实
- 使用半分析半仿真的方法进行QPSK系统
- turbo码在高斯信道下和衰弱信道下结合
- 应用典型的 MMSE 算法对 MIMO-OFDM 信道进
- 关于BPSK、QPSK、MSK、QAM的调制与解调
- QPSK与BPSK的锁相环仿真源码
- 该代码实现了am,f-msk,qpsk,mdpsk
- 基于FPGA的QPSK调制解调器的设计
- fpga实现qpsk 南航通信综合课设
- QPSK调制解调器的设计及FPGA实现
- _4_DQPSK调制解调技术研究及FPGA实现
-
LMMSE Turbo Equalization ba
sed on factor gr - QPSK调制的FPGA实现源程序
- 基于DSP的FSK和QPSK调制器的设计
- 通信原理实验报告_QPSK.pdf
- systemview 实现QPSK,PCM
- QPSK_PROJECT.rar
- QPSK的调制解调和误码率仿真
- bpsk qpsk 16qam 64qam调制解调 包括误码率
- 基于块状导频的ofdm信道估计
- OFDM系统LS与MMSE信道估计算法仿真分析
- 用Systemview实现对QPSK系统的仿真与分析
- OFDM系统LS与MMSE信道估计算法仿真分析
- 高斯瑞利分布下qpsk和QAM的误码率分析
- OFDM信道估计和均衡的仿真程序,包括
- 基于mmse的信道估计算法
- 瑞利信道仿真 BPSK QPSK QAM
- systemview常用的几种解调仿真,附软件
评论
共有 条评论