工程师。[医]直肠状
矩形脉冲发生器。
库::`[医]工程师` 座:: 矩形波形
资料描述
要生成具有预设脉冲持续时间和脉冲重复率(PRF)的脉冲信号,请按照以下步骤操作:
-
创建*EngeePhased对象。RectangularWaveform*并设置其属性。
-
用参数调用对象,就好像它是一个函数一样。
若要了解有关如何使用系统对象的详细信息,请参阅 AnyMath系统对象.
语法
创造
-
波形=EngeePhased。RectangularWaveform()-创建矩形脉冲发生器系统对象波形具有默认属性。 -
波形=EngeePhased。RectangularWaveform(名称=值)-创建矩形脉冲发生器系统对象波形具有指定的属性姓名,设置为指定值价值. 您可以按任意顺序将其他属性指定为名称-值对(名称1=价值1,…,NameN=ValueN).
使用
-
Y=波形()-返回矩形脉冲信号*Y*。 -
Y=波形(prfidx)-使用*prfidx*索引从由*[Property:PRF]*属性设置的预定义值向量中选择脉冲重复率(PRF)。 如果*[Property:PRFOutputPort]*属性设置为真的. -
Y=波形(freqoffset)-使用*freqoffset*生成频率偏移信号。 在需要动态更新发送脉冲的频率的情况下使用该语法。 如果属性*[Property:FrequencyOffsetSource]*值集,则使用此语法"输入端口". -
Y,PRF=波形(_)-还返回当前脉冲重复率*PRF*。 若要使用此语法,请将*[Property:PRFOutputPort]*属性设置为真的,并为属性*[Property:OutputFormat]*值"脉冲". *PRF*返回系统使用的当前脉冲重复率。 -
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 — 脉冲重复率,Hz
+
标量,标量
Details
作为标量返回的脉冲重复率。 *PRF*包含系统使用的当前脉冲重复率。
依赖关系
若要使用此参数,请将*[Property:PRFOutputPort]*属性设置为 真的,并为属性*[Property:OutputFormat]*值 "脉冲".
| 数据类型 |
|
科夫 — 匹配滤波器的系数
+
向量资料 | 矩阵
Details
作为大小的复向量返回的匹配滤波器的系数 或大小的复杂矩阵 .
依赖关系
若要使用此参数,请将属性设置为*[Property:CoordicientsOutputPort]*value 真的.
| 数据类型 |
|
例子:
矩形形状信号生成
Details
让我们形成一个具有采样频率的矩形信号 1 兆赫,脉冲持续时间 50 mks,每包脉冲数 5,中心频率 200 kHz和脉冲重复率 10 千赫。
初始化参数。
fs = 1e6 # Частота дискретизации, Гц
dur_spec = "Pulse width" # Метод формирования длительности импульсов ["Pulse width", ""]
pw = 5.0e-5 # длительность импульса, с
prf = 10_000 # частота следования импульсов (ЧСИ)
freq_off_type = "Property" # способ задания частоты модуляции "Property" — в параметрах СО
freq_off = 200e3 # значение центральной частоты спектра, Гц
out_type = "Pulses" # тип выходного сигнала "Pulses" — по импульсам, Samples — по отсчетам
num_pulse = 5 # количество импульсов
prf_out = false # выключение выхода ЧСИ
coeff_mf_out = false; # выключение выхода коэффициентов СФ
让我们使用*EngeePhased。RectangularWaveform*创建探测信号*rect*的系统对象。
# Формирование системного объекта
rect = EngeePhased.RectangularWaveform(
SampleRate = fs, # Частота дискретизации, Гц
DurationSpecification = dur_spec, # Метод формирования длительности импульсов
PulseWidth = pw, # длительность импульса, с
PRF = prf, # частота следования импульсов
FrequencyOffsetSource = freq_off_type,
FrequencyOffset = freq_off, # центральная частота
OutputFormat = out_type, # тип выходного сигнала
NumPulses = num_pulse, # количество импульсов
PRFOutputPort = prf_out,
CoefficientsOutputPort = coeff_mf_out
);
调用*EngeePhased系统对象。RectangularWaveform*使用*rect*变量。
rect_sig = rect(); # генерация прямоугольного сигнала
使用函数 情节 让我们以IQ组件、模块和信号相位的形式构建示波器。
# построение IQ-компонент
t_grid = range(start = 0,step = 1/fs,length = length(rect_sig)) * 1e6 # сетка времени, мкс
fig1 = plot(t_grid,real.(rect_sig),title = "синфазная составляющая",lab="",ylab="Амплитуда")
fig2 = plot(t_grid,imag.(rect_sig),title = "квадратурная составляющая",lab="",xlab = "Время, мкс",ylab="Амплитуда");
图(图1,图2,布局=(2,1))

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

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

光谱具有针状结构,其组分按步骤进行。 . 为了计算频谱图,我们使用内置函数 频谱图.
# расчет спектрограммы
spectgm1,f1,t1 = EngeeDSP.Functions.spectrogram(
real.(rect_sig);
nfft = length(rect_sig), # длина БПФ
window = EngeeDSP.Functions.hamming(64),
noverlap = 60, # перекрытие окна
spectrumtype = "power", # тип спектра — по мощности
freqrange = "onesided", # диапазон спектра — односторонний
out = :data, # тип выхода — массив данных
fs = fs # частота дискретизации
);
我们使用函数可视化频谱图计算的结果 热图.
# построение спектрограммы
heatmap(
t1[:]*1e6,f1[:]*1e-3,
abs.(spectgm1),color = :jet,
xlab = "Время, мкс",
ylab = "Частота Доплера, кГц",
ylims = (0,400)
)

