通信工程实验报告
班级: 姓名: 学号:
实验一BDPSK 调制解调器设计
一、实验目的
1. 掌握 BDPSK 的调制和解调原理。
2. 掌握倍频和分频的概念以及分频的实现方法。
3. 用 VerilogHDL 硬件描述语言建模,实现 BDPSK 基带调制解调系统。
二、实验说明
由于在 BPSK 解调中,相干载波恢复时可能出现相位模糊,所以在实际应用中经常采用 BDPSK(二进制差分相移键控)方式。BDPSK 方式不需要在解调端恢复相干参考信号,非相干接收机容易制造而且成本低,因此在无线通信系统中被广泛使用。
1.BDPSK 基带调制系统结构
在 BDPSK 调制系统中,输入的二进制序列先进行差分编码,然后再用 BPSK 调制器调制。一个基带的 BDPSK 调制系统如图 1 所示。
时钟 复位
时钟分频 伪随机序列 发生器 差分 编码 BPSK 调制 调制波形 (采样值)输出
BDPSK 基带调制系统 BDPSK 基带调制系统 图 1
2.差分编码差分编码原理为:
设计一个模二加法器和一个延迟单元,将当前时钟周期的绝对码信号和上一时钟周期经过一个码元延时的相对码信号进行模二加法(异或),得到当前时钟周期的相对码,并反复进行。延迟单元的功能可以用硬件电路中的寄存器来实现,用它作为保存上一次生成的相对码的容器,然后在下个时序到来时与当前的绝对码进行模二加得到输出。
绝对码
(伪随机序列 )
相对码 (差分码)
模二加 (异或) 延迟 Ts
图 2 差分编码原理
三、实验结果
1. 调制系统中各子模块的 VerilogHDL 代码及注释。
差分编码:
module Chafen(dataPN, clk1, reset_n, dataCF); input clk1; input dataPN; input reset_n; output dataCF; reg c;
always @( posedge clk1 or negedge reset_n ) begin
if(!reset_n) begin
c <= 1'b0; end else begin
c <= c^dataPN; end end
assign dataCF = c; endmodule 时钟分频器: module div( clk, reset_n, clk1 );
input clk; input reset_n; output clk1; reg [5 : 0] c; reg out;
always@(posedge clk or negedge reset_n) begin
if(!reset_n) begin out <= 0;
c = 6'b000000; end else begin
out <= c[5]; c <= c + 1; end end
assign clk1 = out; endmodule
伪随机序列发生器: module PN_Seq( clk1, reset_n, dataPN );
input clk1; input reset_n; output dataPN; reg [ 7 : 1 ] c;
always @( posedge clk1 or negedge reset_n ) begin
/* Your Design */ if(!reset_n) begin
c <=7'b0001111; end else
begin //7级M序列编码
c[1] <= c[2]^c[3]^c[4]^c[7]; c[7] <= c[6]; c[6] <= c[5]; c[5] <= c[4]; c[4] <= c[3]; c[3] <= c[2]; c[2] <= c[1]; end end
assign dataPN = c[7];