This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] IWR6843AOPEVM:解析方位角距离热图 TLV 以在 Python 中绘制它

Guru**** 1456330 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1254417/iwr6843aopevm-parsing-azimuth-range-heatmap-tlv-to-plot-it-in-python

器件型号:IWR6843AOPEVM

您好!

我一直在尝试在 Python 中绘制方位角距离热图、 到目前为止、我看到这个线程解释了如何在 Matlab 中实现它、但到目前为止还没有成功地翻译 python 中的这段代码。 我正在解析 TLV 这样:

    a = f"{int(tlv_length//4)}i"
    data = np.array(struct.unpack(a, data))
    i = data[1::2]
    q = data[::2]
    data = q
    data = data.reshape((8, 128))

在与 MATLAB 中类似的代码段中使用数据变量:

    if data.shape[0] % 2 != 0:
        raise ValueError("The number of rows in 'data' must be even.")

    Q = data
    NUM_ANGLE_BINS = np.shape(Q)[0]
    theta = np.degrees(np.arcsin(np.linspace(-NUM_ANGLE_BINS/2 + 1, NUM_ANGLE_BINS/2 - 1, NUM_ANGLE_BINS) * (2/NUM_ANGLE_BINS)))
    print(theta.shape)
    range_bins = 1.0
    posX = np.outer(range_bins, np.sin(np.radians(theta)))
    posY = np.outer(range_bins, np.cos(np.radians(theta)))
    xlin = np.linspace(-np.floor(np.max(range_bins)), np.ceil(np.max(range_bins)), 200)
    ylin = np.linspace(0, np.ceil(np.max(range_bins)), 200)
    X, Y = np.meshgrid(xlin, ylin)

    QQ = fftshift(np.abs(Q))
    print('posXY', posX.flatten().shape, posY.flatten().shape)
    try:
        Z = griddata((posX.flatten(), posY.flatten()), QQ, (X, Y), method='nearest')
    except Exception as e:
        print(e)

    fig, ax = plt.subplots()
    try:
        hAzimuthHeatmapPlot = ax.contourf(X, Y, Z, cmap='jet')
    except Exception as e:
        print(e)

    ax.axis('equal')
    ax.set_xlim([-np.ceil(np.max(range_bins)), np.ceil(np.max(range_bins))])
    ax.set_ylim([0, np.ceil(np.max(range_bins))])
    ax.set_xlabel('Range X-Axis [m]')
    ax.set_ylabel('Range Y-Axis [m]')
    titleStr = 'Azimuth Static Heatmap'

    ax.set_title(titleStr)
    fig.colorbar(hAzimuthHeatmapPlot)


    plt.show()

但结果并不是预期的结果、我很难理解如何做到这一点。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    你的轴是否正确? 我觉得奇怪的是,你的距离在 x 和 y 中只延伸到1米。我们不会逐行查看你的 python 代码,但这在我看来是一个潜在的问题。 我会查看您正在创建的线性空间、并确保它看起来正确、 然后我还会注意另一个线程会在 FFT 中转置并切断一些指标。

    qq = fftshift (abs (Q)、1);
    qqqq=qqqqq.';
    qqqqq=qqq (:、2:end); 


    此致!
    纳特