目录
AM(Amplitude Modulation,幅度调制)是一种经典的模拟调制技术,通过载波信号的幅度变化来携带信息。在基于FPGA(Field-Programmable Gate Array)的实现中,AM信号的调制解调过程可以通过数字信号处理技术完成,这不仅提高了系统的灵活性和可靠性,还允许在硬件上实现更复杂的调制解调算法。AM调制解调过程涉及信号的幅度变化及恢复。通过调制,基带信号的信息被编码进载波的幅度中;而解调则是这一过程的逆向操作,通过提取载波幅度的变化来恢复原始信号。在数字领域,这一过程通过采样、量化、数字信号处理技术实现,提高了系统的稳定性和灵活性。尽管AM技术较为古老,但因其简单和对设备要求较低,仍被广泛应用于特定的通信场景中。
1.AM调制原理
AM调制的基本思想是将基带信号(通常是音频信号)的幅度变化映射到高频载波信号的幅度上。调制信号m(t)通常限制在[-1, 1]范围内,载波信号为c(t)=Accos(2πfct),其中Ac是载波幅度,fc是载波频率。AM信号s(t)可以表示为:
这里,ka是调制指数,表示基带信号幅度变化对载波幅度影响的程度。
2.数字实现中的采样和量化
在FPGA实现中,首先需要对模拟信号进行采样和量化,变为数字信号。假设采样频率为fs,则采样后的信号可以表示为m[n]和c[n],其中n是离散时间索引。对于载波信号,可以预先生成一个正弦波表,或者实时计算。
数字AM调制的过程可以表示为:
其中,c[n]是采样后的载波信号,m[n]是基带信号的采样值。在FPGA中,这可以通过乘法器和累加器硬件单元实现,将基带信号的幅度调整值与载波幅度相加,然后与载波信号相乘得到AM调制信号。
AM信号的解调通常采用包络检波法。在数字域中,这可以通过低通滤波器(LPF)和包络检测器实现。假设采样后的AM信号为r[n],其解调流程大致为:
3.Verilog实现
MATLAB部分:
clc;
clear;
close all;
%单位10k
fs = 6400;%被调信号采样频率64M
fc1= 100; %载波频率,1M
fc2= 100; %这个频率通过开发板上的按键进行调整频率,1M
N = 10000;%FFT的长度
n = 0:N-2;
t = n/fs;
Am = 1;
A0 = 0.8;
x0 = Am*sin(2*pi*20*t);%被调信号
c1 = cos(2*pi*fc1*t);
c2 = cos(2*pi*fc2*t);
x1 = x0+A0;
x1 = awgn(x1,15,'measured');
%这个部分模拟ADC采样
figure;
subplot(311);
plot(t,x0);
title('被调信号');
axis([0 1 -2 2]);
%调制
y=c1.*x1;
subplot(312);
plot(t,y);
axis([0 1 -2.5 2.5]);
title('已调信号')
%解调
sw=y.*c2;
[b,a]=butter(7,0.025);
outx=filter(b,a,sw);
out=outx-A0/2;
subplot(313)
plot(t,out);
title('解调信号');
axis([0 1 1.2*min(out) 1.2*max(out)]);
FPGA部分:
`timescale 1 ns / 1 ns
module tops(
i_clk,
i_rst,
i_ADC,
i_sel,
i_adjust1,
i_adjust2,
o_ADCLK2,
o_DACLK2,
o_DAC
);
input i_clk;
input i_rst;
input signed[9:0] i_ADC;
input i_sel;
input i_adjust1;
input i_adjust2;
output o_ADCLK2;
output o_DACLK2;
output signed[9:0]o_DAC;
wire CLK2;
pllclk2 pllclk2_u(
.areset (i_rst),
.inclk0 (i_clk),
.c0 (o_ADCLK2),
.c1 (CLK2),
.locked ()
);
assign o_DACLK2 = ~CLK2;
wire signed[7:0]tmps;
AMdemods AMdemods_u(
.i_clk (CLK2),
.i_rst (i_rst),
.i_din (i_ADC[9:2]),
.i_sel (i_sel),
.i_adjust1 (i_adjust1),
.i_adjust2 (i_adjust2),
.o_am (),
.o_dout (tmps)
);
assign o_DAC = {tmps[7],tmps[7],tmps};
endmodule
up4119
4.测试结果
首先,使用MATLAB对AM收音机的基本功能进行验证
上述第一个图是实际的信号,第二个图是接收到的AM调制信号,第三个AM调制信号解调之后的信号。
综上所述,基于FPGA的AM信号调制解调通过数字信号处理技术实现了从模拟信号到数字信号的高效转换和处理。通过灵活配置硬件资源,FPGA能够提供高性能、低延迟的AM通信解决方案,适用于多种通信系统的设计与实现。