本文将详细介绍IQ Tool中的Muti-Tone & Noise模块的使用方法和实现原理。
1. 参数配置
上图中各个参数的含义如下:
序号 | 名称 | 含义 |
---|---|---|
1 | Sample Rate(Hz) | 采样率,单位(Hz) |
2 | #of samples | 生成的波形中的采样点数,可用户手动设置也可勾选Auto选项框由程序自动算出一个合适的值(具体计算方法见《》) |
3 | # of tones | 信号频率数,有两种设置方法,一种是由该参数和Start Frequency(Hz)+Stop Frequency(Hz)共同确定各个信号的频率,该方法用于生成等频率间隔的信号;若想生成非等频率间隔的信号,则可将该参数设置为1,同时在Stop Frequency(Hz)中设置期望的信号频率。 |
4 | Start Frequency(Hz) | 信号起始频率,单位:Hz |
5 | Stop Frequency(Hz) | 信号终止频率,单位:Hz |
6 | Tone spacing(Hz) | 这是一个read only参数,用于在生成等频率间隔多音信号时,显示频率间隔 |
7 | Use full scale of DAC | 对应程序中的normalize选项,若勾选该选项,则会将生成波形对其实部和虚部的最大值进行归一化 |
8 | Magnitude(dB) | 各个信号的幅度,单位:dB。该参数会和后面对应频率上的Notch depth(dB)共同确定最终信号的幅度 |
9 | Phase | 各个信号的相位,目前可选的参数有:“Random”,“Parabolic”,“Zero”, “Increasing”,“User Defined” |
10 | User Def.Phase(°) | 用户自定义的各个信号的相位,只有当Phase选择“User Defined”时该参数才能使能 |
11 | Notch frequency(Hz) | 限波的频率,可以设置多个限波频率。只有当Notch这个选项框使能时才有效 |
12 | Notch span(Hz) | 每个限波器的频率范围 |
13 | Notch depth(Hz) | 每个限波器的限波深度,该参数会和Magnitude(dB)参数共同确定每个信号的最终幅度 |
14 | Apply correction | 是否选择进行预失真来补偿AWG幅相不平坦 |
15 | Download | 用于设置将I/Q路信号分别下载到AWG中的哪个通道 |
16 | Fc(correction only) | 从字面意思上看,应该是载波频率,但是具体还不清楚到底有什么用? |
17 | Ampl.Corr. using | 选择用什么方法进行幅相校准,具体内容见《》,其设置界面如下 |
除了上述参数外,在界面中还有很多其他配置,如在界面顶部的菜单栏中,“File”选项卡里面可选择将当前配置保存到配置文件中、可导入已有配置文件、可保存生成的波形、可生成与当前配置相对应的Matlab代码等。“Preset”选项里面则预设了很多配置模版。在界面地步就可以选择查看生成的波形图、可对系统进行校准等各项操作。
【备注】
(1) 该功能模块可以跳过上述参数配置界面,直接调用文件iqtone.m在命令行中生成需要的波形。举例如下:
iqtone(‘sampleRate’, sampleRate, ‘tone’, [100e6 200e6 300e6])
(2) 直接在命令行调用iqtone()这个函数时,若没有给定输入参数,则会自动弹出上述参数设置框;若给定了输入参数则按给定的输入参数进行波形生成,此时支持的输入参数没有上述参数设置界面那么多,只支持如下参数:采样率、采样点数、信号频率、信号幅度、信号相位、是否对幅度做归一化、是否进行系统幅相校准、参数配置文件、通道映射等。
2. 波形生成原理
本小节详细阐述波形生成原理,具体包含以下步骤:
(1) 参数配置。用于生成波形的参数包括:波形频率
f
i
f_i
fi、幅度
A
i
A_i
Ai、相位
θ
i
\theta_i
θi、采样率
f
s
f_s
fs、采样点数
N
N
N等。
(2) 根据上述参数构造波形的频谱。由于单音信号在频谱中表现为冲激谱峰,所以只需要给各个信号频率对应的频谱位置赋值对应的幅度和相位即可,具体操作如下:
a) 定义长度为
N
N
N的全零向量用于保存信号幅度
A
[
n
]
A[n]
A[n]和相位
θ
[
n
]
\theta[n]
θ[n]。频率为
f
i
f_i
fi的信号对应的频点位置为
I
i
=
N
/
2
+
N
f
i
/
f
s
I_i=N/2+Nf_i/f_s
Ii=N/2+Nfi/fs(复数信号的频谱为单边谱,所以这边需要加
N
/
2
N/2
N/2);
b) 给各个信号对应位置上的频点赋值对应的幅度和相位,即
A
[
I
i
]
=
A
i
θ
[
I
i
]
=
θ
i
A[I_i]=A_i\\ \theta[I_i]=\theta_i
A[Ii]=Aiθ[Ii]=θi
c) 由上述幅度和相位序列,构造频谱序列
S
[
n
]
=
A
[
n
]
e
j
θ
[
n
]
S[n]=A[n]e^{j\theta[n]}
S[n]=A[n]ejθ[n];
d) 将上述频谱进行IFFT变换得到时域波形序列,即
s
[
n
]
=
N
×
I
F
F
T
(
f
f
t
s
h
i
f
t
(
S
[
n
]
)
)
s[n]=N \times IFFT(fftshift(S[n]))
s[n]=N×IFFT(fftshift(S[n]))。(乘以
N
N
N的目的设计保证归一化前信号幅度和预设的幅度值一样)
e) 对上述波形进行预失真处理,以补偿AWG的幅相不平衡。
f) 对波形幅度进行归一化,归一化因子是信号的实部和虚部的最大值。
【备注】: IQ Tool中采用频域方法生成波形,相比于时域方法,好处在于通过直接给频谱特定点赋值,可以保证不发生频谱泄露。若用时域方法,由于多音信号中各个单音分量的频率不一样,很难保证长度是所有单音分量周期的整数倍,也就很难实现不发生频谱泄露的效果(当然频域方法也需要对各个单音分量的频率进行微调,因为输入的单音频率不一定落在频率分辨率的整数倍上)。多音信号可用于系统频响校准,不发生频谱泄露是保证校准精度中的重要一环。
3. 生成结果示例
设置采样率
f
s
=
112
G
S
a
/
s
f_s=112GSa/s
fs=112GSa/s,设置自动采样点数,设置3个信号频率
[
10
G
H
z
,
20
G
H
z
,
30
G
H
z
]
[10GHz,20GHz,30GHz]
[10GHz,20GHz,30GHz],对应的幅度为
[
10
d
B
,
20
d
B
,
30
d
B
]
[10dB,20dB,30dB]
[10dB,20dB,30dB]。从下图1所示,若不进行幅度归一化和限波,生成的信号频谱在对应频率上的幅度值和设置的幅度值完全吻合;如下图2所示,对30GHz的信号进行10dB的限波,则其最终幅度为预设的幅度30dB-10dB=20dB;如下图3所示,不限波但进行幅度归一化,此时3个信号的相对幅度不变,但是最大信号的绝对幅度趋近于0dB(因为是相对于实部和虚部的最大值进行归一化而不是对幅度最大值进行归一化,所以归一化后最大幅度会略小于0dB)