AnyMath 文档

工程师。步进式,步进式

步频率调制的信号发生器。

库::`[医]工程师` 座:: Stepped FM Waveform

资料描述

*EngeePhased系统对象。SteppedFMWaveform*是一个逐步频率调制(FM)信号发生器。

要生成分步调频信号,请按照以下步骤操作:

  1. 创建*EngeePhased对象。SteppedFMWaveform*并设置其属性。

  2. 用参数调用对象,就好像它是一个函数一样。

若要了解有关如何使用系统对象的详细信息,请参阅 AnyMath系统对象.

语法

创造

  • 波形=EngeePhased。SteppedFMWaveform() -创建系统对象 波形 具有默认属性的逐步调频信号。

  • 波形=EngeePhased。SteppedFMWaveform(名称=值) -创建系统对象 波形 具有指定属性的逐步调频信号发生器 "姓名",设置为指定值 价值. 您可以以任何顺序将其他属性指定为名称-值对(名称1=价值1,…​,NameN=ValueN).

使用

  • Y=波形() -以列向量*Y*的形式返回脉冲计数。 输出信号*Y*通过将先前输出信号的频率增加由属性*[Property:FrequencyStep]*指定的量来获得。

  • Y=波形(prfidx) -使用*prfidx*索引从由*[Property:PRF]*属性设置的预定义值向量中选择脉冲重复率(PRF)。 如果*[Property:PRFOutputPort]*属性设置为 真的.

  • 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:PRFOutputPort]*属性设置为 真的.

freqoffset — 频率偏移,Hz

+ 标量,标量

Details

指定为标量的频率偏移。

依赖关系

若要使用此参数,请将属性设置为*[Property:FrequencyOffsetSource]*value "输入端口".

数据类型

漂浮64</无翻译>

输出参数

Y — 脉冲信号

+ 列向量

Details

作为列向量返回的输出信号。

数据类型

漂浮64</无翻译>

prf — 脉冲重复 费率+ 标量,标量

Details

以Hz为单位的当前脉冲重复率,作为标量返回。

依赖关系

若要使用此参数,请将*[Property:PRFOutputPort]*属性设置为 真的,并为属性*[Property:OutputFormat]*值 "脉冲".

数据类型

漂浮64</无翻译> 支持复数::是

科夫 — 匹配滤波器的系数

+ 向量资料 | 矩阵

Details

匹配滤波器的系数,作为大小的复向量返回 或大小的复杂矩阵 .

依赖关系

若要使用此参数,请将属性设置为*[Property:CoordicientsOutputPort]*value 真的.

数据类型

漂浮64</无翻译> 支持复数::是

特征

None.

方法

所有系统对象通用

步!::运行系统对象运算算法 释放!::允许更改系统对象属性的值 重置!::重置系统对象的内部状态

信号发生器的系统对象专用

带宽::信号的带宽 情节::绘制脉冲信号

例子:

逐步频率调制信号的生成

Details

我们将产生一个采样频率的逐步频率调制信号 10 MHz,所述步骤的持续时间 5 iss,步数 4 和信号带 5 兆赫。

初始化参数。

fs = 10e6 # Частота дискретизации (Гц)
pulseWidth = 5e-6; # Длительность одного импульса (с)
numSteps = 4 # Общее число шагов частоты
freqStep = 5e6 / numSteps; # Шаг частоты (Гц) – полная полоса 5 МГц
freqOffset = 0 # Смещение частоты (Гц)

# Единая частота повторения для всех сигналов
PRF = round(1/(2*pulseWidth)); # Гц
numSweeps = 4; # Количество чипов для отображения

让我们使用*EngeePhased。Sfmwaveform*创建探测信号系统对象*sfm_waveform*。

sfm_waveform = EngeePhased.SteppedFMWaveform(
    SampleRate = fs,
    PulseWidth = pulseWidth,
    PRF = PRF,
    NumSteps = numSteps,
    FrequencyStep = freqStep,
    FrequencyOffset = freqOffset,
    OutputFormat = "Pulses",
    NumPulses = numSweeps
);

调用*EngeePhased系统对象。使用*sfm_signal*变量SteppedFMWaveform*。

sfm_signal = sfm_waveform();

使用函数 情节 让我们以IQ组件、模块和信号相位的形式构建示波器。

# построение IQ-компонент
t_grid = range(start = 0,step = 1/fs,length = length(sfm_signal)) * 1e6 # сетка времени, мкс
fig1 = plot(t_grid,real.(sfm_signal),title = "синфазная составляющая",lab="",ylab="Амплитуда")
fig2 = plot(t_grid,imag.(sfm_signal),title = "квадратурная составляющая",lab="",xlab = "Время, мкс",ylab="Амплитуда");

plot(fig1,fig2,layout = (2,1))

object phased stepped waveform 2 cn

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

plot(fig3,fig4,layout = (2,1))

object phased stepped waveform 3 cn

信号的主要特征是频谱和频谱图。 让我们使用内置函数 周期图.

# расчет спектра сигнала
spec_CFM,f = EngeePhased.Functions.periodogram(
    sfm_signal, # исходный сигнал
    ones(size(sfm_signal)...),
    8192; # длина частоты дискретизации
    out = :data, # тип выхода
    fs = fs, # частота дискретизации
    spectrumtype = "power" # тип спектра
);

使用函数可视化结果 情节.

plot(
    f * 1e-3,
    EngeePhased.Functions.mag2db.(spec_CFM),
    lab="", xlab = "Частота, кГц",
    ylab = "Мощность, дБВт",
    title = "Спектр сигнала"
)

object phased stepped waveform 4 cn

为了计算频谱图,我们使用内置函数 频谱图.

# расчет спектрограммы
spectgm_cfm,f1,t1 = EngeeDSP.Functions.spectrogram(
    real.(sfm_signal);
    nfft = 1024, # длина БПФ
    window = 50,
    noverlap = 0, # перекрытие окна
    spectrumtype = "power", # тип спектра — по мощности
    freqrange = "onesided", # диапазон спектра — односторонний
    out = :data, # тип выхода — массив данных
    fs = fs # частота дискретизации
);

我们使用函数可视化频谱图计算的结果 热图.

# построение спектрограммы
heatmap(
    t1[:]*1e3,
    f1[:]*1e-6,
    abs.(spectgm_cfm),color = :jet,
    xlab = "Время, мс",
    ylab = "Частота Доплера, МГц",
)

object phased stepped waveform 5 cn

此外

具有逐步频率调制的信号

Details

在逐步调频信号中,一组脉冲共同复盖一定的带宽。 该组中的每个脉冲占据特定的中心频率,并且这些中心频率在整个带宽中均匀分布。

算法

逐步频率调制信号是一个脉冲序列,其频率以离散的步长从一个脉冲到另一个脉冲而变化。:

哪里

  • --信号幅度;

  • --频率变化周期;

  • --频率步长(steps)的大小;

  • --频率步数;

  • --初始频率;

  • --脉冲持续时间在一个阶段;

  • --定义一个矩形信封:

要生成逐步频率调制信号,必须设置以下参数:

*滤波器采样率 ; *脉冲持续时间 ; *脉冲重复率 ; *脉冲数 ; *信号的初始频率 ; *信号的最终频率 ; *频率偏差 .

object phased stepped waveform 1 cn

文学作品

  1. Richards,M.A. fundamentals Of Radar Signal Processing. 繝シ繝ォ縺ァ縺呐