没有合适的资源?快使用搜索试试~ 我知道了~
首页基带码型变换设计密勒码码型变换
基带码型变换设计密勒码码型变换
需积分: 20 10 下载量 152 浏览量
更新于2023-06-25
评论
收藏 3.47MB DOC 举报
基带码型变换设计密勒码码型变换。设计密勒码的编译码电路。 输入信号为24位的周期NRZ码。编译码延时小于3个码元宽度。
资源详情
资源评论
资源推荐
基带码型变换设计密勒码码型变换
1 技术指标
1) 设计密勒码的编译码电路。
2) 输入信号为 24 位的周期 NRZ 码。
3) 编译码延时小于 3 个码元宽度。
2 基本原理
我的课程设计选题是《基带码型变换设计 —— 密勒码 码型变换》,也就是设计电
路实现密勒码的编码、解码过程。电路设计的重点在于按照密勒码的编码规则实现基带
码,也就是信源码的逻辑变换。为了达到这个过程,我们需要先分析清楚密勒码的特点。
故基本原理这一部分我分为两部分进行阐述,分别是 2.1 密勒码原理分析;2.2 编、解码
设想及思路。
2.1 密勒码原理分析
查阅《通信原理》(樊昌信著 国防工业出版社第 6 版)可知密勒码相关信息如下:
“M ILLER 码又称延迟调制码。其编码规则是二进制信息“1”码用码元间隔中心点出现跃变
表示, 即用“10”或“01”表示; 二进制信息“0”码有两种情况: 单个“0”时, 在码元间隔内不出现电
平跃变, 且与相邻码元的边界处也不跃变; 在连“0”时, 在两个“0”码的边界处出现电平跃变,
即“00”与“11”交替。M ILLER 码最初用于气象卫星和磁记录, 现在也用于低速基带数传机。”
分析可知,其编码规则可以整理如下表 1:
表 1. 密勒码的编码规则
由编码规则,我们可以绘出密勒码的波形。在此参照教材上给的提示,我们也画出双
相 BPH 码的波形,分析 NRZ 码,密勒码,BPH 码之间的关系。此处的 BPH 用‘01’表示数
字信号‘0’;用‘10’表示数字信号‘1’。绘制波形如图 1,原始 NRZ 码为‘111001010000’。
1
图 1. 对应 NRZ 码的密勒码波形图
分析波形我们可以发现,BPH 码的下跳沿对应着密勒码的跳变沿。参考教材所给的
提示,我们可以用 BPH 码下跳沿去触发双稳态电路,即可输出密勒码。
3 设计方案功能分析及其比较
结合本次的设计内容为了方便阐述,在整理所有的设计方案后,我将码型转换的原
理分为 5 种。下面分别阐述其原理及设计的想法来源。
3.1 方案一
方案一核心思想史以 VHDL 的穷举编程实现密勒码的编解码,也是我最早得出的设
计。顾名思义,就是在程序中利用各种顺序语句罗列出编码时可能碰到的所有的情形,
并给出对应的编码解。所以,找到那几个条件因子是这种方法最核心的地方。分析密勒
码的编码规则我们可以发现以下规则:
1) 密勒码用‘10’和‘01’表示信号‘1’,用‘00’和‘11’表示信号‘0’。
2) 两个信源码之间对应的密勒码没有跳变,也就是说当前码的编码到底是哪一个,
需要考虑前一个码的情况。
综合以上两条,设计出以下判断逻辑:信号输入为 DATA,简称 D。信号输入时刻前
一位为 Sav1 简写为 S1,对应的密勒码输出为 Sav2 简写为 S2。 输出为 Do。程序流程图
如图 2。
图 2. VHDL 穷举法程序流程图
即当前输入信号 D 有 0,1 两种可能;前一密勒输出有 00,11,01,10 四种情况;综
2
合起来就是 8 种情况,以 D 及 S2 为条件因子,作为顺序语句的条件。
对应此逻辑以“IF THEN ELSIF” 语句编写了如下程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity miller_encoder is
port(datain :in std_logic;
en :in std_logic;
clk :in std_logic;
encodeout:out std_logic_vector(1 downto 0)
);
end ;
architecture func of miller_encoder is
begin
process(en,clk,datain)
variable sav1 :std_logic:='1';
variable sav2 :std_logic_vector(1 downto 0):="01";
begin
if(en='0') then
encodeout<="00";
else
if(clk 'event and clk='0')then
if(datain='1' and sav1='1' and sav2="01") then
encodeout<="10";
sav2:="10";
sav1:='1';
elsif(datain='1' and sav1='1' and sav2="10") then
encodeout<="01";
sav2:="01";
sav1:='1';
elsif(datain='0' and sav1='1' and sav2="01") then
encodeout<="11";
sav2:="11";
sav1:='0';
elsif(datain='0' and sav1='1' and sav2="10") then
encodeout<="00";
sav2:="00";
sav1:='0';
elsif(datain='0' and sav1='0' and sav2="00") then
encodeout<="11";
sav2:="11";
sav1:='0';
elsif(datain='0' and sav1='0' and sav2="11") then
3
encodeout<="00";
sav2:="11";
sav1:='0';
elsif(datain='1' and sav1='0' and sav2="00") then
encodeout<="01";
sav2:="01";
sav1:='1';
elsif(datain='1' and sav1='0' and sav2="11") then
encodeout<="10";
sav2:="10";
sav1:='1';
end if;
end if;
end if;
end process;
end func;
同理,逆向采用穷举法,可以实现解码。
以下为方案一的解码 VHDL 程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity miller_decoder is
port(encodein :in std_logic_vector(1 downto 0);
en :in std_logic;
clk :in std_logic;
decodeout:out std_logic
);
end ;
architecture func of miller_decoder is
begin
process(en,clk,encodein)
begin
if(en='0') then
decodeout<='0';
else
if(clk 'event and clk='0') then
if(encodein="11" or encodein="00") then
decodeout<='0';
elsif(encodein="10" or encodein="01") then
decodeout<='1';
end if;
end if;
4
end if;
end process;
end func;
3. 2 方案二
方案二的核心是利用数据选择器与移位寄存器实现密勒码的编解码。
其设计思路如下:
编码时:
1) 利用简单门电路和数据选择器实现 BPH 码编码。
2) 使用 BPH 码触发双稳态电路,生成密勒码。
解码时:
1) 利用密勒码的性质,‘01’,‘ 10’表示 1,其两位异或得到输出。
2) 利用移位寄存器将串行的 01,10,00,11,变为并行。
3) 再利用 BS 信号两位异或,即得到译码。
电路图如下:
图 3. 方案二电路原理图
3. 3 方案三
方案三是利用 VHDL 编程,实现 BPH 码的编码,然后将其输出接入双稳态电路,触
发产生密勒码。BPH 码的编码规则取以‘01’表示‘0’,‘10’表示‘1’。因比较简单所以省略了
逻辑图,直接给出编码程序。程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY double IS
PORT(clk,clr,codein:IN STD_LOGIC;
codeout:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
count:buffer STD_LOGIC );
END double;
5
剩余26页未读,继续阅读
chang_shengyuan
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0