社区讨论LinuxDo 最新
超声成像算法实战——FMC全矩阵捕获与TFM算法实现
之前讲相控阵的时候,有一个点没有提到,就是每一个声束在发射之前焦点就已经被延迟法则定死了,成像效果最好的区域始终是固定的,例如下面三张S扫图,它们是同一个探头和相同的试块,只是调整了聚焦深度。可以清楚看到,聚焦深度附近的区域成像更清晰,浅层与深层都因声束扩散而发糊。 什么是FMC 全聚焦算法 实测数据成像 GPU加速 extern "C" global void tfm accumulate( const float real, const float imag, // 解析信号的实部与虚部 const floa…
内容摘要
作者:#天将明
板块:#开发调优
之前讲相控阵的时候,有一个点没有提到,就是每一个声束在发射之前焦点就已经被延迟法则定死了,成像效果最好的区域始终是固定的,例如下面三张S扫图,它们是同一个探头和相同的试块,只是调整了聚焦深度。可以清楚看到,聚焦深度附近的区域成像更清晰,浅层与深层都因声束扩散而发糊。
什么是FMC
全聚焦算法
实测数据成像
GPU加速
extern "C" __global__ void tfm_accumulate(
const float* real, const float* imag, // 解析信号的实部与虚部
const float* index_table, // 每个阵元到所有像素的采样点索引
float* acc_real, float* acc_imag,
const long long n_elements, const long long n_samples,
const long long n_pixels)
{
const long long pixel = (long long)blockIdx.x * blockDim.x + threadIdx.x;
if (pixel >= n_pixels) return; // 一个线程负责一个像素
float tr = 0.0f, ti = 0.0f;
for (long long tx = 0; tx < n_elements; ++tx) {
const float index_tx = index_table[tx * n_pixels + pixel];
for (long long rx = 0; rx < n_elements; ++rx) {
const float index = index_tx + index_table[rx * n_pixels + pix
资讯来源
LinuxDo