本人不定时总结个人在学习和工作中经验和心得,以及一些基本的数理知识,欢迎各位加关注和留言交流。

和“无崖子”一起练“内功”

21世界是数字时代,现代科技加上“数字”二字就立马变得高大尚了,但是合为“数字”可能大多数还停留在阿拉伯数字1‘2‘3‘4阶段,欲知何为“数字”关注“无崖子”我们慢慢道来。

今天我们讲解最简单的数字通信,《二进制幅度调制》,幅度调制是利用正弦波幅度变化来携带信息的,我们知道一个正弦波有幅度、相位、和频率三个参数,用信号改变正弦波幅度的方式叫幅度调制,用信号改变正弦波相位的方式叫相位调制,用信号改变正弦波频率的方式不用再多说,叫频率调制。

由于数字信号只有0101的二值状态,0101的二值状态怎样加载到正弦波上呢?

下面首先以二进制幅度调制为例介绍:

二进制幅度调制一种方式是二进制1时有正弦信号,二进制0时无正弦信号。

如下图所示即为二进制0101调制正弦波信号,进而把二进制数字加载到正弦信号上。

原理很简单,但是怎么实现呢?

在FPGA中实现方式如下:

PLL产生一路100MHz时钟C0,作为NCO的系统时钟,产生另一路1MHz信号,作为模拟二进制信号C1,给AM调制器。

NCO其本质为一个DDS(数字频率综合器)是用数字方式产生正弦波信号,其IP配置方式如下:

1,

2,选择12bit位,时钟频率100M

3,选择单端信号输出

4,AM调制器程序如下:

Library IEEE;
USE IEEE.;
USE IEEE.;
USE IEEE.;
Entity connect is
port
(
sig_in:in std_logic;–读数据触发
carry_in:in std_logic_vector(11 downto 0);–复位
sig_out:out std_logic_vector(11 downto 0)–滤波后信号输出
);
end connect;
architecture behave of connect is
begin
sig_out(11)<=(sig_in)and(carry_in(11));
sig_out(10)<=(sig_in)and(carry_in(10));
sig_out(9)<=(sig_in)and(carry_in(9));
sig_out(8)<=(sig_in)and(carry_in(8));
sig_out(7)<=(sig_in)and(carry_in(7));
sig_out(6)<=(sig_in)and(carry_in(6));
sig_out(5)<=(sig_in)and(carry_in(5));
sig_out(4)<=(sig_in)and(carry_in(4));
sig_out(3)<=(sig_in)and(carry_in(3));
sig_out(2)<=(sig_in)and(carry_in(2));
sig_out(1)<=(sig_in)and(carry_in(1));
sig_out(0)<=(sig_in)and(carry_in(0));
end behave;

5,输出结果如下:

12bit数据经DAC转化成调制后的模拟信号,经过上变频即可把二进制调幅发射出去实现通信或广播功能。

后记:

二进制幅度调制如此简单有哪些弊端呢?欲知后事请加关注,后续篇幅解答和解决。

相关推荐