文章目录

  • 一. 总体思路:
  • 二. 内容
    • 2.1 第一个实验部分:2ASK (二进制幅度调制)
      • 2.1.1 2ASK
      • 2.1.2 信道
      • 2.1.3 符号解释
      • 2.1.4 问题思考
    • 3.1 第二个实验部分:2FSK (二进制频率调制)
      • 3.1.1思路:
    • 4.1 第三个实验部分:2PSK (二进制相位调制)
    • 5.1 第四部分 2DSK

一. 总体思路:

针对2ASK调制使用相干解调法:对整个过程进行分析
相比实验二:数字基带传输实验(GZHU) 这里只是增加了调制和解调两个部分,同时对于2ASK 这里选择的码型是单极性不归零码型;剩下的部分跟实验二是一样的;调制方法:包络法和模拟相乘法进行调制和相干解调;

二. 内容

采用Matlab对数字调制解调系统进行搭建并仿真,基本参数设置如下:
 1. 信源为长度N=1000的随机“0”、“1”序列,发送端符号速率RB=1000Baud;
 2. 基带数字信号根据具体调制方式采用合适的基带编码;
 3. 发送端的发送滤波器采用平方根升余弦滤波器,采样频率fs=16000Hz,滚降系数α=0.25,延迟delay=5;
 4. 信道为awgn信道,信噪比snr=-5dB、5dB;
 5. 接收端的低通滤波器采用平方根升余弦滤波器进行匹配滤波;
请实验仿真并给出以下信息:、

  1. 2ASK
    载波频率fc=4000Hz
    (1) 发送端采用平方根升余弦脉冲成型后的时域和频域波形;
    (2) 发送端进行2ASK调制后的时域和频域波形;%
    (3) 接收端进行2ASK相干解调后的时域和频域波形;
    (4) 接收端进行匹配滤波的时域和频域波形;
    (5) 发送端输入信号和接收判决器输出的信号波形对比图;
    (6) 误码率;
    (7) 分析接收端抽样判决阈值的选取对误码率的影响。
    简单实验使用单极性不归零码型;

2.1 第一个实验部分:2ASK (二进制幅度调制)

代码:跟实验二不同的是信号在输入信道前进行调制,输出信道后进行解调,剩下的都是跟实验二一样!

2.1.1 2ASK
fc = 4000;                  % 载波频率% f_up = 2000                 % 上分支载波频率
% f_down = 4000               % 下分支载波频率x_len = length(x_shaped);     % 发送信号长度ln = 0:x_len - 1;t = ln/fs;                    % 时间t 2ASK调制cari_x = cos(2*pi*fc*t);    % 载波
m_x_c = x_shaped .* cari_x;  % 模拟相乘法进行调制
2.1.2 信道
m_x_c_n = awgn(m_x_c, snr, 'measured', 'db');     % 添加高斯白噪声
1
相干解调
x_c_n = m_x_c_n .* cari_x;                          % 与同频率相乘 .*
1
脉冲成型
res = conv(x_c_n, h_sqrt);            % 接收端脉冲成型,滤波器还是使用平方根升余弦
1

接收端同步抽样

% 抽样同步
SynPosi = delay * oversamp * 2 + 1;                 % 两个时延*过采样率
SymPosi = SynPosi + (0:oversamp:(N-1) * oversamp);  % 采样点res_signl = res(SymPosi);                           % 接收端采样信号判决
for i = 1:Nif res_signl(i) > 0.5res_match(i) = 1;elseif res_signl(i) <= 0.5res_match(i) = 0;end
end

计算误码率

for i = 1:Nif res_match(i) ~= s_nrz(i)c_error = c_error endend
2.1.3 符号解释


fc : 载波频率
cari_x : 载波
m_x_c : 调制后信号
m_x_c_n : 调制后信号在信道上添加高斯白噪声
x_c_n : 接收端解调后信号
res : 经过卷积后的接收端信号,此时已经是低频信号
res_signl : 经过抽样判决后的信号
res_match: 接收通过判决匹配信号
c_error : 错误码元个数
elv : 误码率

2.1.4 问题思考
  1. 基带信号有码间串扰,那么调制信道是否有码间串扰?

    有,只要是带限信道就会产生码间串扰

  2. 怎么避免码间串扰呢?

组成 一起就能避免码间串扰!

  1. 码型的选择?

单极性不归零码

  1. 为什么不选择双极性?

因为如果选择双极性码型的时候,表示0或者1的正弦波的幅度的绝对值是相等;而单极性表示0或者1的时候表示1是正弦波,表示0是0;

  1. 载波的时候为什么使用 .*(点乘),而不使用(乘);

这是因为载波的是将基带信号搬移到载波频谱上,所以是将每个基带信号与载波对应元素进行相乘,而乘法是矩阵乘法,也就是mxn维度*nxm维度点乘是nxm维度*nxm维度


6. 接受端解调

解调方法:相干解调和包络解调(以下是相干解调)

就是将经过载波的信号通过相乘器(与载波信号(同频同相)进行相乘),进行简单的频谱搬移,之后通过低通滤波器将高频成分过滤,得到的就是基带信号的低频成分;

  1. 抽样判决的阈值的选择

选择0.5,因为使用的是单极性码元

3.1 第二个实验部分:2FSK (二进制频率调制)

3.1.1思路:

  • 2FSK = 2ASK + 2ASK

4.1 第三个实验部分:2PSK (二进制相位调制)

在2ASP的基础上进修改

将2ASK的码型由原来的单极性不归零码改为双极性不归零码
修改接受端的判别阈值有原来的0.5修改为0

不发生倒pi现象:

  • 这是因为使用了双极性不归零码的时候-1 会将同频同相的载波在-1 的位置与1 进行倒置,得到的是相位的变化来表示原来的-1和1;

不发生倒pi现象:

  • 将接收端载波在相位上偏移pi个单位,实现倒pi 效果

carri_x_1 = cos(2 * pi * fc * t + pi); %接收端在倒pi现象

对接收端载波进行一个pi相位的偏移部分代码:

ln = 0:length(x_shaped) - 1;
t = ln / fs;
carri_x_1 = cos(2*pi*fc*t + pi); % 接受端的载波比发送端的载波在时域上多个pi单位   发送端载波  cari_x = cos(2*pi*fc*t);
x_c_n_1 = m_x_c_n .* carri_x_1; %乘以与发送端同频不同相的载波
figure('name', '倒pi接收端');
subplot(2,1,1),plot(x_c_n_1); axis([0 800 -1 1]);  %时域波形
title('----时域');f_x_c_n_1 = fft(x_c_n_1, N); %傅里叶变换
f_x_c_n_1_abs = abs(f_x_c_n_1);                  %取绝对值
subplot(2,1,2),plot(f,f_x_c_n_1_abs);           %频域波形
title('----频域');%时域上卷积滤波
res1 = conv(x_c_n_1, h_sqrt);                   %频域乘积,时域卷积
figure('name', '2PSK相干解调');
subplot(2,1,1),plot(res1);axis([0 800 -1 1]);   %接收端时域波形
title('----倒π时域');f_res1 = fft(res1, N);                           %傅里叶变换
f_res1_abs = abs(f_res1);                        %取绝对值
subplot(2,1,2),plot(f,f_res1_abs);
title('----倒π频域');
grid on;%接收端同步
res_signal1 = res1(SymPosi);   %倒π现象%接收端采样
res_match1 = zeros(length(res_signal1)); %初始化一个长度为 N 的全零数组,存放接收端抽样判决得到的码元
for i = 1:Nif res_signal1(i) > 0res_match1(i) = 1;elseif res_signal1(i) <= 0res_match1(i) = -1;end
endfigure('name', '----2PSK匹配波形');
subplot(2,1,1),stem(D_x);axis([0 100 -1 1]);
title('----原始波形');
subplot(2,1,2),stem(res_match1);axis([0 100 -1 1]);
title('----2PSK抽样判决波形');
RecBit2 = zeros(N);
%误码率
error = 0;%求误码率方法1
% for j = 1:N
%     if RecBit2(j) ~= D_x(j)
%         error = error + 1;
%     end
% end
% elv1 = error / N;
%sprintf('误码率:%0.5f% ',elv1);% 方法2:
[error, radio] = symerr(RecBit2,D_x)sprintf('错误码元数量:%d ',error);
sprintf('误码率:%0.5f%',radio);

5.1 第四部分 2DSK

实验完整代码:后续…

【2ASK】:https://download.csdn.net/download/zcw1234515/19547248
【2FSK】:https://download.csdn.net/download/zcw1234515/19547258
【2PSK】:https://download.csdn.net/download/zcw1234515/19547270
github[本来先把代码放github避免下载花积分,后来知道原来可以把下载积分设置为0]
参考文献:
[1] 基于MATLAB仿真的模拟乘法器AM波分析
[2]讲解傅里叶变换的知乎

【通信原理】【实验】实验三: 数字调制解调实验2ASK--2FSK--2PSK思路(GZHU)相关推荐

  1. 【通信原理课程设计】8PSK调制解调技术的设计与仿真(MATLAB)

    摘要 在数字信号的调制方式中8PSK是目前最常用的一种数字信号调制方式,它具有较高的频谱利用率.较强的抗干扰性.在电路上实现也较为简单.调制技术是通信领域里非常重要的环节,一种好的调制技术不仅可以节约 ...

  2. 通信原理简明教程 | 现代数字调制

    文章目录 1 多进制基带信号 2 多进制数字调制 2.1 多进制调制的基本原理 2.2 MPSK调制 3 MSK 3.1 MSK信号的表示 3.2 MSK的相位网格图 3.3 MSK的产生和解调 4 ...

  3. 两路语音 两路计算机数据综合,脉冲编码调制解调实验摘要.doc

    2012-2013 第二学期 开放实验项目 题 目:两路话音+两路计算机数据综合 传输系统实验 学生姓名 专业名称: 电子信息工程 指导教师: 2013年 5月 20日 脉冲编码调制解调实验 实验原理 ...

  4. 2fsk调制解调原理框图_数字调制解调输出什么 数字调制解调输出特点介绍【图文】...

    数字调制解调输出什么意思 数字信号也可以用改变载波的幅度.频率和相位的方法来传输,分别称为幅度键控(ASK).频移键控(FSK)和相移键控(PSK).与模拟调制的区别在于它们的幅度.频率和相位只有离散 ...

  5. 基于MATLAB的基本数字调制解调系统的设计

    基于MATLAB的基本数字调制解调系统的设计 一.摘要 现代通信系统要求通信距离远.通信容量大.传输质量好,作为其关键技术之一的调制解调技术一直是人们研究的一个重要方向.本文以MATLAB为软件平台, ...

  6. 4fsk调制matlab_数字调制解调技术的MATLAB与FPGA实现

    <数字调制解调技术的MATLAB与FPGA实现>包含2个版本.Xilinx/VHDL版的设计平台为ISE14.7/VHDL,配套开发板为CXD301:Altera/Verilog版的设计平 ...

  7. 计算机微程序控制器实验报告,计算机组成原理实验报告三:微程序控制器实验.doc...

    计算机组成原理实验报告三:微程序控制器实验.doc 微程序控制器实验报告一. 实验目的1 掌握微程序控制器的功能.组成知识.(2)掌握为程序的编制.写入.观察微程序的运行二.实验设备PC机一台,TD- ...

  8. ASK数字调制解调实现

    ASK数字调制解调实现 调制解调原理 Matlab仿真 Verilog仿真 调制解调原理 对于为什么全波整流+低通能够还原包络,我的理解是这样的 首先整流将电路转化为右图所示, 然后对于黑圈中变化较为 ...

  9. 数字调制解调—MSK

    数字调制解调-MSK 1 MSK时域特征 2 MSK产生方法 3 MSK调制仿真 4 MSK解调仿真 1 MSK时域特征   二进制最小频移键控(Minimum Shift Keying , MSK) ...

最新文章

  1. 【Part2】用JS写一个Blog (node + vue + mongoDB)
  2. 2.1 帮助命令、用户管理、压缩
  3. maven出现:Failed to execute goal on project ...: Could not resolve dependencies for project ...
  4. Applet实现Menu
  5. MyBatis的初始化方式
  6. Material Design之AppBarLayout总结
  7. 籍贯怎样填写_公务员考试:什么是考生户籍、生源地和籍贯?
  8. 《STL源代码剖析》---stl_set.h阅读笔记
  9. 从jsp向servlet传送数据的两种方式
  10. PAT乙级 1031 查验身份证 (15 分)
  11. 百度地图 android SDKv2.2.0
  12. 营业执照在线生成_平罗县实现个体户营业执照“秒批”
  13. ssm mysql项目实战_ssm项目实战_ssm项目实战教程_ssm项目实战视频教程 _课课家
  14. 华为设备MSDP配置命令
  15. 智能终端演绎IT产业大变革
  16. 计算系数(多项式展开+快速幂)
  17. 【GD32F310开发板试用】Contiki-NG在GD32F310的移植
  18. 【hadoop生态之Hive】Hive的DML数据操纵语言【笔记+代码】
  19. 输入行数,输出一个字母回文金字塔(c语言)
  20. 正方教务系统php登陆,正方教务管理系统最新版无条件注入GetShell | wooyun-2015-0122523| WooYun.org...

热门文章

  1. oracle报错无效列类型,jooq oracle存储过程与ARRAY,无效列类型:1111
  2. 不同制式字符串之间的转换
  3. mysql show processlist host_show processlist host 为 百分号(%)
  4. lgg8各个版本_lgg8参数
  5. 在Linux下编写并运行C文件
  6. 农信计算机资料录入试题,农村信用社考试计算机测试题(一)
  7. C/C++关键字 static 和 const
  8. vb.net2019-多线程并行计算(4)
  9. 浅析人工智能的数学基础(文末送书!)
  10. 【论文解读】经典CNN对2D3D掌纹及掌静脉识别的性能评估