再采样
以新的固定采样率重新采样均匀或不均匀分布的数据。
库::`工程师`
语法
函数调用
-
[参数:y]=重采样(<参数:x>>,<参数:p>>,<参数:q>>)-执行输入序列的重新采样[参数:x]用采样率,在[参数:p]/<参数:q>>比原来高出一倍。 功能重采样适用于[参数:x][抗混叠-低通滤波器]具有有限脉冲响应(fir)并补偿滤波器引入的延迟。 该函数适用于数组的第一维,其大小较大1.
-
[参数:y]=重采样(<参数:x>>,<参数:p>>,<参数:q>>,<参数:n>>,<参数:beta>>)-定义用于设计低通滤波器的Kaiser窗口的形状参数。
-
[参数:y],[参数:ty],[参数:b-out]=重采样([参数:x],[参数:tx],___)-返回参数中平滑滤波器的系数[参数:b-out].
争论
输入参数
# x — 输入信号
+
向量资料 | 矩阵 | 一个N维数组
Details
指定为矢量、矩阵或N维数组的输入信号。 论点 x 可能包含值 南 如果有关于时间的信息。 价值 南 它们被认为是缺失的数据,并被排除在重新采样之外。
| 数据类型 |
|
# *n*是 相邻元素的数量
+
10 (默认情况下)| 一个非负整数
Details
邻元素的个数,设为非负整数。 如果 n=0,功能 重采样 执行最近邻插值。 平滑FIR滤波器的长度与 n. 大值 n 它们通过增加计算时间来提供更高的精度。
| 数据类型 |
|
# 贝塔 — Kaiser窗口形状参数
+
5 (默认情况下)| 正实标量
Details
的Kaiser窗口形状参数,设置为正实标量。 增加争论 贝塔 扩展用于构建平滑滤波器的窗口的主瓣,并且减小窗口的旁瓣的幅度。
| 数据类型 |
|
# b — FIR滤波器系数
+
向量资料
Details
FIR滤波器系数,指定为矢量。 默认函数为 重采样 使用函数设计过滤器 鹿firls 还有皇帝的窗户。 当补偿延迟时,功能 重采样 假设输入参数为 b 它具有奇数长度和线性相位。 有关详细信息,请参阅[抗混叠-低通滤波器]。
| 数据类型 |
|
#
财政司司长 —
抽样调查
费率+
正标量
Details
的采样率,设置为正标量。 采样率是单位时间内的样本数。 如果时间的测量单位是秒,那么采样频率以Hz表示。
| 数据类型 |
|
名称-值输入参数
# 昏暗 — 为其执行操作的测量
+
正整数标量
Details
对其执行操作的维度,指定为正整数标量。 如果论点是 昏暗 未指定,功能 重采样 它是在数组的第一个维度上进行的,其大小较大 1.
| 数据类型 |
|
例子:
线性序列的重新采样
Details
让我们用频率重新采样一个简单的线性序列 3/2 从原来的 10 赫兹。 让我们在一个图中绘制原始序列和重复采样的序列。
import EngeeDSP.Functions: resample
using Plots
fs = 10
t1 = 0:1/fs:1
x = t1
result = resample(x, 3, 2)
y = result.y
t2 = (0:(length(y)-1)) * 2 / (3 * fs)
plot(t1, x,
seriestype = :scatter,
marker = :xcross,
markerstrokecolor = :blue,
label = "Original",
xlabel = "Time (s)",
ylabel = "Signal",
legend = :topleft)
plot!(t2, y,
seriestype = :scatter,
marker = :circle,
markerstrokewidth = 1,
markerstrokecolor = :orange,
markercolor = :white,
label = "Resampled")
多通道信号的重新采样
Details
我们将产生一个五通道正弦信号与 100 通过倒计时。 时间以列为单位增加,频率以行为单位增加。 让我们绘制信号。
import EngeeDSP.Functions: resample
using Plots
p=3
q=2
tx=0:p:300-p
x=[cos.(2π*tx。/(freq*100))for freq in1:5]
x=hcat(x...)
情节(tx,x,
标记=:圆,
markersize=2,
linestyle=:点,
seriestype=:路径,
标题="原创",
ylims=(-1.5,1.5),
传说=错误)
通过增加正弦波的采样频率 3/2 在第二维度中。 让我们把重新采样的信号放在图表上。
ty = 0:q:300-q
result = resample(x, p, q)
y = result.y
plot(ty, y,
marker = :circle,
markersize = 2,
linestyle = :dot,
seriestype = :path,
title = "Upsampled",
ylims = (-1.5, 1.5),
legend = false)
让我们改变重新采样信号的形状,以便时间沿着第三维度传递。
y = reshape(y, 1, size(y, 1), size(y, 2))
y = permutedims(y, [3, 1, 2])
size(y)
(5, 1, 150)
让我们将信号的采样频率降低到初始频率并构建一个图形。
result_z = resample(y, q, p, Dimension=3)
z = result_z.y
z = dropdims(z, dims=2)
plot(tx, z',
marker = :circle,
markersize = 2,
linestyle = :dot,
seriestype = :path,
title = "Downsampled",
ylims = (-1.5, 1.5),
legend = false)
此外
低通平滑滤波器
Details
用有理系数重新采样信号 [参数:p]/<参数:q>> 功能 重采样 调用函数 向上确认,其执行以下操作:
理想的平滑滤波器具有归一化截止频率。 rad/计数和增益 [参数:p]. 为了近似平滑滤波器,函数 重采样 使用Kaiser窗口方法。
作为一个例子,我们将设计一个抗混叠滤波器来重新采样信号到采样频率,在 3/2 初始值的两倍:
p = 3
q = 2
maxpq = max(p, q)
fc = 1 / maxpq
n = 10
order = 2 * n * maxpq
beta = 5
b = fir1(order, fc, kaiser(order + 1, beta))
b = p * b / sum(b)
算法
功能 重采样 使用函数执行FIR设计 鹿firls,将结果归一化以考虑窗口增益,然后使用函数实现采样率的变化 向上确认.