(式9)
将式(7)、式(8)和式(9)代入式(6),可得
2ASK信号的功率谱的特点
2ASK信号的功率谱由连续谱和离散谱两部分组成 2ASK信号的带宽是基带脉冲波形带宽的两倍
2 2ASK的实现方案
2.1 2ASK信号的调制
2ASK信号的产生实现比较简单,如图2-1:
图2-1 2ASK调制信号的产生框图
输入信号是01信号,通过二选一开关,当信号为零时直接输出0,当信号为一时,使信号和载波相乘,这样就可以产生2ASK调制信号。
载波可以用正弦波,也可以用数字载波。如用正弦波作为载波,则在解调的时候必须用上面原理介绍的解调方法。如选用数字载波,则在解调时只需要通过对一个信号周期内的调制信号进行脉冲计数,便可实现解调。
2.2 2ASK信号的解调
以正弦波为载波的2ASK解调在原理部分已经介绍,在此不再赘述。下面介绍以数字信号为载波的2ASK信号的解调。 解调框图如下:
6
图2-2 以数字信号为载波的2ASK信号解调框图
时钟计数器进行以信号周期为周期的循环计数,为判别模块提供判别时刻,调制信号计数器也是以信号周期为周期的循环计数器,将判别时刻的计数值送入判别模块进行判别,由此实现解调。
2.3 方案的选择
根据前面的分析,可以知道。用数字信号为载波来实现2ASK相对容易很多,原理也简单。传统的以正弦波为载波的2ASK,实现起来可以增进对通信原理的理解。两种实现方法各有各自的优点,本次实验从容易的开始做,因此选用数字载波。
3 2ASK的FPGA实现
3.1 2ASK调制解调的FPGA实现
3.1.1 2ASK调制部分的代码
module two_ASK(clk,reset,en,sig_S,out_rdy,carriers,modata);
input clk; input reset;
input en; output carriers; output sig_S,out_rdy;
7
output modata;
reg [1:0] cnt; reg carriers; wire modata; reg sig_S,out_rdy;
reg[2:0] addr; reg[2:0] count;
parameter COUNT=3'd7; always @(posedge clk) begin:initial_control if(reset) begin addr<=3'd0;
count<=3'd0; end
else if(en) begin
count<=count+1; if(count==COUNT) begin
always @(posedge clk) begin:Red_sig if(en) case(addr) 4'd0:sig_S<=0; 4'd1:sig_S<=0;
8
addr<=addr+1;
end
else addr<=addr; out_rdy<=1;
end
end
4'd2:sig_S<=1; 4'd3:sig_S<=0; 4'd4:sig_S<=0; 4'd5:sig_S<=1; 4'd6:sig_S<=1; 4'd7:sig_S<=1; endcase end
// 下面实现载波产生
always@(posedge clk) begin
endmodule
程序的前面一部分是产生01信号,后面的是产生载波,然后是使01信号和载波相乘,实现了调制。
assign modata=sig_S&carriers; if(reset)
begin cnt<=2'b00; carriers<=0; end else if(en) cnt<=cnt+1;
carriers<=~cnt[1];
end
3.1.2 2ASK解调部分代码
module ASK_two(clk,reset,in_rdy,modata,demodata,out_rdy,cnt,k);
input clk,reset,in_rdy; input modata; output demodata;
9
output out_rdy;
reg demodata; reg out_rdy;
output [2:0] cnt; output [2:0] k;
reg [2:0] cnt; reg [2:0] k; //时钟计数器 always@(posedge clk) begin if(reset) cnt<=3'b00; else if(in_rdy) begin if(cnt==3'b111) cnt<=3'b00; else
cnt<=cnt+1; end
end
// 2ASK调制信号计数器
always @(posedge clk) begin if(reset) k <= 3'b000; else if(in_rdy) begin if(modata) k<= k+1;
else k<=k;
//判别模块
// 此过程完成2_ASK信号的解调10