伪随机信号发生器

1、伪随机信号发生器原理

伪随机信号发生器又叫PN序列发生器或者是m序列发生器。m序列是一种线性反馈寄存器序列,m序列的产生可以利用r级寄存器产生长度为2^r-1的m序列,该实验中采用3级寄存器产生7序列发生器。其原理框图如下:(实验中反馈的信号采用异或进行反馈)

仿真波形:

2、实验代码

module m_ser(

clk,

reset_n,

load,

m_ser_out

);

input clk;

input reset_n;

input load;

output m_ser_out;

wire clk;

wire reset_n;

wire load;

reg m_ser_out;

] m_code;

always@(posedge clk ornegedge reset_n)

begin

if(!reset_n)

begin

m_code<=3'b000;

m_ser_out<=1'b0;

end

else

if(load)

begin

m_code<=3'b001;//置数初始化

];

end

else

begin

];

和0进行异或然后放到0

];

end

end

endmodule

2ASK调制

1、原理

在通信系统中,有时经常需要进行二进制数字调制。2ASK即是二进制幅值键控,2ASK的调制原理就是:基带信号为"0"时,输出保持为"0",基带信号为"1"时,输出一个特定频率的信号,如下图所示:

原理图如下:

2、实验仿真

通过仿真结果可以看出,当data_in输入为高时,调制输出一定频率的信号,输入为低时,调制输出低电平。

3、实验代码

module ask(

clk,

reset_n,

data_in,

ask_code_out

);

input clk;

input reset_n;

input data_in;

output ask_code_out;

wire clk;

wire reset_n;

wire data_in;

]clk_cnt;

reg clk_div;

always@(posedge clk ornegedge reset_n)//产生分频信号

begin

if(!reset_n)

begin

clk_cnt<=3'd0;

clk_div<=1'b0;

end

else

if(clk_cnt==3'd1)

begin

clk_div<=~clk_div;

clk_cnt<=3'd0;

end

else

clk_cnt<=clk_cnt +1'b1;

end

assign ask_code_out=(data_in)? clk_div :1'b0;

endmodule

2FSK调制

1、原理

2FSK的调制原理是当基带信号为"0"时,输出一个固定频率为f1的信号,当基带信号为"1"时,输出一个固定频率为f2的信号。如下图所示:

原理图如下:

2、实验仿真

3、实验代码

module fsk_code(

clk,

m_ser_code_in,

fsk_code_sin_out

);

input clk;

input m_ser_code_in;

output fsk_code_sin_out;

wire clk;

wire m_ser_code_in;

]cnt;

wire f1;

reg f2;

always@(posedge clk )

begin

if(cnt==3'd2)

begin

cnt<=3'd0;

f2<=~f2;

end

else

cnt<=cnt+1'b1;

end

assign f1=clk;

assign fsk_code_sin_out=(m_ser_code_in)? f1:f2;

endmodule

2PSK调制

1、2PSK调制原理

    在PSK调制时,载波的相位随调制信号状态不同而改变。如果两个频率相同的载波同时开始振荡,这两个频率同时达到正最大值,同时达到零值,同时达到负最大值,此时它们就处于"同相"状态;如果一个达到正最大值时,另一个达到负最大值,则称为"反相"。一般把信号振荡一次(一周)作为360度。如果一个波比另一个波相差半个周期,我们说两个波的相位差180度,也就是反相。当传输数字信号时,"1"码控制发0度相位,"0"码控制发180度相位。调制原理如下:

2、实验原理图说明

当伪随机信号发生器输出"1"时,PSK调制输出0度相位的正弦波形;当伪随机信号发生器输出"0"时,PSK调制输出180度相位的正弦波形;在这里,不详细说明"伪随机信号发生器"和"DDS信号发生器的原理",具体可以参考相应的章节。

3、仿真效果

采用ModelSim进行仿真:

4、实验代码

度相位,"0"码控制发180度相位

module psk_code(

clk,

m_ser_code_in,

dds_sin_data_in2,//10k正弦波

dds_sin_data_in3,//10k正弦波,相位相差180

psk_code_sin_out//

);

input clk;

input m_ser_code_in;

]dds_sin_data_in2;

]dds_sin_data_in3;

]psk_code_sin_out;

wire clk;

wire m_ser_code_in;

]dds_sin_data_in2;

]dds_sin_data_in3;

assign psk_code_sin_out=(m_ser_code_in)? dds_sin_data_in2:dds_sin_data_in3;

endmodule

2DPSK调制

1、2DPSK原理

在2PSK中,是利用载波相位的绝对数值来传送数字信息,因而称为绝对调相;2DPSK即是二进制差分相移键控,不利用载波相位传送数字信息,而是利用前后码元的相对相位变化传送数字信息。

实现相对调相的常用方法有:先对数字基带信号进行差分编码,将绝对编码转换成差分编码,然后再进行绝对调相。

将数字基带信号由绝对编码转成差分编码的方法为:将前一个输出码元和当前的输入码元进行异或,这样就可以产生相对码。

其原理图为:

2、实验设计

将伪随机信号发生器产生的m序列进行差分编码,再将相对码进行2DPSK调制,当出现"0"码则输出0度相位正弦波,"1"码控制发180度相位正弦波。

3、实验仿真

将绝对编码转为相对编码

2DPSK调制:

4、实验代码

度相位,"1"码控制发180度相位

module dpsk_code(

clk,

reset_n,//

m_ser_code_in,//PN序列输入

dpsk_code_out,//dpsk调制输出

dds_sin_data_in2,//10k正弦波

dds_sin_data_in3,//10k正弦波,相位相差180

dpsk_code_sin_out

);

input clk;

input reset_n;

input m_ser_code_in;

] dds_sin_data_in2;

] dds_sin_data_in3;

output dpsk_code_out;

]dpsk_code_sin_out;

wire clk;

wire reset_n;

wire m_ser_code_in;

] dds_sin_data_in2;

] dds_sin_data_in3;

reg dpsk_code_reg;

//差分编码

always@(posedge clk ornegedge reset_n)

begin

if(!reset_n)

begin

dpsk_code_reg<=1'b0;

end

else

dpsk_code_reg<=dpsk_code_reg ^ m_ser_code_in;//前一个码元与输入的码元进行异或

end

assign dpsk_code_out=dpsk_code_reg;

assign dpsk_code_sin_out=(dpsk_code_reg)? dds_sin_data_in3 : dds_sin_data_in2;

endmodule

每日推送不同科技解读,原创深耕解读当下科技,敬请关注微信公众号“科乎”。

基于FPGA的通信系统实验的更多相关文章

  1. 基于FPGA的飞机的小游戏

    基于FPGA的飞机的小游戏 实验原理 该实验主要分为4个模块,采用至上而下的设计方法进行设计.由50M的晶振电路提供时钟源,VGA显示控制模块.图形显示控制模块.移动模块的时钟为25M,由时钟分频电路 ...

  2. 基于SoCkit的opencl实验1-基础例程

    基于SoCkit的opencl实验1-基础例程 准备软硬件 Arrow SoCkit Board 4GB or larger microSD Card Quartus II v14.1 SoCEDS ...

  3. 基于FPGA的图像去噪

    目录 结构图 其中FPGA 控制模块为核心,通过它实现视频图像数据的获取.缓存.处理和控制各模块间通讯[1].由CCD 相机对目标成像,高速图像数据由camera link 实时传输[2],经信号转换 ...

  4. 基于FPGA的IIR滤波器

    基于FPGA的IIR滤波器                                                         by方阳 版权声明:本文为博主原创文章,转载请指明转载地址 ...

  5. 基于FPGA的VGA显示静态图片

    终于熬到暑假了,记过三四周的突击带考试,终于为我的大二画上了一个完整的句号,接下来终于可以静心去做自己想做的事情了,前一阵子报了一个线上培训班,学学Sobel边缘检测,之前一直在学习图像处理,但是因为 ...

  6. 基于FPGA的Uart接收图像数据至VGA显示

    系统框图 前面我们设计了基于FPGA的静态图片显示,接下来我们来做做基于FPGA的动态图片显示,本实验内容为:由PC端上位机软件通过串口发送一幅图像数据至FPGA,FPGA内部将图像数据存储,最后扫描 ...

  7. 基于FPGA的中值滤波算法实现

    在这一篇开篇之前,我需要解决一个问题,上一篇我们实现了基于FPGA的均值滤波算法的实现,最后的显示效果图上发现有一些黑白色的斑点,我以为是椒盐噪声,然后在做基于FPGA的中值滤波算法的实验时,我发现黑 ...

  8. 基于FPGA的肤色识别算法实现

    大家好,给大家介绍一下,这是基于FPGA的肤色识别算法实现. 我们今天这篇文章有两个内容一是实现基于FPGA的彩色图片转灰度实现,然后在这个基础上实现基于FPGA的肤色检测算法实现. 将彩色图像转化为 ...

  9. 基于FPGA的数字识别的实现

    欢迎大家关注我的微信公众号:FPGA开源工作室     基于FPGA的数字识别的实现二 作者:lee神 1 背景知识 1.1基于FPGA的数字识别的方法 通常,针对印刷体数字识别使用的算法有:基于模版 ...

随机推荐

  1. 1---------java调用NLPIR(ICTCLAS2016)实现分词功能

    备注:win7 64位系统,netbeans编程 NLPIR分词系统,前身是2000年发布的ICTCLAS,2009年更为现名.张华平博士打造. 实现步骤: 1.在Netbeans中,文件→新建项目→ ...

  2. java运算优先级

    列号 符号 名称 结合性(与操作数) 目数 说明 1 . 点 从左到右 双目 ( ) 圆括号 从左到右   [ ] 方括号 从左到右   2 + 正号 从右到左 单目 - 负号 从右到左 单目 ++ ...

  3. 理解 OpenStack Swift (3):监控和一些影响性能的因素 [Monitoring and Performance]

    本系列文章着重学习和研究OpenStack Swift,包括环境搭建.原理.架构.监控和性能等. (1)OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置 ( ...

  4. 使用::before和::after来完成尖角效果

    一.目标 目标完成下图效果: 二.完成 1.分析 在::before和::after伪元素的用法一文中有说到使用::befrore和::after可以完成一个六边形.这个案例是用一个#star-six ...

  5. 遇到一位ITer,一位出租车司机,必看。

    百木-ITer职业交流 群-北京 :141588103 今天去用户那,一个政府的事业单位.       遇到一位ITer,B同学,一个行业的,和他们公司既是合作关系,又是竞争关系.最近我们接了该单位的 ...

  6. 【转】selenium学习路线

    selenium学习路线 配置你的测试环境,真对你所学习语言,来配置你相应的selenium 测试环境.selenium 好比定义的语义---“问好”,假如你使用的是中文,为了表术问好,你的写法是“你 ...

  7. HDU 5139 Formula --离线处理

    题意就不说了,求公式. 解法: 稍加推导能够得出 : f(n) = n! * f(n-1) , 即其实是求: ∏(n!)  ,盲目地存下来是不行的,这时候看见条件: 数据组数 <= 100000 ...

  8. ural 1208 Legendary Teams Contest

    题意描述:给定K支队伍,每队三个队员,不同队伍之间队员可能部分重复,输出这些队员同时能够组成多少完整的队伍: DFS,利用DFS深度优先搜索,如果该队所有队员都没有被访问过,那么将该队计入结果,再去选 ...

  9. save()、saveOrUpdate()、merge()的区别

    一.Save() save()方法能够保存实体到数据库.假如两个实体之间有关系(例如employee表和address表有一对一关系),如果在没有事务的情况下调用这个方法保存employee这个实体, ...

  10. KSFramework常见问题:Excel如何进行SVN协作、差异比较?

    Excel如何进行SVN协作.差异比较? 嗯,这是一个令人困惑的问题.游戏开发.程序开发时,使用Excel可以添加文档.注释.图标.批注等等各种辅助信息: 但是Excel是非纯文本格式,在使用SVN. ...