RTL-SDR超声成像

rtl-ultrasound的Python项目详细描述


实时超声


TOdo:标题旁边的徽标

TOdo:获取徽章

  • 构建传递(travis)
  • 生成传递(appveyor)
  • 保险范围x%(工作服.io)
  • 文档传递(readthedocs.io)
  • 代码质量(Codacy)
  • PYPI(徽章。愤怒。IO)
  • 许可证
  • gitter.im
  • DOI(Zenodo)

最新结果

有关更多详细信息,请参见2018年8月21日的"writeup"。

压电换能器由伺服电机扫描gif

硬件设置,使用simplerick v1.1、12.5兆赫低通滤波器和rtl-sdrsetup

summary

简介

为什么SDR?

B型超声产生的模拟信号(即二维成像) 基本上是调幅(AM)信号。信号的包络(即振幅)对应于物理介质中的边界信息,信号的载频等于换能器的谐振频率。

大多数超声系统采用以下两种方法之一进行数据采集:

  1. 超声波信号的直接采样: 该方法在时域内保留了原始信号,并考虑了传感器的任意频率,为后处理和分析提供了最佳的灵活性。该方法能同时提取信号的幅度和相位信息,对b型和多普勒成像都有一定的参考价值。 然而,这种方法需要高采样率的adc,以及高带宽和数字数据存储。
  2. 使用模拟硬件进行包络检测:执行幅度解调(通常使用基于二极管的整流器和低通滤波器)以产生包络信号,然后以较低的采样率获取包络信号。 这种方法降低了对数字数据的带宽和存储要求,但也存在一些缺点:
    • 除非低通滤波器是可调的,否则这种方法不能适应不同的传感器频率。
    • 二极管的非线性可能会产生谐波失真。
    • 信号中的所有相位信息都丢失,因此对多普勒模式成像无效。
  3. < > >

    Peyton et al已证明,正交取样可用于降低超声成像系统的带宽要求。

    结果表明,正交调制对于软件无线电(sdr)是必不可少的,因为任何类型的幅度调制、频率调制、相位调制或它们的组合都可以表示为正交调制的特殊情况。因此,SDR中使用的许多软硬件技术都可以应用于超声成像。

    为什么是RTL-SDR?

    RTL-SDR中的RTL2832U芯片采用混合方式进行数据采集。它采用高采样率adc(28.8msps),然后是软件可配置的数字下变频器(ddc),以较低的采样率(高达2.56msps)生成iq数据,从而减少带宽和存储需求。然后,我们可以在软件中执行信封检测。

    另外,RTL-SDR真的很便宜(美国亚马逊的价格低于25美元)! 因此,有很多软件支持和RTL-SDR的大型社区。

    通过一些软件调整,应该可以用更昂贵的SDR(例如AirSpy HF+,LimeSDR)代替RTL-SDR,以满足需要更好的ADC分辨率和信噪比的用例。

    TOdo:系统总成本

    安装

    系统依赖项

    安装系统依赖项:

    • 带有pip的python 3
    • librtlsdr

    Mac操作系统

    brew安装python3 librtlsdr

    警告:如果以前安装的软件捆绑了过期版本的librtlsdr, 您可能需要删除它,或覆盖librtlsdr的符号链接:brew link--overwrite librtlsdr

    自动安装

    安装rtl_超声波:
    pip3安装rtl_超声波

    手动安装

    克隆开发回购:
    git clone git@github.com:wlmeng11/rtl_超声波.git

    安装python包依赖项:
    pip3 install-r requirements.txt

    运行安装脚本:
    PIP3安装。

    用法

    硬件设置

    此软件设计用于rtl-sdr v3 与SimpleRick硬件一起使用。

    TOdo:框图

    但是,该软件也可用于任何超声硬件 提供可馈送至RTL-SDR输入端的模拟信号输出。

    拍摄图像

    要从rtl-sdr捕获大约1秒的数据并将其保存到.npz文件中,请运行:
    rtl_到npz-v-n 5120000

    接下来,从.npz文件生成一个图像:
    b\u mode-v——数据(数据文件名).npz

    在未来,这个过程将被简化为一个单独的脚本,也可能是一个图形用户界面。

    文档

    从数据采集到渲染图像的整个过程的一个相当全面的概述 可在2018年8月13日的实验中找到。

    基本上,它可以归结为以下步骤:

    • 从RTL-SDR获取IQ样本
    • 向上采样
    • 提取信封
    • 将信号分成扫描行
    • 将扫描线叠加到图像中
    • 执行极坐标到笛卡尔坐标的图像转换

    TOdo:这些步骤将与多线程并行,以便 通过流水线提供快速的图像更新率

    免责声明

    本软件不用于任何医疗或诊断目的。

    绝对不提供任何明示或暗示的保证。

    许可证

    此存储库中包含的软件使用了pyrtlsdr模块,因此是pyrtlsdr的派生作品。因此,这项工作尊重Pyrtlsdr的GPLv3许可证,并且类似地在GPLv3下分发。

    许可证的全文可以在复制文件中找到。

    pyrtlsdr版权所有(c)2013年,由罗杰所有https://github.com/roger-

    rtl戋u超声版权所有(c)2018 William Meng

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


热门话题
java SimpleFramework和工厂方法   Java适当地处理异常   java单例类不起作用   java小程序和Swing在eclipse中不显示组件   多个键上的java Redisson FastRemove不起作用   java验证请求正文不等于模式   在Java中从URL读取数据   eche RecyclerView项的java Set自定义字体   string Java如何从Date获取HH:mm:ss   当Java应用程序落后于负载均衡器时,在某些URL上强制使用SSL   使用esapi时发生java错误   java使用流根据第二个列表中的值更新一个列表中的对象   组织。openqa。硒。Java中的NoTouchElementException WebDriver?   从JSON字符串Java创建CSV文件