摘要
本实验基于FPGA开发板DE2-115和AD/DA板THDB-ADA设计一个信号产生与频谱分析的系统。运用Quartus II软件进行编程,首先,设计一个参数可变的LFM信号发生器和数字FIR滤波器。然后,通过DAC将其转换为模拟中频信号输出,再对外接信号进行ADC采样,最后,对信号进行频谱分析。
关键词:FPGA, Quartus II, LFM, ADC/DAC
一、实验器材
1、FPGA
FPGA(Field-Programmable Gate Array)是一种半定制的集成数字芯片,其最大特点是现场可编程。内部结构由CLB、RAM、DCM、IOB、Interconnect等构成。
图1 FPGA内部结构
FPGA开发的一般流程:
设计输入:硬件描述语言,IP核,原理图;
编译:综合,Fitter,时序;
仿真:Modelsim;
下载调试:SignalTap。
2、DE2-115开发板
图2 开发板示意图
2.1 开发板资源
Altera Cyclone® IV 4CE115 FPGA 器件
Altera 串行配置芯片: EPCS64
USB Blaster 在线编程;也支持JTAG和AS可编程方式
2MB SRAM
两片 64MB SDRAM
8MB Flash memory
SD卡插槽
4个按钮
18个滑动开关
18个红色LED
9个绿色LED
50M时钟源
24位音频编解码器,麦克风插孔
电视解码
RJ45 2G以太网接口
VGA连接器
含有USB_A和USB_B连接器的主从控制器
RS232收发器和9针连接器
PS/2鼠标和键盘连接器
红外接收器
2.2 ControlPanel工具
ControlPanel是开发板自带的一个工具软件,可以通过该软件提供的图形界面直接对FPGA上的各个外设进行操作。通过该操作可以确认PC机与开发板的连接是否正确,开发板的硬件工作是否正常。
ControlPanel的安装过程如下:
确保QUARTUS II 10.0 或以上版本能被成功安装;将开关RUN/PROG切换到RUN位置;将USB接线连接至USB驱动端口,供12V电源并打开开关;打开主机上的可执行文件DE2_115_ControlPanel.exe,controlPanel的用户界面如下:
图3 用户界面
DE2_115_ControlPanel.exe一旦被启动,DE2_115_ControlPanel.sof程序流文件将会被自动加载;如果未连接,点击CONNECT,点sof文件将会重新加载到板子上;注意,控制面板将会占用一直到你关闭那个端口,除非你关闭USB端口,否则你不能使用QUARTUS II来下载文件;控制面板现在可以使用了,通过设置一些LED灯ON/OFF的状态来观察DE2-115上的状态。
2.3 DE2-115开发板
JTAG配置FPGA:
连接电源适配器打开电源开关
将下图开关到RUN位置进行调试
连接USB连接线连到DE2-115开发板的USB BLASTER端口
下载.sof后缀名的文件来对FPGA进行编程
如需对配置芯片变成开关需要打到PROGRAM位置
开发板代码设计流程:
图4 设计流程
利用System Builder建立工程,系统将自动根据需求进行管脚分配和相关设置。
输入工程名字,将自动设置为顶层设计实体;
用户根据自己的需求,选择需要使用的模块the DE2-115 ,System Builder将会自动产生相关联的引脚配置;
用户可以自己定义引脚的名字、位置、目录、和IO标准
通过高速中间接口可以外挂子卡
he DE2-115 System Builder 可以使用户加载某个配置,保存用户的配置;将会产生QUARTUS II 的文件。
3、A/D、D/A开发板
ADDA扩展板是 利用HSMC接口进行扩展的子卡,相当于FPGA的一个外设。扩展板提供两路
65
M
65M
65M,
14
14
14位采样分辨率的ADC以及两路
125
M
125M
125M,
14
14
14位采样精度的DAC。采样时钟设置灵活可以采用多种形式。信号输入和输出采用变压器耦合方式,频率范围为
0.1
M
H
z
800
M
H
z
0.1MHz~800MHz
0.1MHz 800MHz。
ADC的基本参数:集成双端口14位AD;
3
V
3V
3V供电
(
2.7
V
−
3.6
V
)
(2.7V-3.6V)
(2.7V−3.6V);
S
N
R
=
71.6
d
B
SNR=71.6dB
SNR=71.6dB;固定的模拟输入范围
0
V
2
V
0V~2V
0V 2V。
二、实验内容
1、实验简介
本实验利用DE2-115开发板产生一个参数可变的线性调频(LFM)信号,利用数字滤波器改变LFM信号的幅频特性,并通过DA扩展板转换为模拟中频信号。通过AD扩展板采集该信号,经过数字正交下变频转换为数字基带信号,并对此基带信号进行频谱分析。
基本要求:
产生LFM脉冲,通过调试工具设置信号参数,使得脉冲宽度在1us~1s内可变,带宽在5MHz~10MHz可变,脉冲重复周期在10us~2s内可变,载波频率在5MHz~20MHz可变,输出信号幅度在0.1~1V可变,以上参数可任意组合,产生的信号通过DAC输出,DAC数据更新率为120MHz。
将上面产生的LFM脉冲先通过截止频率为5MHz,阻带频率为10MHz的FIR低通滤波器,再通过DAC输出。
将上面产生的LFM脉冲先通过截止频率为5MHz,阻带频率为10MHz的FIR低通滤波器,再通过DAC输出。
提高要求:
LFM信号的参数可变范围进一步扩展,范围越大越好。
多组FIR滤波器的冲击响应可实时切换。
频谱分析的分辨率进一步提高。
2、LFM信号的产生
2.1 LFM基带信号
LFM基带信号的数学表达式:
s
(
t
)
=
r
e
c
t
(
t
/
T
)
e
(
j
π
K
t
2
)
,
−
T
/
2
≤
t
<
T
/
2
s(t)=rect(t/T)\ e^( j\pi Kt^2\ ),-T/2\le t<T/2
s(t)=rect(t/T) e(jπKt2 ),−T/2≤t<T/2
其中,
r
e
c
t
(
)
rect()
rect()是矩形脉冲函数,
T
T
T是脉冲持续时间,单位是
s
s
s,
K
K
K是调频斜率,单位是
H
z
/
s
Hz/s
Hz/s。
LFM信号的瞬时相位为:
ψ
(
t
)
=
π
K
t
2
\psi\left(t\right)=\pi Kt^2
ψ(t)=πKt2
LFM信号的瞬时频率为:
f
(
t
)
=
1
2
π
d
ψ
(
t
)
d
t
=
K
t
f\left(t\right)=\frac{1}{2\pi}\frac{d\psi\left(t\right)}{dt}=Kt
f(t)=2π1dtdψ(t)=Kt
LFM信号的带宽为:
B
=
K
T
B=KT
B=KT
LFM基带信号时域波形
图5 带宽为10MHz,脉宽为10us的LFM信号
2.2 LFM带通信号
LFM带通信号的数学表达式:
s
(
t
)
=
r
e
a
l
(
r
e
c
t
(
t
/
T
)
e
(
j
(
2
π
f
c
t
+
π
K
t
2
)
)
)
,
−
T
/
2
≤
t
<
T
/
2
s(t)=real(rect(t/T) e^(j(2πf_c t+πKt^2))),-T/2≤t<T/2
s(t)=real(rect(t/T)e(j(2πfct+πKt2))),−T/2≤t<T/2
其中,
r
e
a
l
(
)
real()
real()是取复数实部函数,
f
c
f_c
fc是载波频率,单位是
H
z
Hz
Hz。
LFM带通信号的瞬时相位为:
ψ
(
t
)
=
2
π
f
c
t
+
π
K
t
2
ψ(t)=2πf_c t+πKt^2
ψ(t)=2πfct+πKt2
LFM信号的瞬时频率为:
f
(
t
)
=
1
/
2
π
d
ψ
(
t
)
/
d
t
=
f
c
+
K
t
f(t)=1/2π dψ(t)/dt=f_c+Kt
f(t)=1/2πdψ(t)/dt=fc+Kt
LFM信号的带宽为:
B
=
K
T
B=KT
B=KT
LFM带通信号时域波形
图6 载波为
10
M
H
z
10MHz
10MHz,带宽为
10
M
H
z
10MHz
10MHz,脉宽为
10
u
s
10us
10us的LFM实带通信号LFM带通信号频谱
图7 载波为
10
M
H
z
10MHz
10MHz,带宽为
10
M
H
z
10MHz
10MHz,脉宽为
100
u
s
100us
100us的LFM实带通信号
2.3 DDS产生LFM信号
瞬时频率:
f
(
n
T
s
)
=
f
c
+
K
n
T
s
f(nT_s )=f_c+KnT_s
f(nTs)=fc+KnTs
DDS的频率调谐字FTW和输出频率
f
o
f_o
fo的关系:
F
T
W
=
f
o
/
f
s
2
N
FTW=f_o/f_s 2^N
FTW=fo/fs2N
其中,N是DDS的相位累加器位数,$f_s=1⁄T_s $为DDS的时钟频率。因此,用DDS产生LFM信号时,对应的频率调谐字为:
F
T
W
(
n
)
=
r
o
u
n
d
(
f
o
/
f
s
2
N
)
=
r
o
u
n
d
(
f
c
/
f
s
2
N
+
n
K
〖
T
s
〗
2
2
N
)
FTW(n)=round(f_o/f_s 2^N )=round(f_c/f_s 2^N+nK〖T_s〗^2 2^N)
FTW(n)=round(fo/fs2N)=round(fc/fs2N+nK〖Ts〗22N)
3、FIR滤波器
3.1 FIR滤波器设计方法
窗函数法:是一种在时域设计FIR数字滤波器的方法,用窗函数对理想滤波器的冲击响应进行加权。
频率取样法:从频域出发,对理想滤波器频域特性进行等间隔采样,将采样值作为待设计滤波器的频率特性,对其做IDFT得到滤波器的冲击响应。
最优设计方法:等波纹切比雪夫逼近法,采用“最大误差最小”准则得到最佳滤波器。
3.2 MATLAB设计FIR滤波器
MATLAB函数:fir1、fir2、firpm
FIR滤波器设计工具:fdatool
4、 基于FFT的频谱分析
4.1 FFT原理
FFT是快速傅里叶变换的简称,可对离散信号进行频域分析。
若时域离散序列
x
(
n
)
,
0
≤
n
≤
N
−
1
,
x(n),0≤n≤N-1,
x(n),0≤n≤N−1,对其作N点FFT运算得到
X
(
k
)
X(k)
X(k):
X
(
k
)
=
∑
(
n
=
0
)
(
N
−
1
)
▒
〖
x
(
n
)
e
(
−
j
2
π
/
N
k
n
)
〗
X(k)=∑_(n=0)^(N-1)▒〖x(n)e^(-j 2π/N kn) 〗
X(k)=(∑n=0)(N−1)▒〖x(n)e(−j2π/Nkn)〗
其中,
|
X
(
k
)
|
|X(k)|
|X(k)|是归一化频率
2
π
/
N
k
2π/N k
2π/Nk的信号分量的幅度,
a
r
g
(
X
(
k
)
)
arg(X(k))
arg(X(k))是其相位。
4.2 频谱分析原理
对模拟信号进行低通采样或者带通采样得到实信号;
对实信号正交下变频,得到零中频复信号;
对零中频信号作FFT,得到被分析信号的幅频特性和相频特性。
三、实验过程
图8 实验流程
本次实验使用了PLL IP核、NCO IP核、FIR IP核、FFT IP核以及乘法和加法器IP核。
PLL IP核:锁相环IP核,利用50MHz系统时钟,产生
125
M
H
z
125MHz
125MHz和
65
M
H
z
65MHz
65MHz的时钟信号,分别驱动DAC和ADC模块。
NCO IP核:根据随时间变化的频率控制字,输出正余弦信号,得到线性调频(LFM)信号。
FIR IP核:导入由matlab生成的系数文件(.txt),对输入数据进行滤波。本次实验一共设计了两个低通滤波器,一个是对LFM信号进行滤波的滤波器,它的通带截止频率为
5
M
H
z
5MHz
5MHz,阻带截止频率为
10
M
H
z
10MHz
10MHz的低通FIR滤波器,另一个是在正交下变频中使用的低通滤波器,它的通带截止频率为
2.5
M
H
z
2.5MHz
2.5MHz,阻带截止频率为
5
M
H
z
5MHz
5MHz。
FFT IP核:设置点数,可以对输入数据进行相应点数的FFT/IFFT运算,将时域输入转换成频域输出。
1、设置参数
图9 LFM_1参数设置
打开In-System Sources and Probes Editor工具,进行参数设置,
s
o
u
r
c
e
1
source1
source1调节幅度,
s
o
u
r
c
e
2
source2
source2调节脉冲宽度,
s
o
u
r
c
e
3
source3
source3调节脉冲重复周期,
s
o
u
r
c
e
4
source4
source4调节载频,
s
o
u
r
c
e
5
v
调
节
带
宽
,
source5v调节带宽,
source5v调节带宽,source6$调节FFT输出幅频特性大小。
要产生一个幅度为
1
V
1V
1V,脉宽为
1
u
s
1us
1us,脉冲重复周期为
2
u
s
2us
2us,载频
6
M
H
z
6MHz
6MHz,带宽
5
M
H
z
5MHz
5MHz的LFM信号,则
s
o
u
r
c
e
1
=
1
,
s
o
u
r
c
e
2
=
1
,
s
o
u
r
c
e
3
=
2
,
s
o
u
r
c
e
4
=
6
,
s
o
u
r
c
e
5
=
5
,
s
o
u
r
c
e
6
=
0
source1=1,source2=1,source3=2,source4=6,source5=5,source6=0
source1=1,source2=1,source3=2,source4=6,source5=5,source6=0。
图10 LFM_2参数设置
产生一个幅度为
1
V
1V
1V,脉宽为
10
u
s
10us
10us,脉冲重复周期为
20
u
s
20us
20us,载频
5
M
H
z
5MHz
5MHz,带宽
5
M
H
z
5MHz
5MHz的LFM信号。
2、硬件调试
图11 调试结果1
打开SignalTap II Logic Analyzer工具,添加需要观测的信号,运行,可以看到信号波形。其中DAC_DA信号是幅度为
1
V
1V
1V,脉宽为
1
u
s
1us
1us,脉冲重复周期为2us,载频
6
M
H
z
6MHz
6MHz,带宽
5
M
H
z
5MHz
5MHz的LFM信号,可以看到占空比为
1
/
2
1/2
1/2;DAC_DB是经过滤波以后的LFM信号,可以观察到高频部分的衰减;ADC_DB是经过滤波后的数字LFM信号,result信号是对其进行FFT运算后的结果。
图12 调试结果2
幅度为1V,脉宽为10us,脉冲重复周期为20us,载频5MHz,带宽5MHz的LFM信号的硬件调试结果。将AD/DA拓展板上的DAC_DA接口和ADC_DB接口相连,通过SignalTap II工具可以得到没有经过低通滤波的LFM信号的幅频和相频特性,从上往下数第二条波形是该LFM信号的幅频特性。将该带通信号ADC_DB正交下变频,得到零中频信号,再进行FFT,倒数第二条波形是正交下变频之后的幅频特性,最后一条波形是采用Cordic算法得到的相频特性。
图13 滤波后的调试结果
将AD/DA拓展板上的DAC_DB接口和ADC_DB接口相连,通过SignalTap II工具可以得到经过低通滤波的LFM信号的幅频和相频特性,从上往下数第二条波形是经过低通滤波的LFM信号的幅频特性。将该带通信号ADC_DB正交下变频,得到零中频信号,再进行FFT,倒数第二条波形是正交下变频之后的幅频特性,最后一条波形是相频特性。
3、示波器观察
打开In-System Sources and Probes Editor工具,进行参数设置,
s
o
u
r
c
e
1
=
0
,
s
o
u
r
c
e
2
=
10
,
s
o
u
r
c
e
3
=
20
,
s
o
u
r
c
e
4
=
10
,
s
o
u
r
c
e
5
=
10
,
s
o
u
r
c
e
6
=
5
source1=0,source2=10,source3=20,source4=10,source5=10,source6=5
source1=0,source2=10,source3=20,source4=10,source5=10,source6=5。产生脉宽为
10
u
s
10us
10us,脉冲重复周期为
20
u
s
20us
20us,载频
10
M
H
z
10MHz
10MHz,带宽
10
M
H
z
10MHz
10MHz的LFM信号。
图14 时域波形
通过显示光标,可以在示波器上看到脉宽为
10
u
s
10us
10us,重复周期为
20
u
s
20us
20us的LFM信号。
图15 原信号频谱
按下示波器上的FFT按键,显示该LFM信号的频谱,通过显示光标,可以看到信号的载频为
10
M
H
z
10MHz
10MHz,带宽为
10
M
H
z
10MHz
10MHz。
图16 滤波后的时域波形
这是LFM信号通过通带截止频率为
5
M
H
z
5MHz
5MHz,阻带截止频率为
10
M
H
z
10MHz
10MHz的低通滤波器后输出的波形。
图17 滤波后的频谱
由于滤波器的过渡带为
5
M
H
z
10
M
H
z
5MHz~10MHz
5MHz 10MHz,所以经过滤波后,信号的幅频特性在
5
M
H
z
10
M
H
z
5MHz~10MHz
5MHz 10MHz内有了衰减,
10
M
H
z
10MHz
10MHz以上的频率成分被滤除。文章来源:https://www.toymoban.com/news/detail-439363.html
四、实验总结
通过这一个星期的电类综合实验,我学会了Quartus II软件的使用,熟悉了Quartus II软件内部的调试工具,熟悉了verilog语言的使用,了解了LFM信号的产生和数字处理、频谱分析。从一开始的一筹莫展,到一步一步的实现这个过程中,我学到了很多学习新知识的方法,掌握了专业知识,同时锻炼了动手的能力。
回顾整个设计过程,发现自己真的有很多不足。在实验过程中,学到了很多有关电子技术理论和实际方面的知识,从理论中得出结论,才能真正的提高自己的实际动手能力和独立能力,从中获得经验和知识。对以前所学过的知识理解不够深,不够透,掌握不够牢固。
之前,在课本上学习过很多数字信号处理的方法,但是从未动手实践过,在这次实践的同时,发现了以前知识的短板。理论知识掌握了还是远远不够的,还需要会使用matlab仿真,会使用verilog语言编写代码,会使用Quartus II软件硬件调试,会使用示波器观察信号等等,在实践之后才知道要真正实现一个系统,理论学习只是特别小的一部分,但也是第一步。在该如何设计,并且使之能实现我们需要的功能这个过程中,培养了我们的设计思维,增加了实际操作能力。这次让我体会到了实现数字系统的艰辛与成功之后的喜悦。尤其是Quartus II软件的编程花费了我大量的时间,但是最终基本完成了实验目标。
因为我平时接触FPGA较少,不是这个专业的,在此要多谢杨同学的指导。
程序链接: link.文章来源地址https://www.toymoban.com/news/detail-439363.html
到了这里,关于研究生电类综合实验(A1)-NJUST的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!