QPSK调制和解调设计VHDL代码Quartus仿真
名称:QPSK调制和解调设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
QPSK调制和解调
使用VHDL语言进行QPSK调制和解调,并进行仿真
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件

2. 程序文件



3. 程序编译

4. Testbench

5. 仿真图
调制过程:首先通过m序列产生随机信号,作为调制信号,再将改信号转换为2为并行数
据,通过在正弦波基础上改变相位得到QPSK信号。

5.1 QPSK调制部分



解调过程:将QPSK信号与sin和cos载波相乘,再对相乘的结果进行滤波,即可解调得到原信号。

5.2 QPSK解调部分




部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; --载波模块 ENTITY carrier_sin_cos IS PORT ( clk : IN STD_LOGIC;--时钟 rst : IN STD_LOGIC;--复位 cos_wave : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--cos波形 sin_wave : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--sin波形 ); END carrier_sin_cos; ARCHITECTURE behave OF carrier_sin_cos IS SIGNAL valu : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000"; SIGNAL count : STD_LOGIC_VECTOR(4 DOWNTO 0) := "00000"; SIGNAL valu_2 : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000"; SIGNAL count_2 : STD_LOGIC_VECTOR(4 DOWNTO 0) := "00000"; BEGIN PROCESS (clk) BEGIN IF (clk'EVENT AND clk = '1') THEN IF (rst = '1') THEN count <= "00000"; ELSIF (count = "11111") THEN count <= "00000"; ELSE count <= count + "00001";--count计数 END IF; END IF; END PROCESS; PROCESS (clk) BEGIN IF (clk'EVENT AND clk = '1') THEN IF (rst = '1') THEN valu <= "10000000"; ELSE
代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » QPSK调制和解调设计VHDL代码Quartus仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » QPSK调制和解调设计VHDL代码Quartus仿真
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm