我是靠谱客的博主 大力太阳,最近开发中收集的这篇文章主要介绍Matlab 下的 高斯信道BPSK通带通信系统的简单仿真目录1  相关原理2  代码仿真3  参考资料,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

1  相关原理

2  代码仿真

3  参考资料

1  相关原理

         首先,给出一般的数字通信系统框架如下:

BPSK是二进制相移键控,是最基本的调制方式,往往在进行仿真实现的时候,不需要加密、信道

编码、匹配滤波、同步等模块。简单来说,可将信源产生的0、1比特采用双极性码元(+1,-1)

来代替,形成一种简单的映射关系:

                                                           1 rightarrow 1 

                                                           0rightarrow -1

符号与相位之间的映射关系
双极性相位 phi _{k}
+10
-1pi

下图给出了两路信号,即QPSK的调制解调过程,本次实验BPSK,只需要一路信号即可。本次实

验采用的信道为高斯白噪声加性信道。

发送端首先产生一串比特流,经过双极性码映射之后,与cos(wt)相乘,得到发送的三角波形,之

后信号经过高斯信道,接收端接到信号与cos(wt)相乘,之后经过积分判决变成比特流。这时候比

较该比特流与发送端产生的比特流,观察误码结果。
 

2  代码仿真

主函数:

clc;
clear all;
close all;

%% BPSK 调制解调系统的仿真
% 参数初始化
Fs = 20; % 采样频率
Tb = 1; % 一个符号持续的时间
fc = 5; % 载波的频率
snrdB = -3; % 

N = input('The length of your bit streams:'); %输入的比特数量
message = randi([0 1],1,N);
message_to_symbol = 2 * message -1; % 符号映射;
modulation_signal = BPSK_modulation(message_to_symbol,Fs,Tb,fc); % 调制
Receive_symbol = awgn(modulation_signal,snrdB); % 高斯白噪声信道
demodulation_signal = BPSK_demodulation(N,Receive_symbol,Fs,Tb,fc); % 解调
Estimated_Receive_data = demodulation_signal>0; % 信号还原
error_bit = sum(Estimated_Receive_data~= message); % 计算误比特数目
figure_photo = figure_p(message,modulation_signal,demodulation_signal,Fs,Tb); % 画图
disp(['error_bit_number = ',num2str(error_bit)]);

辅助函数:

(1)调制函数:

function [modulation_sig] =BPSK_modulation(symbols,fs,t,fc)
%UNTITLED2 此处显示有关此函数的摘要
%   此处显示详细说明
len = length(symbols);
dt = 0:1/fs:t-1/fs;
sig_carry =[];
for i = 1:len
    sig_carry =[sig_carry,symbols(i)*cos(2*pi*fc*dt)];
end
modulation_sig = sig_carry;
end

 (2)解调函数

function [es_symbols] =  BPSK_demodulation(lens,R_symbol,fs,T,fc)
%UNTITLED3 此处显示有关此函数的摘要
%   此处显示详细说明
r_s = [];
dt = 0:1/fs:T-1/fs;
for i = 1 : lens
    r = R_symbol(1,(i-1)*length(dt)+1:i*length(dt)).*cos(2*pi*fc*dt);
    if sum(r) > 0
        r_s(i) = 1;
    else
        r_s(i) = -1;
    end      
end
 es_symbols = r_s;
end

 (3)绘图函数

function [rtt] =  figure_p(message,modulation_signal,demodulation_signal,Fs,Tb)
%UNTITLED4 此处显示有关此函数的摘要
%   此处显示详细说明
len1 = length(message);
t1 = 0:1/Fs:len1*Tb-1/Fs;
sym = 2*message - 1;
mes_to_sym = [];
est_sym = [];
for i =1 :len1
    mes_to_sym = [mes_to_sym, sym(i) * ones(1,Fs)];
    est_sym = [est_sym,demodulation_signal(i) * ones(1,Fs)];
end

figure;
subplot(3,1,1);
plot(t1,mes_to_sym); legend('Symbols') %比特信息
title('原始信号的双极性码元图');
subplot(3,1,2);
plot(t1,modulation_signal); legend('Symbols_carrier') %载波
title('调制波形图');
subplot(3,1,3);
plot(t1,est_sym);legend('Symbols_demolution'); %载波
title('解调信号的双极性码元图');

rtt = 1;
end

(4)实验结果

码长为10:

 

码长为50: 

 

 

码长为100

 

 

相关不足之处:本人本次的仿真实验,仿真的步骤简单,仿真的码字数目很小,在很大程度上不符

合实际的通信系统,但是,通过本次自己动手编写程序和调试,对BPSK有进一步的认识和理解,

各位多多包涵,也从其他博主学到很多有用的知识,感激不尽。

 

3  参考资料

1  以上图片均来自网络,非本人原创

2  QPSK调制与解调(matlab,详细介绍仿真方案的设计、结果及结论、完整代码及注释)

最后

以上就是大力太阳为你收集整理的Matlab 下的 高斯信道BPSK通带通信系统的简单仿真目录1  相关原理2  代码仿真3  参考资料的全部内容,希望文章能够帮你解决Matlab 下的 高斯信道BPSK通带通信系统的简单仿真目录1  相关原理2  代码仿真3  参考资料所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部