我是靠谱客的博主 耍酷砖头,最近开发中收集的这篇文章主要介绍【QPSK中频】基于FPGA的QPSK中频信号产生模块verilog设计1.软件版本2.本算法理论知识3.部分源码4.仿真效果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.软件版本

matlab2013b+quartusii

2.本算法理论知识

QPSK信号可以表示为:

QPSK信号的组成方框图如图1所示。

 下面,我们将基于这个结构设计一个QPSK调制信号发送模块。

3.部分源码

`timescale 1ns / 1ps
module tops(
            i_clk,
            i_rst,
				o_signal,
				o_I,
				o_Q,
				o_I_filter,
				o_Q_filter,
				o_I_cos,
				o_Q_sin,
				o_R
            );

input              i_clk;
input              i_rst;
output             o_signal;
output signed[1:0] o_I;
output signed[1:0] o_Q;
output signed[15:0]o_I_filter;
output signed[15:0]o_Q_filter;
output signed[15:0]o_I_cos;
output signed[15:0]o_Q_sin;
output signed[15:0]o_R;

wire clk4m;
wire clk8m;
DCM DCM_u(
          .i_clk     (i_clk),
			 .i_rst     (i_rst),
			 .o_clk_8m1 (clk4m),
			 .o_clk_8m2 (clk8m)
          );
			  
signal signal_u(
              .i_clk (clk4m),
              .i_rst (i_rst),
				  .o_dout(o_signal)
              );

s2p s2p_u(
           .i_clk    (clk4m),
			  .i_clk2   (i_clk),
			  .i_rst    (i_rst),
			  .i_signal (o_signal),
			  .o_I      (o_I),
			  .o_Q      (o_Q)
          );

filter filter_u1(
                .i_clk (i_clk),
				    .i_rst (i_rst),
				    .i_din (o_I),
				    .o_dout(o_I_filter)
               );			 
			 
filter filter_u2(
                .i_clk (i_clk),
				    .i_rst (i_rst),
				    .i_din (o_Q),
				    .o_dout(o_Q_filter)
               );				 

					
					
wire signed[15:0]fsin;
wire signed[15:0]fcos;					 
					 
NCO_ip NCO_ip_u(
	         .phi_inc_i (16'd16384),
	         .clk       (i_clk),
	         .reset_n   (~i_rst),
	         .clken     (1'b1),
	         .fsin_o    (fsin),
	         .fcos_o    (fcos),
	         .out_valid ()
	         );

 
reg signed[31:0]r_I_cos;
reg signed[31:0]r_Q_sin; 				 
		
always @(posedge i_clk or posedge i_rst)
begin
     if(i_rst)
	  begin
	  r_I_cos <= 32'd0;
	  r_Q_sin <= 32'd0;
	  end
else begin
	  r_I_cos <= fcos*o_I_filter;
	  r_Q_sin <= fsin*o_Q_filter;
     end
end
assign o_I_cos = r_I_cos[29:14];
assign o_Q_sin = r_Q_sin[29:14];
		
assign o_R = o_I_cos + o_Q_sin;						
					
endmodule 

4.仿真效果

通过设计,整个系统的RTL结构图如下所示:

仿真结果如下所示:

A01-110

最后

以上就是耍酷砖头为你收集整理的【QPSK中频】基于FPGA的QPSK中频信号产生模块verilog设计1.软件版本2.本算法理论知识3.部分源码4.仿真效果的全部内容,希望文章能够帮你解决【QPSK中频】基于FPGA的QPSK中频信号产生模块verilog设计1.软件版本2.本算法理论知识3.部分源码4.仿真效果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部