工程师。非线性函数
非线性频率调制的信号发生器。
库::`[医]工程师` 座:: 非线性调频波形
资料描述
该*EngeePhased。NonlinearFMWaveform*系统对象创建非线性频率调制(NFM)信号。 由于时间和频率的非线性依赖性,LFM信号允许低频旁瓣。 根据属性支持四种不同的信号*[Property:FrequencyModulation]*:
-
"多项式"-产生具有对应于多项式函数的瞬时频率的信号。 -
"双曲线"-产生双曲FM信号。 -
"混合线性切线"-产生结合线性调频和切向调频的混合LFM信号。 -
"阶梯价格"-产生具有逐步非线性FM价格的信号。
要生成信号,请按照以下步骤操作:
-
创建*EngeePhased。NonlinearFMWaveform*对象并设置其属性。
-
用参数调用对象,就好像它是一个函数一样。
若要了解有关如何使用系统对象的详细信息,请参阅 AnyMath系统对象.
语法
创造
-
波形=EngeePhased。NonlinearFMWaveform()-创建具有非线性FM的信号发生器的系统对象波形具有默认属性。 默认情况下,信号具有多项式FM。 -
波形=EngeePhased。NonlinearFMWaveform(Name=Value)-创建具有非线性FM的信号发生器的系统对象波形具有指定的属性姓名,设置为指定值价值. 您可以按任意顺序将其他属性指定为名称-值对(名称1=价值1,…,NameN=ValueN).
使用
-
Y=波形()-以列向量*Y*的形式返回具有非线性FM的信号。 *Y*参数可以包含一定数量的脉冲或一定数量的样本。 -
Y=波形(prfidx)-使用*prfidx*索引从由*[Property:PRF]*属性设置的预定义值向量中选择脉冲重复率(PRF)。 如果*[Property:PRFOutputPort]*属性设置为真的. 在需要动态选择发送脉冲的情况下使用此语法。 在这种情况下,[Property:PRF]*属性包括预定义的PRF选项列表。 在仿真期间,使用*prfidx,PRF选项中的一个被选择作为下一次传输的PRF。 请注意,传输总是在开始下一个脉冲之前完成当前脉冲。 因此,如果将属性设置为*[Property:OutputFormat]*value"样本",然后指定属性*[Property:numSamples]*比脉冲短,有可能在该建模步骤,如果需要整个输出信号来完成先前发送的脉冲,则指定的*prfidx*将被忽略。 -
Y=波形(freqoffset)-使用*freqoffset*生成频率偏移信号。 在需要动态更新发送脉冲的频率的情况下使用该语法。 此语法适用于属性*[Property:FrequencyOffsetSource]*值集"输入端口". -
Y,PRF=波形(_)-还返回当前脉冲重复率*PRF*。 若要使用此语法,请将*[Property:PRFOutputPort]*属性设置为真的,并为属性*[Property:OutputFormat]*值"脉冲". -
Y,coeff=波形(_)-还返回当前脉冲的匹配*coeff*滤波器的系数。 若要使用此语法,请设置*[Property:CoordicientsOutputPort]*值真的.
如果指定了包含可选输入和输出参数的属性,则可以组合可选输入和输出参数。 可选输入和输出的列出顺序必须与包含它们的属性相同。 例如, Y,PRF,coeff=波形(prfidx,freqoffset).
争论
输入参数
prfidx — 脉冲重复率指数
+
一个正整数
Details
脉冲重复率指数(PRF),设定为正整数。 索引标识*[Property:PRF]*属性中的条目。 在必须动态选择传输脉冲的情况下使用此参数。 在这种情况下,[Property:PRF]*属性包含用于选择PRF的预定义选项列表。 在仿真期间,基于输入数据*prfidx,选择其中一个Prf作为下一传输的PRF。
依赖关系
若要使用此参数,请将*[Property:PRFOutputPort]*属性设置为 真的.
freqoffset — 频率偏移,Hz
+
标量,标量
Details
指定为标量的频率偏移。 偏移允许您生成具有频率偏移的信号。 在需要动态更新发送脉冲的频率的情况下使用该自变量。
依赖关系
若要使用此参数,请将属性设置为*[Property:FrequencyOffsetSource]*value "输入端口".
| 数据类型 |
|
输出参数
Y — 脉冲信号
+
列向量
Details
作为列向量返回的输出信号。
| 数据类型 |
|
PRF —
脉冲重复
费率+
标量,标量
Details
以Hz为单位的脉冲重复率,作为标量返回。 *PRF*包含系统使用的当前脉冲重复率。
依赖关系
若要使用此参数,请将*[Property:PRFOutputPort]*属性设置为 真的,并为属性*[Property:OutputFormat]*值 "脉冲".
| 数据类型 |
|
科夫 — 匹配滤波器的系数
+
向量资料 | 矩阵
Details
作为大小的复向量返回的匹配滤波器的系数 或大小的复杂矩阵 .
依赖关系
若要使用此参数,请将属性设置为*[Property:CoordicientsOutputPort]*value 真的.
| 数据类型 |
|
例子:
具有双曲线定律的NLCHM信号的形成
Details
让我们形成一个具有双曲线定律的NLCHM信号,脉冲持续时间 50 ms,初始频率 10 kHz和最终频率 500 赫兹。
初始化参数。
fs = 20e3 # Частота дискретизации (Гц)
dur_spec = "Pulse width" # Метод формирования длительности импульсов
τи = 50e-3 # длительность импульса (с)
Q = 1 # скважность
prf = round(1/(Q*τи)) # Частота повторения импульсов (Гц)
freq_off_type = "Property" # способ задания параметров "Property" — в параметрах СО
freq_off = 0 # значение начальной частоты спектра (Гц)
out_type = "Pulses" # тип выходного сигнала "Pulses" — по импульсам
num_pulses = 1 # количество импульсов
f1 = 10e3 # начальная частота девиации
f2 = 0.5e3 # конечная частота спектра
Δf = f1 - f2 # ширина спектра НЛЧМ-сигнала
sw_dir = "Down" # направление изменения частоты
type_modulate = "Hyperbolic";
让我们使用*EngeePhased。Nlfmwaveform*创建探测信号系统对象*nlfm_poly_waveform*。
nlfm_poly_waveform = EngeePhased.NonlinearFMWaveform(
SampleRate = fs, # частота дискретизации
PulseWidth = τи, # длительность импульса
SweepBandwidth = Δf, # девиация частоты
FrequencyModulation = type_modulate, # тип модуляции
HyperbolicStartFrequency = f1, # начальное значение частоты
SweepDirection = sw_dir, # направление изменения частоты
PRF = prf, # частота следования импульсов
OutputFormat = out_type,
NumPulses = num_pulses
);
调用*EngeePhased。Nlfmwaveform*系统对象使用*nlfm_poly_waveform变量*:
nlfm_signal = nlfm_poly_waveform();
使用函数 情节 让我们以IQ组件、模块和信号相位的形式构建示波器。
# построение IQ-компонент
t_grid = range(start = 0,step = 1/fs,length = length(nlfm_signal)) * 1e6 # сетка времени, мкс
fig1 = plot(t_grid,real.(nlfm_signal),title = "синфазная составляющая",lab="",ylab="Амплитуда")
fig2 = plot(t_grid,imag.(nlfm_signal),title = "квадратурная составляющая",lab="",xlab = "Время, мкс",ylab="Амплитуда");
plot(fig1,fig2,layout = (2,1))

# построение модуля и фазы сигнала
fig3 = plot(t_grid,abs.(nlfm_signal),title = "Модуль комплексного сигнала",lab="",ylab="Амплитуда",ylim = (0,1.2));
fig4 = plot(t_grid,angle.(nlfm_signal)*180/pi,title = "Аргумент комплексного сигнала",lab="",xlab = "Время, мкс",ylab="Фаза, град.");
plot(fig3,fig4,layout = (2,1))

信号的主要特征是频谱和频谱图。 让我们使用内置函数 周期图.
# расчет спектра сигнала
spec_NLFM,f = EngeePhased.Functions.periodogram(
nlfm_signal, # исходный сигнал
ones(size(nlfm_signal)...),
8192; # длина частоты дискретизации
out = :data, # тип выхода
fs = fs, # частота дискретизации
spectrumtype = "power" # тип спектра
);
使用函数可视化结果 情节.
plot(
f * 1e-3,
EngeePhased.Functions.mag2db.(spec_NLFM),
lab="", xlab = "Частота, кГц",
ylab = "Мощность, дБВт",
title = "Спектр сигнала"
)

频谱以中心频率为中心 ,带条纹 . 为了计算频谱图,我们使用内置函数 频谱图.
# расчет спектрограммы
spectgm_nlfm,f1,t1 = EngeeDSP.Functions.spectrogram(
nlfm_signal;
nfft = 1024, # длина БПФ
window = 100,
noverlap = 90, # перекрытие окна
spectrumtype = "power", # тип спектра — по мощности
freqrange = "twosided", # диапазон спектра — двусторонний
out = :data, # тип выхода — массив данных
fs = fs # частота дискретизации
);
我们使用函数可视化频谱图计算的结果 热图.
# построение спектрограммы
heatmap(
t1[:]*1e3,
f1[:]*1e-3,
abs.(spectgm_nlfm),color = :jet,
xlab = "Время, мс",
ylab = "Частота Доплера, кГц",
)

算法
NLFM无线电脉冲可以写成
哪里
-
--脉冲持续时间;
-
--非线性相变律(例如,双曲线或对称切向律)。
要生成具有非线性频率调制的信号,必须设置以下参数:
*滤波器采样率 ; *脉冲持续时间 ; *脉冲重复率 ; *脉冲数 ; *信号的初始频率 ; *信号的最终频率 ; *频率偏差 .
该图显示了具有双曲线定律的NLFM信号。 .

文学作品
-
柯林斯,T.和P.阿特金斯。 _有源声纳的线性调频啁啾。_IEE Proceedings-Radar,Sonar and Navigation146.6(1999):312-316.
-
Levanon,Nadav和Eli Mozeson。 _Radar信号。_John Wiley&Sons,2004,pp.92-93.
-
多瑞,阿明*沃尔特。 _生成用于雷达的非线性FM线性调频波形。_没有。 SAND2006-5856. 桑迪亚国家实验室(SNL),ALBUQUERQUE,NM和Livermore,CA(美国),2006。
-
Cook,c.E. _A类非线性FM脉冲压缩信号。_IEEE52.11会议记录(1964):1369-1371.
-
Yang,J.和T.K.Sarkar。 _doppler-双曲频率调制波形的不变性质。_微波和光学技术快报48.6(2006):1174-1179.
-
梅尔文,威廉L.和詹姆斯谢尔。 现代雷达原理:先进技术。_科技酒吧。, 2013.
-
Alphonse,Sebastian和Geoffrey A.Williamson。 _一类NLFM雷达信号的评估。_EURASIP信号处理进展杂志2019.1(2019):1-12.