一、一些Matlab函数

二、2PSK调制解调,性能分析

1、2PSK调制

(1)图示

(2)Matlab代码

function [ s_t ,bb_t,bits] = psk2_module( nSym ,Rb,fs,fc,Ac )
%UNTITLED7 此处显示有关此函数的摘要
%   此处显示详细说明
%nSym = 300;   % 信息长度
%Rb = 200;     % 信息速率
%fs = 48e3;    % 采样率
%fc = 4e3;     % 载波频率
%Ac = 1;       % 载波幅度
%s_t           % 已调波形
%bb_t          % 码型时域波形
%bb            % 码型%%
%产生信号
% 随机产生二进制信息
bits = randint(nSym,1);
% 产生不归零码
bb = 2 * bits - 1; %%
%产生码型
% 每个符号包含的样点数
sample_bit = fs / Rb;
% 时间
t = (0:sample_bit*nSym-1)'/fs;
% 产生不归零码的时域波形
bb_t = reshape(repmat(bb', sample_bit, 1), sample_bit*nSym, 1); %%
%调制
% 产生载波信号
c_t = Ac*cos(2*pi*fc*t);
% 调制
s_t = bb_t .* c_t; end

2、2PSK解调

(1)图示

(2)Matlab代码

function [ bits,bb_t] = psk2_remodule( Rb,fs,fc,s_t)
%UNTITLED11 此处显示有关此函数的摘要
%   此处显示详细说明
% Rb = 200;       % 信息速率
% fs = 48e3;      % 采样率
% fc = 4e3;       % 载波频率
% s_t             % 调制波形% bit_s           % 抽样判决之后
% bb_t            % 抽样判决之前r_t = s_t; % 每个符号包含的样点数
sample_bit = fs/Rb;
% 时间
t = (0:length(r_t)-1)'/fs; % 产生同频同相载波信号
c_t = cos(2*pi*fc*t);% FIR群延迟,也是阶数一半
group_delay = 50;
b = fir1(group_delay*2, Rb/(fs/2)); % 主瓣占带宽Rb,这里可以放宽
bb_t = filter(b,1, r_t .* c_t); % 混频并滤波 % 抽样点下标
idx_decision = round(1+group_delay+sample_bit/2):sample_bit:length(r_t);
% 取得抽样点
val_decision = bb_t(idx_decision); % 判决
bits = zeros(length(val_decision),1);
bits(val_decision > 0) = 1; end

3、一个demo

clc,clear;nSym = 1000;    % 信息长度
Rb = 1e3;      % 信息速率
fs = 48e3;     % 采样率
fc = 5e3;      % 载波频率
Ac = 1;        % 载波幅度%%
[s_t ,bb_t,bb] = psk2_module( nSym ,Rb,fs,fc,Ac );
t = (0 : length(s_t) - 1) / fs' ;%%
%绘制已调波形
figure();
plot(t,s_t);
title('2PSK时域波形');
xlabel('time(t)');
ylabel('y');%绘制功率谱
powerF_draw(s_t,fs);%%
%发送端码型变换后的波形
figure();
subplot(2,1,1);
plot(t,bb_t);
axis([min(t),max(t),-1.2,1.2]);
title('发送端码型波形');
xlabel('time(t)');
ylabel('y');%接收端抽样判决前的波形
subplot(2,1,2);
[bits,rbb_t] = psk2_remodule(Rb,fs,fc,s_t);
plot(t,rbb_t);
title('接收端码型波形');
xlabel('time(t)');
ylabel('y');%%
%眼图
eyediagram(rbb_t,4*fs/Rb); %取四个Bit
title('无信道噪声');%小噪声
s_pow = sum(s_t.^2) / length(s_t);
n_pow = 0.01 * s_pow;
n_t = bandlimit_noise(length(s_t),fs,fc,2*Rb,n_pow);
[bits_low_noise,rbb_t_low_noise] = psk2_remodule(Rb,fs,fc,s_t + n_t);
eyediagram(rbb_t_low_noise,4*fs/Rb);
title('小信道噪声');%大噪声
n_pow = 0.5 * s_pow;
n_t = bandlimit_noise(length(s_t),fs,fc,2*Rb,n_pow);
[bits_high_noise,rbb_t_high_noise] = psk2_remodule(Rb,fs,fc,s_t + n_t);
eyediagram(rbb_t_high_noise,4*fs/Rb);
title('大信道噪声');%%
%2PSK通信系统评估
snr_i = (-3:1:8)'; % SNR输入(dB)%计算噪声功率
n_pow = s_pow ./ (10.^(snr_i ./ 10));%初始化储存
number = zeros(1,length(snr_i));
ratio = zeros(1,length(snr_i));%计算SNR
for i=1:length(snr_i)n_t = bandlimit_noise(length(s_t),fs,fc,2*Rb,n_pow(i));[bits,rbb_t] = psk2_remodule(Rb,fs,fc,s_t + n_t);[number(i),ratio(i)] = symerr(bits,bb(1:nSym-1));
end%绘图
figure();
plot(snr_i,ratio*100);
title('误码率曲线');
xlabel('snr_i(dB)');
ylabel('误码率(%)');

三、2DPSK调制解调

1、2DPSK调制

function [ s_t ,bb_t,bits] = dpsk2_module( nSym ,Rb,fs,fc,Ac )
%UNTITLED7 此处显示有关此函数的摘要
%   此处显示详细说明
%nSym = 300;   % 信息长度
%Rb = 200;     % 信息速率
%fs = 48e3;    % 采样率
%fc = 4e3;     % 载波频率
%Ac = 1;       % 载波幅度
%s_t           % 已调波形
%bb_t          % 码型时域波形
%bits          % 码型%%
%产生信号
% 随机产生二进制信息
bits = randint(nSym,1);%产生差分码
bits_d = zeros(nSym+1,1);
for i=1:length(bits)bits_d(i+1) = mod(bits_d(i) + bits(i),2);
end% 产生不归零码
bb = 2 * bits_d - 1; %%
%产生码型
% 每个符号包含的样点数
sample_bit = fs / Rb;
% 时间
t = (0:sample_bit*(nSym+1)-1)'/fs;
% 产生不归零码的时域波形
bb_t = reshape(repmat(bb', sample_bit, 1), sample_bit* (nSym+1), 1); %%
%调制
% 产生载波信号
c_t = Ac*cos(2*pi*fc*t);
% 调制
s_t = bb_t .* c_t; end

2、2DPSK解调

function [ bits,bb_t] = dpsk2_remodule( Rb,fs,fc,s_t)
%UNTITLED11 此处显示有关此函数的摘要
%   此处显示详细说明
% Rb = 200;       % 信息速率
% fs = 48e3;      % 采样率
% fc = 4e3;       % 载波频率
% s_t             % 调制波形% bit_s           % 抽样判决之后
% bb_t            % 抽样判决之前r_t = s_t; % 每个符号包含的样点数
sample_bit = fs/Rb;
% 时间
t = (0:length(r_t)-1)'/fs; % 产生同频同相载波信号
c_t = cos(2*pi*fc*t);% FIR群延迟,也是阶数一半
group_delay = 50;
b = fir1(group_delay*2, Rb/(fs/2)); % 主瓣占带宽Rb,这里可以放宽
bb_t = filter(b,1, r_t .* c_t); % 混频并滤波 % 抽样点下标
idx_decision = round(1+group_delay+sample_bit/2):sample_bit:length(r_t);
% 取得抽样点
val_decision = bb_t(idx_decision); % 判决
bits_d = zeros(length(val_decision),1);
bits_d(val_decision > 0) = 1;
bits = zeros(length(bits_d)-1,1);
for i=1:length(bits)bits(i) = mod(bits_d(i) + bits_d(i+1),2);
endend

3、一个demo

clc,clear;nSym = 1000;    % 信息长度
Rb = 1e3;      % 信息速率
fs = 48e3;     % 采样率
fc = 5e3;      % 载波频率
Ac = 1;        % 载波幅度%% 产生2PSK信号
[s_t,bb_t,bb] = psk2_module( nSym ,Rb,fs,fc,Ac );%% 产生2DPSK信号
[s_d_t,bb_d_t,bb_d] = dpsk2_module( nSym ,Rb,fs,fc,Ac );%% 绘制发送端差分编码前后的波形
figure()
%发送端差分编码前离散序列
subplot(2,1,1);
stem(bb_d);
axis([-5,nSym+5,-1.2,1.2]);
title('发送端差分编码前离散序列');
xlabel('time(t)');
ylabel('y');%发送端差分不归零编码后离散序列
subplot(2,1,2);
stem(bb_d_t(1:fs/Rb:length(bb_d_t)));
axis([-5,nSym+5,-1.2,1.2]);
title('发送端差分不归零编码后离散序列');
xlabel('time(t)');
ylabel('y');[bits_d,rbb_d_t] = dpsk2_remodule(Rb,fs,fc,s_d_t);%% 2PSK通信系统评估
s_pow = sum(s_t.^2) / length(s_t);
snr_i = (-3:1:8)'; % SNR输入(dB)
%计算噪声功率
n_pow = s_pow ./ (10.^(snr_i ./ 10));%初始化储存
number = zeros(1,length(snr_i));
ratio = zeros(1,length(snr_i));%计算SNR
for i=1:length(snr_i)n_t = bandlimit_noise(length(s_t),fs,fc,2*Rb,n_pow(i));[bits,rbb_t] = psk2_remodule(Rb,fs,fc,s_t + n_t);[number(i),ratio(i)] = symerr(bits,bb(1:nSym-1));
end%% 2DPSK通信系统评估
s_d_pow = sum(s_d_t.^2) / length(s_d_t);
snr_i = (-3:1:8)'; % SNR输入(dB)%计算噪声功率
n_d_pow = s_d_pow ./ (10.^(snr_i ./ 10));%初始化储存
number_d = zeros(1,length(snr_i));
ratio_d = zeros(1,length(snr_i));%计算SNR
for i=1:length(snr_i)n_d_t = bandlimit_noise(length(s_d_t),fs,fc,2*Rb,n_d_pow(i));[bits_d,rbb_d_t] = dpsk2_remodule(Rb,fs,fc,s_d_t + n_d_t);[number_d(i),ratio_d(i)] = symerr(bits_d,bb_d(1:nSym-1));
end%绘图
figure()
hold on;
plot(snr_i,ratio*100,'b');
plot(snr_i,ratio_d*100,'r');
title('2PSK和2DPSK误码率曲线对比');
xlabel('snr_i(dB)');
ylabel('误码率(%)');
legend('2PSK','2DPSK');

通信原理实践(五)——2PSK 与2DPSK 通信系统相关推荐

  1. 通信原理第五章 基带信号的表示和传输

    通信原理第五章 基带信号的表示和传输 思维导图

  2. 【笔记整理】通信原理第五章复习——模拟信号的数字化

    5.1 引言 数字通信系统的优点: (1)抗干扰能力强 (2)传输差错可控 (3)便于现代化数字信号处理技术来对数字信息进行处理 (4)易于集成化 (5)易于加密处理,保密强度高 利用数字通信系统传输 ...

  3. 【通信原理】五、模拟调制系统

    文章目录 一.模拟调制概述 定义 调制的目的 调制分类 二.幅度调制AM 原理图 需要满足的条件 AM时域和频域表达式 功率与效率 三.双边带调制DSB 表达式 DSB调制效率 四.单边带调制SSB ...

  4. 通信原理实践(一)——音频信号处理

    一.信号的离散化 1.采样定理: –如果信号是带限的,并且采样频率fs超过信号最高频率的两倍,那么,原来的连续信号可以从采样样本中完全重建出来. 因此在仿真过程中,采样率(fs)是一个非常重要的参数. ...

  5. 通信原理实践(二)——幅度调制

    一.幅度调制,并画出时域和频域波形 1.代码如下: function [ p_n ] = AM_func( N,fs,fm,Am,fc,Ac,Ma ) %UNTITLED 此处显示有关此函数的摘要 % ...

  6. 通信原理课程设计报告

    目录 引言............................................................................................... ...

  7. 【通信原理】实验六 基于Matlab的2PSK和2DPSK调制

    目录 一.实验目的 二.实验器材 三.实验原理 1.2PSK的基本原理 2.2DPSK的基本原理 3.2PSK和2DPSK的产生方法 四.实验内容及要求 更多文章如下: 一.实验目的 1.掌握2PSK ...

  8. 【通信原理】实验五 基于Matlab的2ASK和2FSK调制解调

    目录 一.实验目的 二.实验器材 三.实验原理 1.二进制振幅键控(2ASK) 2.二进制频移键控(2FSK) 四.示例演示 1.2ASK的模拟调制程序如下: 2.2ASK的开关键控法,调制程序如下: ...

  9. 2psk系统的仿真课程设计matlab,通信原理课程设计-基于MATLAB-Simulink的2PSK仿真

    <通信原理课程设计-基于MATLAB-Simulink的2PSK仿真>由会员分享,可在线阅读,更多相关<通信原理课程设计-基于MATLAB-Simulink的2PSK仿真(17页珍藏 ...

  10. 通信原理(3)——模拟通信系统的幅度调制(AM DSB SSB VSB)和角度调制(PM FM)

    通信原理(3)--调制 Ⅰ. 绪论 调制:把消息信号寄托到载波的某个参数上,形成已调信号. 解调:调制的逆过程,从已调信号中恢复消息信号. 一.调制的目的 无线通信中,匹配信道特性,提高发射信号的频率 ...

最新文章

  1. 快速掌握一个语言最常用的50%
  2. 【Java 网络编程】TCP API 简介 ( Socket | ServerSocket )
  3. fedora 35 安装各种桌面环境命令整理
  4. OpenCV笔记(基于Python)
  5. timer purge_Java Timer purge()方法与示例
  6. zabbix4.2学习笔记系列
  7. 删除共享登陆用户信息||无权访问共享资源解决方法
  8. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_16-CMS服务端工程搭建-导入CMS数据库...
  9. DCM4CHEE 中worklist 乱码问题 dcmchee 中文乱码
  10. python绘图中文_Python绘图实现显示中文
  11. 如何设置浏览器标签图标
  12. Unity 编辑器扩展菜单
  13. 光功率 博科交换机_FAQ-交换机是否支持查看光模块型号及收发光功率
  14. 如何解决苹果公司开发者账号重设手机号的问题
  15. Type-infity Wasserstein Ball
  16. git设置用户名和邮箱地址
  17. linux把m4s格式转换mp4,史上最详细!如何将B站缓存的m4s文件无损转换为mp4格式
  18. php获取7天,php 获取未来七天的日期和星期
  19. hive报错Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
  20. 无代码开发平台数据ID入门教程

热门文章

  1. PhotoZoom放大图片,真的能无损吗?
  2. 前端中函数 , 伪函数 , DOM
  3. 错误 C2280 Union : 尝试引用已删除的函数 以及 警告 C4624 “Grade”: 已将析构函数隐式定义为“已删除”的一种解决方法...
  4. 7 行为型模式之 - 状态模式
  5. linux--GCC用法
  6. Zabbix 5.0 配置简单WEB网页监测和触发器
  7. React进行服务器端数据请求---fetch
  8. Vue子组件调用父组件的方法
  9. iOS逆向之利用Xcode重签名
  10. IO流介绍与File类