目录

  • 一、实验项目
  • 二、设计思路
  • 三、使用的matlab函数声明
  • 四、各模块设计(包含代码、流程图)
    • 1、主函数
      • 1. 流程图
      • 2. matlab代码
    • 2、information1函数
      • 1. 流程图
      • 2. matlab代码
    • 3、information2函数
      • 1. 流程图
      • 2. matlab代码
    • 4、codechange1函数
      • 1. 流程图
      • 2. matlab代码
    • 5、sampling函数
      • 1. 流程图
      • 2. matlab代码
    • 6、re_signal函数
      • 1. 流程图
      • 2. matlab代码
    • 7、draw函数
      • 1. 流程图
      • 2. matlab代码
    • 8、sss函数
      • 1. 流程图
      • 2. matlab代码
  • 五、仿真及测试效果
  • 六、实验总结及心得体会

一、实验项目

基带传输系统:欲传送的0、1比特流 + 码型变换 +基带成型网络(采用升余弦滚降系统或者部分响应系统)+信道+码型反变换+0、1比特流。针对某种码型分析其误码率。(噪声为加性高斯白噪声)

二、设计思路

首先我们先来分析数字基带系统的组成。

信源:模拟产生0,1的比特流
码型变换:将信源传输的0,1比特流转换为适合信道传输的码型,减小误码率
发送滤波器:压缩输入信号的频带,利于信号在信道中的传输
信道:允许基带信号传输的媒质,可分为有线信道、无线信道。
接收滤波器:接受信号,尽可能的滤除信道噪声、和其他干扰,对信道特性进行均衡。使输出的信号有利于抽样判决。
抽样判决:即使在传输特性不理想的条件下,在规定的时刻对信号进行判决
码型反变换:将码型进行反转,得到0,1的比特流

因此在matlab中的主函数设计思路如下:
1、首先根据设定的N值不同,生成规定长度的0,1的比特流
2、根据所设定的码型,设计码型变换函数,并在主函数中进行调用(此处我设定的是AMI码2)
3、将信号输入发送滤波器
4、模拟设置高斯白噪声信号,并将其与发送的信号进行叠加
5、将信号输入接受滤波器进行滤波
6、抽样判决器进行抽样判决
7、进行码型反变换
8、进行时域补偿
9、设定图形输出函数,将各个时期的波形进行比较

故设计以下子函数:
1、information1(N)生成0,1的比特流
2、Information2(N)生成传输波形
3、codechange(signal,N)进行码型变换
4、filter调用fdatool设计的滤波器函数,进行滤波
5、wgn生成噪声信号
6、Sampling(signal,N,n)进行抽样判决
7、re_signal(signal,n)进行码型反变换
8、draw(N,n,signal0,signal1,…)进行画图显示
9、sss(signal,N)用于补偿时域偏移

三、使用的matlab函数声明

1、wgn用于产生高斯白噪声
调用格式:
wgn(m,n,power)
m,n为开始、结束的标志
power为设定的噪声的DB
2、filter滤波
调用格式:
filter(Num,1,signal)
Num为FDATOOL生成的滤波器系数
1为分子
Signal是要进行滤波的函数

3、FDATOOL工具箱
用于生成升余弦滚降滤波器

4、plot函数
用于画图,采用线性坐标
5、axis函数
用于设置当前坐标区的范围
6、figure函数
用于生成新的图窗
7、title函数
用于生成图窗的名称
8、subplot函数
将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。
例子:subplot(2,2,3)
当前图窗划分为 2×2 网格,并在 3处的位置创建坐标区。

四、各模块设计(包含代码、流程图)

1、主函数

1. 流程图

2. matlab代码

此处不做提供,请参考流程图进行绘制

2、information1函数

1. 流程图

2. matlab代码

function x=information1(N)a=rand(N);x=[];for i=1:Nif a(i)<=0.5x(i)=0;elsex(i)=1;endend
end

3、information2函数

1. 流程图

2. matlab代码

function x=information2(N,n,signal)
x=[];
for i=1:Nif signal(i)==1x=[x,ones(1,n)];elseif signal(i)==0x=[x,zeros(1,n)];elsex=[x,ones(1,n).*(-1)];endend
end
end

4、codechange1函数

1. 流程图

2. matlab代码

function change_signal=codechange1(signal,N)
change_signal=[];
cout=1;
for i=1:Nif signal(i)==1change_signal(i)=cout;cout=-cout;elsechange_signal(i)=0;end
end
end

5、sampling函数

1. 流程图

2. matlab代码

function sample_signal=sampling(signal,n,N)
sample_signal=[];   %设定空数组用于存放生成的新信码;
for i=n/4:n:N*n   %设置间隔来取出抽样值;if signal(i)>0.5     %当信号抽样值>0.5,则信号恢复时函数为1;sample_signal=[sample_signal,1];elseif signal(i)<-0.5   %当信号抽样值<-0.5,则信号恢复时函数为-1;sample_signal=[sample_signal,-1];else              %其余恢复为0;sample_signal=[sample_signal,0];end     end
end
end

6、re_signal函数

1. 流程图

2. matlab代码

function ss=re_siginal(signal,N)
ss=[];
for i=1:Nif signal(i)==1ss(i)=1;elseif signal(i)==-1ss(i)=1;elsess(i)=0;endend
end
end

7、draw函数

1. 流程图

2. matlab代码

function draw(N,n,j,signal1,signal2,filter_signal1,noise,signal3,signal4,signal5,signal8,err)
% signal1为生成的比特流
% signal2为生成的AMI码
% filter_signal1为通过滤波器的信号
% noise为噪声信号
% signal3为AMI码且经过放大
% signal4为加入噪声信号的AMI码
% signal5是抽样判决生成的AMI码
% signal8是复原的比特流
% err误码率
figure;
subplot(2,1,1);
plot(signal1);
title('生成的比特流');
axis([0,N*n,-0.5,1.5]);
subplot(2,1,2);
plot(signal8);
title('复原的比特流');
axis([0,N*n,-0.5,1.5]);
figure;
subplot(3,1,1);
plot(signal3);
title('AMI码');
axis([0,N*n,-1.5,1.5]);
subplot(3,1,2);
plot(noise);
title('噪声信号');
axis([0,N*n,-1.5,1.5]);
subplot(3,1,3);
plot(signal4);
title('加入噪声的信号');
axis([0,N*n,-1.5,1.5]);
figure;
subplot(2,1,1);
plot(signal4);
title('加入噪声的信号');
axis([0,N*n,-1.5,1.5]);
subplot(2,1,2);
plot(filter_signal1);
title('经过滤波器的信号');
axis([0,N*n,-1.5,1.5]);
figure;
subplot(2,1,1);
plot(signal2);
title('AMI码');
axis([0,N,-1.5,1.5]);
subplot(2,1,2);
plot(signal5);
title('抽样判决生成的AMI码');
axis([0,N,-1.5,1.5]);
figure;
plot(err.*100);
title('误码率(已换算为百分比)');
% axis([0,j,0,0.1]);
end

8、sss函数

1. 流程图

2. matlab代码

function xx=sss(signal,N)%补偿滤波器造成的时域偏移
xx=[];
xx(N)=signal(1);
for i=1:N-1xx(i)=signal(i+1);
end

五、仿真及测试效果

本次实验总共实验了30次,其误码率如下:

生成的AMI码和抽样判决生成的AMI码:

加入噪声的信号与滤波后的信号的对比:

生成的AMI码、噪声信号及加入的噪声信号的对比:

生成的比特流和复原的比特流的对比:

六、实验总结及心得体会

本次实验实验还是比较波折的。首先在进行滤波器设计的时候就难住我了,我不知道该如何进行表写。虽然在《通信原理》的P148有进行说明,但我未能成功的实现。之后,我有又在CSDN中进行搜索,找了一些有关滤波器设计的博客进行查看。但对我而言,很多都还是看不懂。最后终于看到可以用matlab自带的fdatool工具箱进行编写,同时该博客还提供了如何生成升余弦滚降滤波器的方法。我就用fdatool进行处理,并导出了.mat文件。另一个难点是我成功的完成了整个系统,我查看生成的比特流和还原的比特流,发现二者很相似。但发现误码率却高达50%—60%,高的离谱。我后面在图窗使用它的数据游标,发现波形整体向后偏移了一位,又将实验频谱向前移动了一位。才成功了,但我查阅了很多资料也没有找到原因。总之,个人还是对本次实验比较满意的,它加深了我对通信中的数字基带通信系统的基本认知,锻炼了我编写matlab代码的能力。

基于Matlab的通信系统仿真-数字基带传输系统相关推荐

  1. 基于 Matlab 的通信系统仿真――数字通信大作业

    基于 Matlab 的通信系统仿真――数字通信大作业 附:MATLAB的通信系统仿真.rar 资源包括:main.m,modulation.m,demodulation.m,MATLAB的通信系统仿真 ...

  2. 通信MATLAB仿真毕业设计,毕业设计—基于matlab的通信系统仿真报告.doc

    毕业设计-基于matlab的通信系统仿真报告.doc 创新实践报告报 告 题 目:基于matlab的通信系统仿真学 院 名 称:信息工程学院姓 名:余盛泽班 级 学 号:指 导 老 师:温 靖二O一四 ...

  3. 基于matlab的数字调制,基于MATLAB的多功能数字调制系统信号源仿真

    内容简介: 毕业设计 基于MATLAB的多功能数字调制系统信号源仿真,共60页,27225字 摘要 数字通信与模拟通信系统相比有着灵活性.高效性和保密性等突出特点.数字通信系统仿真对于系统分析起着越来 ...

  4. 【OFDM通信】基于matlab OFDM通信系统仿真【含Matlab源码 2521期】

    ⛄一.获取代码方式 (附课程作业报告) 获取代码方式1: 完整代码已上传我的资源:[OFDM通信]基于matlab OFDM通信系统仿真[含Matlab源码 2521期] 点击上面蓝色字体,直接付费下 ...

  5. Matlab中pickic_MATLAB的数字基带传输系统

    基于 MATLAB 的数字基带传输系统 仿真实验设计 xxx (xxxxxxxxxxxx 学院 江苏 223600 〉 摘要介绍了<通信原理>课中数学基带传输系统实验的计算机仿真软件设计工 ...

  6. 通信笔记——数字基带传输系统

    数字基带传输系统:信号不经调制直接在系统中传输.来自数据终端的原始数据信号,这些信号往往含有丰富的低频分量,甚至直流分量,因此称为数字基带信号.在某些具有低通特性的有线信道中,特别是传输距离不太远的情 ...

  7. 基于matlab的通信系统仿真的本科论文,基于MATLAB的TDM通信系统仿真设计.docx

    摘要:当前,通信技术越来越多的影响着我们的生活.数字通信系统凭借其抗干扰能力强.传输差错可控的特性已然成为当代通信技术的主流.本课题根据时分多路复用的基本原理,利用MATLAB软件的图形用户界面来模拟 ...

  8. 基于MATLAB的GUI界面数字图像处理系统

    目录 实验一 MATLAB数字图像处理初步 实验二 图像的代数运算 实验三 图像增强-空间滤波 实验四 图像分割 实验一 MATLAB数字图像处理初步 一.实验目的与要求 1.熟悉及掌握在MATLAB ...

  9. 基于matlab数字基带传输系统,通信原理基于MATLAB Simulink 基带传输系统仿真实现...

    1.数字基带传输系统的简介及实现方法 (1)数字基带信号 通信的根本任务是远距离传输信息,准确地传输数字信息是数字通信中的一个重要环节.在数字传输系统中,其传输对象通常是二进制数字信息.它可以是来自计 ...

最新文章

  1. Android XML 实例化的过程
  2. 异部时钟电路的FPGA设计
  3. python程序运行不出来_python实战演练2:python可执行文件运行不成功怎么办
  4. 信噪比:高端科研级相机的核心参数
  5. 利用大数据构建用户画像的好处
  6. 数据结构(C语言版)严蔚敏课后答案
  7. 江苏省秋c语言二级用什么软件,在哪里可以查到江苏省计算机c语言二级考试资料?...
  8. leetcode 5855. 找出数组中的第 K 大整数(C++、java、python)
  9. java图标中设置背景、文本框设置大小、标签中字体的格式
  10. android 指南针 原理,手机指南针原理是什么?安卓/苹果手机指南针app工作原理介绍...
  11. 消息中间件选型分析:从 Kafka 与 RabbitMQ 对比
  12. VUE中自定义步骤条
  13. 10套word版个人简历模板,各种风格个人简历模板
  14. 数据库连接池,几种开源的数据库连接池
  15. NoSQL:列族数据库
  16. Python列表的相关操作
  17. 怎么把视频MD5值修改一下?分享几种简单的修改方法
  18. 现在学Python怎么样?还有发展前景吗?
  19. hao123是HTML还是PHP,PHP网址目录大全网址导航源码 支持默认/hao123/2345/114la四种风格...
  20. Linux连接工具(一)XShell7(免费版)下载及安装步骤

热门文章

  1. android 自定义view之掷骰子小人走动的游戏
  2. grub4dos硬盘引导集锦
  3. 用Javascript开发《三国志曹操传》-零部件开发(一)-让静态人物动起来
  4. webpack打包分析
  5. POSTGRESQL 短查询优化,独立索引与组合索引 8
  6. 2019ICPC亚洲区域赛南昌网络赛
  7. 经众多Nature文章使用认证!艾美捷抗酒石酸酸性磷酸酶TRAP染色试剂盒
  8. H3C云计算、网络售前专家考试认证题库
  9. 努力学习打卡Day02
  10. flat方法的简单实现