AM调制的FPGA实现原理和步骤

时间:2025-09-16  作者:Diven  阅读:0

一、说明:

功能:AM调制

AM调制的FPGA实现原理和步骤

平台:Vivado 2016.4 和 Matlab R2017a

二、原理:

1. AM调制原理

AM已调信号的时域表达式:

已调信号的频域表达式:

本质上AM调制就是频谱的搬移。

AM调制的系统框图

将调制信号加上一个直流分量,保证信号的最小值大于零,然后再和载波相乘,得到已调信号。

三、AM调制的FPGA实现

1.产生调制信号和载波信号

调用ROM IP核在FPGA内部产生两路余弦信号,其中一路信号用于模拟外部输入的调制信号,另一路用作载波信号。

在配置ROM IP核之前,需要用Matlab生.coe文件,存放在ROM核里。

Matlab生成.coe文件:

%---------------------------------%

width=8; %设置rom的位宽

depth=1024; %设置rom的深度

%---------------------------------%

x=linspace(0,2*pi,depth); %在一个周期内产生depth个采样点

y_cos=cos(x); %生成余弦函数

%y_cos=sin(x); %生成正弦函数

%y_cos=round(y_cos*(2^(width-1)-1))+2^(width-1)-1; %将数据转化成整数,生成无符号数

y_cos=round(y_cos*(2^(width-1)-1)); %将数据转化成整数,生成有符号数

plot(x,y_cos); %绘图

fid = fopen(‘E:WorkspaceDDSDesignIP_Corecos.coe’,‘wt’);

fprintf(fid,‘memory_initialization_radix = 10;memory_initialization_vector = ’);

for i = 1 : depth

if mod(i-1,8) == 0

fprintf(fid,‘’);

end

fprintf(fid,‘%6d,’,y_cos(i));

end

fclose(fid); %关闭文件

生成.coe文件后就可以进行IP核的配置了。

ROM核具体配置:

配置完IP核后,编写控制模块,产生两路信号。其中,调制信号上叠加的直流分量的大小为调制信号的峰值,这样将得到调制度为100%的已调信号。如果要得到不同的调制度,则需要叠加不同大小的直流分量,同时需要注意定义的数据位宽,防止数据溢出。

产生载波和带有直流分量的调制信号:

Module cos_make(

input clk,

input rst_n,

output reg [7:0] cos_s,

output reg signed [7:0] cos_c

);

//------------------------------------//

parameter freq_s = 32‘d429497; //调制信号频率10k

parameter freq_c = 32’d42949673; //载波频率1M

parameter cnt_width = 8‘d32;

//------------------------------------//

//------------------------------------//

reg [cnt_width-1:0] cnt_s = 0;

reg [cnt_width-1:0] cnt_c = 0;

wire [9:0] addr_s;

wire [9:0] addr_c;

always @(posedge clk or negedge rst_n) begin

if(!rst_n) begin

cnt_s 《= 0;

cnt_c 《= 0;

end

else begin

cnt_s 《= cnt_s + freq_s;

cnt_c 《= cnt_c + freq_c;

end

end

assign addr_s = cnt_s[cnt_width-1:cnt_width-10];

assign addr_c = cnt_c[cnt_width-1:cnt_width-10];

//------------------------------------//

//------------调用ROM核----------------//

wire signed [7:0] cos_s_r;

wire signed [7:0] cos_c_r;

ROM ROM_inst(

.clka (clk),

.addra (addr_s),

.douta (cos_s_r),

.clkb (clk),

.addrb (addr_c),

.doutb (cos_c_r)

);

always @(posedge clk or negedge rst_n) begin

if(!rst_n) begin

cos_s 《= 0;

cos_c 《= 0;

end

else begin

cos_s 《= cos_s_r + 8 ’d128; //加上大小为峰值的直流分量

cos_c 《= cos_c_r;

end

end

endModule

2.生成AM调制信号

得到两路信号后就可以用乘法器将两路信号相乘,得到已调信号。

乘法器具体配置:

AM调制的顶层模块:

module modulate(

input clk,

input rst_n,

output signed [15:0] AM_mod

);

wire [7:0] cos_s;

wire signed [7:0] cos_c;

//------------调用出波模块------------//

cos_make cos_make_inst0(

.clk (clk),

.rst_n (rst_n),

.cos_s (cos_s),

.cos_c (cos_c)

);

//-----------------------------------//

//------------调用乘法器--------------//

MULT MULT_inst1(

.CLK (clk),

.A (cos_s),

.B (cos_c),

.P (AM_mod)

);

endmodule

3.仿真调制结果

以上AM调制过程基本完成,但是正确与否还需要通过仿真来确定,接下来编写仿真用的测试模块。

TestBeach的编写:

timescale 1ns/1ps

module tb_AM();

//---------接口设置----------//

reg sclk;

reg rst_n;

wire signed [15:0] AM_mod;

//--------------------------//

initial sclk = 1;

always #5 sclk = ~sclk; //100M时钟

initial begin

rst_n = 0;

#500

rst_n = 1;

end

//--------------------------//

modulate modulate_inst0(

.clk (sclk),

.rst_n (rst_n),

.AM_mod (AM_mod)

);

endmodule

在Vivado中将各个文件添加进工程后,运行仿真。

仿真结果如下:

已调信号能明显看到包络,并且包络的频率同调制信号一致,表明AM调制正确。

猜您喜欢

电子元件中,可调电容和变容二极管是常见的两种元件。都有各自的特点和应用场景。本文将探讨这两者的优缺点,帮助大家更好选择。可调电容的定义可调电容是可以调节电容值的...
2025-03-22 23:31:39

视觉技术在许多自动化活动中发挥着关键作用,制造、娱乐、交通运输和医疗保健等领域更是越来越重视发展视觉系统。市场对快速、准确成像的需求愈发迫切,同时分析技术和人工...
2024-12-20 16:15:00

近日,依维柯旗下欧胜车型将应用黑芝麻智能与中科慧眼联合打造的智能双目限高防撞预警系统,将进行小批量装车验证,预计于2023年第四季度量产。黑芝麻智能针对依维柯...
2023-08-30 10:27:00

当今电子设备日益小型化、多功能化的趋势下,对电源管理的要求也越来越高。[专用电源管理IC型号]作为一款专为[应用领域]设计的电源管理芯片,能够提供高效、稳定、可...
2024-05-25 00:00:00

当今快节奏的移动生活中,智能手机、笔记本电脑、电动汽车等电子设备已经成为我们生活中重要的一部分。而这些设备的续航能力,很大程度上取决于一颗小小的芯片——电池管理...
2024-01-09 00:00:00

SAW谐振器(无源)是基于声表面波技术的电子组件,应用于通信、传感器和信号处理等领域。其主要作用是提供高精度的频率选择和稳定的信号输出。由于其无源特性,SAW谐...
2009-08-16 00:00:00

便携式设备的便携性是与电池的发展息息相关的,从最初的铅酸电池、镍镉(Ni-Cd)电池发展到镍氢(Ni-H)、锂离子(Li-ion)电池一直到最近的锂聚合物(Li...
2020-08-06 16:48:00

打钉枪是高效的工具,应用于木工、建筑、家具制造等领域。通过压缩空气或电力驱动,将钉子快速而精准地打入各种材料中,大大提高了工作效率。与传统手动钉子相比,打钉枪不...
2018-02-14 00:00:00

贴片电阻阻值通常用数字和字母标记在表面。三位数字标记法最常见,前两位数字表示有效数值,第三位数字表示10的幂次方(乘数)。例如,标记为472的电阻,阻值为47×...
2024-11-29 10:25:39

防尘滤棉是现代生活中不可少的空气过滤材料,应用于家居、工业和商业场所。根据材料的类型和结构,防尘滤棉主要分为几种不同的类型。聚酯纤维滤棉优异的过滤性能和耐用性受...
2010-07-10 00:00:00