【问题标题】:upsample complex matrix in juliaJulia中的上采样复杂矩阵
【发布时间】:2021-03-12 15:14:06
【问题描述】:

我在 julia 中有一个复杂矩阵(即Array{Complex{Float64},2}),我想在一维上进行上采样。

我的等效python代码是:

data_package['time_series']  = sp.signal.resample(data_package['time_series'] .astype('complex64'), data_package['time_series'].shape[1]*upsample_factor, axis=1)

【问题讨论】:

    标签: julia


    【解决方案1】:

    resample() 函数可以在 DSP.jl 中找到。但它只适用于向量,因此必须沿着所需的维度手动应用它。一种可能的方式如下所示(沿第二维重新采样,新速率为 2):

    julia> using DSP
    
    julia> test = reshape([1.0im, 2.0im, 3.0im, 4., 5., 6.], 3, 2)
    3×2 Matrix{ComplexF64}:
     0.0+1.0im  4.0+0.0im
     0.0+2.0im  5.0+0.0im
     0.0+3.0im  6.0+0.0im
    
    julia> newRate = 2
    2
    
    julia> up = [resample(test[:, i], newRate) for i in 1:size(test, 2)] # gives a vector of vectors
    2-element Vector{Vector{ComplexF64}}:
     [0.0 + 0.9999042566881922im, 0.0 + 1.2801955476665785im, 0.0 + 1.9998085133763843im, 0.0 + 2.968204475861045im, 0.0 + 2.9997127700645763im]
     [3.9996170267527686 + 0.0im, 4.466495565312296 + 0.0im, 4.999521283440961 + 0.0im, 6.154504493506763 + 0.0im, 5.9994255401291525 + 0.0im]
    
    julia> cat(up..., dims = 2) # fuse to matrix
    5×2 Matrix{ComplexF64}:
     0.0+0.999904im  3.99962+0.0im
     0.0+1.2802im     4.4665+0.0im
     0.0+1.99981im   4.99952+0.0im
     0.0+2.9682im     6.1545+0.0im
     0.0+2.99971im   5.99943+0.0im
    

    【讨论】:

      【解决方案2】:

      请考虑包裹FFTResampling.jl

      该方法基于 FFT,假设周期性和带限输入。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-17
      • 2016-12-17
      相关资源
      最近更新 更多