普尔斯特兰
脉冲的序列。
库::`工程师`
语法
函数调用
-
[参数:y]=普尔斯特兰(___,[参数:intfunc])-定义替代插值方法。 有关可用方法的列表,请参阅函数页。国际刑警组织. 论点[参数:intfunc]它可以与上述任何输入语法选项一起使用。
争论
输入参数
# p — 脉冲原型
+
向量资料
Details
原型函数,定义为向量。 间隔时间 p 设置为 [0,(长度(p)-1)/<参数:fs>>],并且其在该范围之外的样本是相同的零。 默认情况下,线性插值用于生成延迟。
#
财政司司长 —
抽样调查
费率+
1 (默认情况下)| 真正的标量
Details
以Hz为单位的采样频率,设置为实标量。
# intfunc — 插值方法
+
"线性" (默认情况下)| "最近" | "下一个" | "上一篇" | "pchip" | "立方" | "v5cubic" | "牧马" | "样条"
Details
指定为表中所示选项之一的插值方法。
| 方法 | 资料描述 | 连续性 | 评论 |
|---|---|---|---|
|
线性插值。 查询点处的内插值基于在每个相应维度中的相邻网格点处的值的线性内插。 这是默认的插值方法。 |
|
*需要至少2个点 * 它比最近邻插值需要更多的内存和计算时间。 |
|
最近邻插值。 查询点处的插值值是采样网格中最近点处的值。 |
间歇性 |
*需要至少2个点 * 低内存要求 * 最快的计算时间 |
|
插值到下一个邻居。 查询点处的插值值是选择网格中下一个点处的值。 |
间歇性 |
*需要至少2分
* 与……相同的内存需求和计算时间 |
|
前邻居的插值。 查询点处的内插值是选择网格中前一点处的值。 |
间歇性 |
*需要至少2个点
* 与……相同的内存需求和计算时间 |
|
分段三次保形插值。 查询点处的插值值基于相邻网格点处的值的分段三次插值,同时保留形状。 |
|
*至少需要4分
* 需要更多的内存和计算时间比 |
|
*Engee*中使用的三次卷积。 |
|
点应均匀分布 |
|
Akim的修正插值由三次埃尔米特多项式。 查询点处的内插值基于程度不高于第三的多项式的分段线性函数。 Akim的公式已被修改,以防止排放。 |
|
*需要至少2个点
* 产生的起伏少于 |
|
使用"not-a-knot"条件的样条插值。 查询点处的内插值基于在每个相应维度中的相邻网格点处的值的三次内插。 |
|
*至少需要4个点,如果有2个或3个点,则分别应用线性或二次插值。
* 需要更多的内存和计算时间比 |
例子:
周期性矩形脉冲
Details
在本例中,使用单位宽度的标准矩形脉冲生成脉冲序列。 重复率为 0.5 Hz,信号的持续时间 — 60 c,以及采样速率 — 1 千赫。 增益因子-频率正弦曲线 0.05 赫兹。
import EngeeDSP.Functions: pulstran, rectpuls
t = 0:1/1e3:60
d = [0:2:60 sin.(2π*0.05*(0:2:60))]
y = pulstran(t, d, rectpuls)
plot(t, y, xlabel="Time (s)", ylabel="Waveform", legend=false)
非对称锯齿信号
Details
在这个例子中,产生具有重复率的非对称锯齿信号。 3 赫兹。 锯齿信号的宽度为 0.2 c,以及移位系数 — 1. 信号的持续时间为 1 c,以及采样速率 — 1 千赫。 让我们绘制脉冲序列。
import EngeeDSP.Functions: tripuls, pulstran
fs=1e3
t=0:1/1e3:1
d=0:1/3:1
x=tripuls(t,0.2,-1)
y=普尔斯特兰(t,d,x,fs)
plot(t,y,xlabel="Time(s)",ylabel="Waveform",legend=false)
使用自定义脉冲更改插值方法
Details
让我们编写一个函数,生成一个自定义的指数衰减锯齿信号,频率为 0.25 赫兹。 生成函数具有第二个输入自变量,该自变量指定锯齿频率和衰减系数中的一个值。 让我们用采样频率显示生成的脉冲 0.1 kHz期间 1 秒,频率和衰减因子等于 50.
import EngeeDSP.Functions: sawtooth
fnx = (x, fn) -> sawtooth.(2π * fn * 0.25 * x) .* exp.(-2 * fn * x.^2)
fs = 100
t = 0:1/fs:1
pp = fnx(t, 50)
情节(t,pp,传奇=错误)
使用函数 普尔斯特兰 以产生用户脉冲序列。 序列进行频率采样 0.1 kHz期间 125 几秒钟。 脉冲出现在每个 25 秒并且具有指数递减的幅度。
我们将生成的脉冲指定为原型。 我们将使用标准线性插值方法,最近邻插值和分段三次插值生成三个脉冲序列。 让我们比较同一图上的脉冲序列。
import EngeeDSP.Functions: pulstran
d = [0:25:125 exp.(-0.015*(0:25:125))]
ffs = 100
tp = 0:1/ffs:125
fnx = (x, fn) -> sawtooth.(2π * fn * 0.25 * x) .* exp.(-2 * fn * x.^2)
pp = fnx(tp, 50)
r = pulstran(tp, d, pp)
y = pulstran(tp, d, pp, "nearest")
q = pulstran(tp, d, pp, "pchip")
图(tp,r,标签="线性",xlims=(0,125))
阴谋!(tp,y,label="最近邻居")
阴谋!(tp,q,label="分段立方")