为不同的调制方案设计一个单载波系统(映射器-信道-去映射器)(Matlab代码实现)

简介: 为不同的调制方案设计一个单载波系统(映射器-信道-去映射器)(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥


🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


⛳️座右铭:行百里者,半于九十。


📋📋📋本文目录如下:🎁🎁🎁


目录


💥1 概述


📚2 运行结果


🎉3 参考文献


🌈4 Matlab代码实现


💥1 概述

本代码为不同的调制方案(BPSK-QPSK(Gray-coded&binary coded)-8PSK-16QAM-BFSK)设计了一个单载波系统(映射器-信道-去映射器),并计算实际BER和理论BER并比较结果。


📚2 运行结果


61e5e4505e5449ffba31ac62906b68f7.png

12836bdf98f0465499c4b59e70cd41c5.png

54868ef1b3d64280a85b38186b6497a3.png

5842e1d0ccfa4078b38fd61d620bb07f.png

e37d409b0adc428a8ccb431988fd411f.png

6c536d7da6f64ce9bcdb106a0adca538.png

498d1a06715f4dd49e51b85d5812fcf2.png

4868aa182f454571b79c8cdbb5bf94dc.png

36dbabda4f2a44c38b054dade7c36f2d.png

4ed3c57eccf845a4b42c8400bba04d8d.png


主函数部分代码:

clear all
clc
%%%%%%%%%%%%%%%%% generating bits %%%%%%%%%%%%%%%%%%%
stream_of_bits = 100000 ;
Random_bits = randi([0 1] , 1 , stream_of_bits) ;
%---------------------- 1)BPSK -------------------------- 
%%%%%%%%%%%%%%% Mapper %%%%%%%%%%%%%%%%%%%
mapped_symbols = Random_bits .*2 - 1 ; %mapping bits to 1 and -1
%%%%%%%%%%%%%%%%% AWGN channel %%%%%%%%%%%%%%%
BER_BPSK = [] ;
theoritical_BER_BPSK = [] ;
snr = [-2 : 5] ; %range of snr in dB
Eb=1; %bit Energy
No = Eb./(10.^(snr/10));
for i = 1 : length(snr)
AWGN = randn(1,stream_of_bits)*sqrt(No(i)/2); %generating gaussian noise of mean zero and variance 1 
recieved_signal = mapped_symbols + AWGN ; %Y=X+N
%%%%%%%%%%% Demapper %%%%%%%%%%%%%%%%%%%%%%
demapped_signal = [] ;
for k = 1 : stream_of_bits
if recieved_signal(k) >= 0 %zero is the threshold (-1+1)/2
demapped_signal = [demapped_signal 1] ;
else
demapped_signal = [demapped_signal 0] ;
end
end
%%%%%%%%%%% BER calculation %%%%%%%%%%%%%%%%%%%%
error = abs(demapped_signal - Random_bits);
BER_BPSK = [BER_BPSK sum(error)/stream_of_bits] ;
theoritical_BER_BPSK = [theoritical_BER_BPSK 0.5*erfc(sqrt(1/No(i)))];
end
%%%%%%%%%%%%% plotting %%%%%%%%%%%%%%%%%%%
figure(1)
semilogy(snr,BER_BPSK , '-o','linewidth',2 ) ;
hold on
semilogy( snr , theoritical_BER_BPSK ,'-p','linewidth',2) ;
xlabel('Eb/No');
ylabel('BER');
legend('tight upper bound of BER' , 'theoretical BER ') ;
grid on
title('BPSK Modulation');
%---------------------- 2)8PSK -------------------------
%%%%%%%%%%%%%%%%%%%%%%% Mapper %%%%%%%%%%%%%%%%%%%%%%%%
PSK8_mapped = zeros(1 , (stream_of_bits-1)/3) ;
for i = 1 : (stream_of_bits-1)/3
    if Random_bits (i*3-2 : i*3) == [0 0 0]
        PSK8_mapped(i) = cos(0)+j*sin(0);
    elseif Random_bits (i*3-2 : i*3) == [0 0 1]
        PSK8_mapped(i) = cos(pi/4)+j*sin(pi/4);
    elseif Random_bits(i*3-2 : i*3) ==[0 1 1]
        PSK8_mapped(i) = cos(pi/2)+j*sin(pi/2);
    elseif Random_bits(i*3-2 : i*3) ==[0 1 0]
        PSK8_mapped(i) = cos(3*pi/4)+j*sin(3*pi/4);
    elseif Random_bits(i*3-2 : i*3) ==[1 1 0]
        PSK8_mapped(i) = cos(pi)+j*sin(pi);
    elseif Random_bits(i*3-2 : i*3) ==[1 1 1]
        PSK8_mapped(i) = cos(5*pi/4)+j*sin(5*pi/4);
    elseif Random_bits(i*3-2 : i*3) ==[1 0 1]
        PSK8_mapped(i) = cos(3*pi/2)+j*sin(3*pi/2);
    elseif Random_bits(i*3-2 : i*3) ==[1 0 0]
        PSK8_mapped(i) = cos(7*pi/4)+j*sin(7*pi/4);
end
end


🎉3 参考文献

[1]宋铁成,尤肖虎,沈连丰.基于OFDM系统信号处理方式的高速单载波系统[J].东南大学学报(自然科学版),2002(02):151-155.

部分理论引用网络文献,若有侵权联系博主删除。


🌈4 Matlab代码实现

相关文章
|
3月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
143 0
|
4月前
|
数据采集 算法 安全
多接地配电系统的基于PMU的系统状态估计(Matlab代码实现)
多接地配电系统的基于PMU的系统状态估计(Matlab代码实现)
166 0
|
3月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
200 8
|
4月前
|
机器学习/深度学习
BP-Adaboost MATLAB方案
BP-Adaboost MATLAB方案
|
4月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
275 2
|
4月前
|
监控
基于MATLAB/Simulink的单机带负荷仿真系统搭建
使用MATLAB/Simulink平台搭建一个单机带负荷的电力系统仿真模型。该系统包括同步发电机、励磁系统、调速系统、变压器、输电线路以及不同类型的负荷模型。
541 5
|
3月前
|
传感器 机器学习/深度学习 算法
【无人机协同】动态环境下多无人机系统的协同路径规划与防撞研究(Matlab代码实现)
【无人机协同】动态环境下多无人机系统的协同路径规划与防撞研究(Matlab代码实现)
233 0
|
3月前
|
算法 数据挖掘 调度
数据驱动的两阶段分布鲁棒(1-范数和∞-范数约束)的电热综合能源系统研究(Matlab代码实现)
数据驱动的两阶段分布鲁棒(1-范数和∞-范数约束)的电热综合能源系统研究(Matlab代码实现)
144 0
|
4月前
|
存储 供应链 新能源
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
232 0
|
3月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
329 0

热门文章

最新文章