verilog-dpsk调制与解调Word格式.doc
- 文档编号:14571437
- 上传时间:2022-10-23
- 格式:DOC
- 页数:4
- 大小:386.50KB
verilog-dpsk调制与解调Word格式.doc
《verilog-dpsk调制与解调Word格式.doc》由会员分享,可在线阅读,更多相关《verilog-dpsk调制与解调Word格式.doc(4页珍藏版)》请在冰豆网上搜索。
reg[3:
0]carriers;
//载波
assignM_signal=(yreg==2'
b00)?
carriers[2]:
(yreg==2'
b01)?
carriers[1]:
b10)?
carriers[0]:
b11)?
carriers[3]:
0;
//根据yreg给M_signal赋载波
always@(posedgeclkornegedgerst)
if(!
rst)
count<
=3'
b000;
else
=count+1;
//计数器的处理
xreg<
=2'
b00;
elseif(count[1:
0]==2'
b11)
={xreg[0],signal};
else
=xreg;
//每四个时钟周期对调制信号采样,采样结果存入队列缓冲器xreg
begin
carriers<
=4'
b0000;
yreg<
end
else
case(count)
3'
b000:
carriers<
b1100;
b010:
carriers<
b1001;
b100:
b0011;
b110:
begin
yreg<
//每八个时钟周期将xreg的值存入yreg,作为一个调制单元
carriers<
b0110;
end
default:
=carriers;
endcase
end//载波赋值
endmodule
moduleqpsk_de(clk,rst,de_M_signal,de_signal);
inputde_M_signal;
//待解调的信号
outputde_signal;
//已解调的信号
reg[7:
0]temp;
0]temp2;
//队列缓冲器
wire[1:
0]y1;
assigny1=(rst==0)?
2'
b00:
(temp==8'
b11110000)?
(temp==8'
b11000011)?
b01:
b00001111)?
b10:
b00111100)?
b11:
//根据temp的值(即输入信号的相位)给y1赋值
assignde_signal=(count[2]==0)?
y1[0]:
y1[1];
//
if(!
rst)
begin
b101;
temp2<
=8'
b0;
temp<
end
else
={temp2[6:
0],de_M_signal};
//每个clk上升沿对输入信号采样
if(count==3'
b011)
temp<
=temp2;
//每八个时钟周期将temp2中的值赋给temp
else
=temp;
moduleqpsk_de_qpsk(CLK,RST1,RST2,SIG,OUT);
inputCLK;
inputRST1;
inputRST2;
inputSIG;
outputOUT;
wirewir1;
qpskM1(CLK,RST1,SIG,wir1);
qpsk_deM2(CLK,RST2,wir1,OUT);
//以上两个模块的实例化
Endmodule
调制信号
相位
00
01
10
11
调制框图:
采样判断移相输出
解调框图:
采样判断赋值 输出
仿真波形
1
2
3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- verilog dpsk 调制 解调