彩超框架EchoSight开发日志记录

EchoSight开发记录

蒋志强

我会不定期的更新 开发进展。最近更新进展于2024年1月15日

1.背景

由于某些不可抗逆的原因,离开了以前的彩超大厂,竞业在家,难得有空闲的时间。我计划利用这段时间 自己独立 从零开始 搭建一套 彩超系统的软件工程框架。这个框架的设计水准力求达到目前商业级产品中 第一梯队 的水平。

这套工程框架,我暂时取名为EchoSight。Echo表示声音/回声,Sight本意为视野/看见的意思,所以EchoSight就是通过超声成像的意思,非常务实;开发基本完成后,如果没有什么特别原因,我会把程序分享出来(可执行程序),请各位业内大牛指教。

作为目标达到商业级 优秀的工程框架,EchoSight需要满足很多的要求,包括:

1. 框架的可扩展性;

2. 框架的高度灵活配置性;

3. 后续扩展开发的模块独立性与低耦合,以及模块的封装;

4. CPU线程调度的安全高效与透明简单;

5. CPU SIMD与GPU执行的高效实时性;

6. 离线仿真配置与在线运行配置的近似性与可替换性;

7. 彩超链路分析与输出的便捷接口;

8. 工程框架与matlab良好的联调机制;

其它更多 TBD...

因此,这会是一个满大的挑战,特别是对我自己一个人独立开发而言。自己最终在这段时间内能做什么程度,我自己也不知道。这样挑战的单人项目,已经处于我个人能力圈的边缘地带,能做成什么样,实践是检验能力的唯一标准。干,就得了,生死看淡,不服就干!

随着项目的推进,也许自身在系统上的短板或工程的短板就暴露出来了,补上了,自己能力圈也就扩大了。

2.开发进展记录

2.0 初步构思

(难以记时)

基本框架思路成型,然后又推倒几次,目前觉得基本可行。

2.1服务器搭建 完成

(2023年12月15日)

工程代码,开发设计文档,系统仿真内容 SVN服务器搭建完成。

Q:为啥不用GIT ?

A:GIT用得不熟,SVN用得多。开发的辅助工具,不在这些无关紧要的东西上本末倒置。

2.2 基础类的设计与多线程策略

(2023年12月25日)

基础类框架的设计开发第2次推倒重构,C++从ISO C++11改为C++20,以便使用C++最新特性设计。各模块空转情况下,多线程运行正常;

2.3 离线数据模块工作正常与多模块配置正常

(2023年12月30日)

通道数据仿真模块连线,注入数据正常,与其它各模块多线程配合未见异常。

扫查序列定义解析 正常,链路多模块配置与运行时自动搭建正常,XML解析正常;

2.4 Matlab仿真数据与工程匹配

(2023年01月09日)

仿真数据不能完美符合自己的需求,重新实验多种仿真工具field II, KWave, Focus,PField,MUST等。顺便还发现了某仿真平台里的又一个BUG,与作者联系(这是我发现他的第二个BUG了)。

更新开发设计文档。更新标准IQ波束合成模块,B模式模块。软件连线工作正常,图像结果异常,调试进行中...

2.5 数据解包模块重构与波束合成更新

(2023年01月15日) 

解包模块重构,支持任意FPGA打包策略。matlab仿真找到折中方案,满足需求,更新离线数据。

标准IQ波束合成模块调试,解决若干BUG(调试脱了一层皮),更新MLA支持,更新变迹计算的更优策略。

标准IQ波束合成 工程输出 与 matlab输出 基本匹配,未见明显异常。节前 重要 阶段性节点!

To be continued ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/633183.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【陈老板赠书活动 - 22期】- 人工智能(第三版)

陈老老老板🧙‍♂️ 👮‍♂️本文专栏:赠书活动专栏(为大家争取的福利,免费送书) 🤴本文简述:活就像海洋,只有意志坚强的人,才能到达彼岸。 👳‍♂️上一篇文章&#xff…

浅谈CPU进入保护模式的方法

看程序要想思路不乱,最重要的就是要抓到程序的主线,不要被一些只是用来保护的代码打乱。如何抓到主线呢?比较法学习代码是比较有效的,比如对于CPU如何进入保护模式的理解。 不同的操作系统作者有自己的方法,代码看起来…

高级编程JavaScript中的数据类型?存储上能有什么差别?

在JavaScript中,我们可以分成两种类型: 基本类型复杂类型 两种类型的区别是:存储位置不同 一、基本类型 基本类型主要为以下6种: NumberStringBooleanUndefinednullsymbol Number 数值最常见的整数类型格式则为十进制&…

Liunx:线程控制

目录 创建线程:pthread_create(); 线程等待:pthread_join(); 线程退出:pthread_exit(); 线程取消:pthread_cancel() 说线程的时候说过,liunx没有选择单独定义线程的数据结构和适配算法,而是用轻量级进程…

【计算机网络】OSI七层模型与TCP/IP四层模型的对应与各层介绍

1 OSI七层模型与TCP/IP四层模型对应 2 OSI七层模型介绍 OSI(Open Systems Interconnection)模型是一个由国际标准化组织(ISO)定义的七层网络体系结构,用于描述计算机网络中的通信协议。每一层都有特定的功能&#xff…

Python Web开发:构建高效、可扩展的Web应用

引言: 随着互联网的快速发展,Web应用已经成为人们日常生活中不可或缺的一部分。Python作为一种简单易学、功能强大的编程语言,在Web开发领域也有着广泛的应用。本文将介绍如何使用Python来构建高效、可扩展的Web应用,并提供一些实…

基于arcgis js api 4.x开发点聚合效果

一、代码 <html> <head><meta charset"utf-8" /><meta name"viewport"content"initial-scale1,maximum-scale1,user-scalableno" /><title>Build a custom layer view using deck.gl | Sample | ArcGIS API fo…

启动低轨道卫星LEO通讯产业与6G 3GPP NTN标准

通讯技术10年一个大跃进&#xff0c;从1990年的2G至2000年的3G网路&#xff0c;2010年的4G到近期2020年蓬勃发展的5G&#xff0c;当通讯技术迈入融合网路&#xff0c;当前的 5G 技术不仅可提供高频宽、低延迟&#xff0c;同时可针对企业与特殊需求以 5G 专网的模式提供各式服务…

yii2 手动安装第三方扩展

1复制第三方扩展到C:\Users\xpz\Documents\NetBeansProjects\yiicms\admincms.china.com\vendor\yiisoft\目录下 2 添加自动加载&#xff1a;打开vendor/yiisoft/extensions.php 文件&#xff0c;在里面的数组里增加一项&#xff0c;如下面代码 yiisoft/yii2-elasticsearch &…

【.NET Core】 多线程之(Thread)详解

【.NET Core】 多线程之&#xff08;Thread&#xff09;详解 文章目录 【.NET Core】 多线程之&#xff08;Thread&#xff09;详解一、概述二、线程的创建和使用2.1 ThreadStart用于无返回值&#xff0c;无参数的方法2.2 ParameterizedThreadStart:用于带参数的方法 三、线程的…

【机器学习】DBSCAN算法

参考链接&#xff1a; https://blog.csdn.net/haveanybody/article/details/113092851 https://www.jianshu.com/p/dd6ce77bfb8a 1 介绍 DBSCAN(Density-Based Spatial Clustering of Applica tion with Noise)算法是于1996年提出的一种简单的、有效的基于密度的聚类算法&…

使用 Python 第三方库 xlwt 写入数据到 Excel 工作表

1. 安装 xlwt 库 Python 写入数据到 Excel 工作簿中可以使用第三方库 xlwt. xlwt 拆分下来看就是 excel 和 write 的简化拼接&#xff0c;意思就是写数据到 Excel. 这个第三方库的 pip 安装命令如下所示&#xff1a; pip install xlwt -i https://mirrors.aliyun.com/pypi/si…

线性表的顺序存储实现

前言 线性表的顺序存储及基本操作的实现 一、数据对象集 线性表&#xff08;List&#xff09;是由n个元素构成的有序序列&#xff0c;用户处理线性表数据时常常需要初始化、查找、插入、删除、计算数据长度等操作。 数据Data利用数组存储&#xff0c;利用下标使得查找 等操作…

【手把手带你玩转MyBatis】进阶篇:强强联手,深度解析如何无缝整合MyBatis与Spring框架

在实际开发中&#xff0c;将MyBatis持久层框架与Spring框架进行整合&#xff0c;可以充分利用Spring的依赖注入&#xff08;DI&#xff09;和面向切面编程&#xff08;AOP&#xff09;等特性&#xff0c;进一步提升项目的可维护性和扩展性。以下是详细步骤&#xff1a; 1. 添加…

FairGuard游戏安全2023年度报告

导 读&#xff1a;2023年&#xff0c;游戏行业摆脱了疫情带来诸多负面影响&#xff0c;国内游戏市场收入与用户规模双双实现突破&#xff0c;迎来了历史新高点。但游戏黑灰产规模也在迅速扩大&#xff0c;不少游戏饱受其侵扰&#xff0c;游戏厂商愈发重视游戏安全问题。 为帮助…

WordPress怎么禁用文章和页面古腾堡块编辑器?如何恢复经典小工具?

现在下载WordPress最新版来搭建网站&#xff0c;默认的文章和页面编辑器&#xff0c;以及小工具都是使用古腾堡编辑器&#xff08;Gutenberg块编辑器&#xff09;。虽然有很多站长说这个编辑器很好用&#xff0c;但是仍然有很多站长用不习惯&#xff0c;觉得操作太难了&#xf…

C/C++ BM5 合并K个已排序的链表

文章目录 前言题目1 解决方案一1.1 思路阐述1.2 源码 2 解决方案二2.1 思路阐述2.2 源码 总结 前言 在接触了BM4的两个链表合并的情况&#xff0c;对于k个已排序列表&#xff0c;其实可以用合并的方法来看待问题。 这里第一种方法就是借用BM4的操作&#xff0c;只不过是多个合…

怎么处理vue项目中的错误详解

文章目录 一、错误类型二、如何处理后端接口错误代码逻辑问题全局设置错误处理生命周期钩子 三、源码分析小结参考文献 一、错误类型 任何一个框架&#xff0c;对于错误的处理都是一种必备的能力 在 Vue 中&#xff0c;则是定义了一套对应的错误处理规则给到使用者&#xff0…

【MATLAB源码-第117期】基于matlab的蜘蛛猴优化算法(SMO)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 蜘蛛猴优化算法&#xff08;Spider Monkey Optimization, SMO&#xff09;是一种灵感来源于蜘蛛猴觅食行为的群体智能优化算法。蜘蛛猴是一种生活在南美洲热带雨林中的灵长类动物&#xff0c;它们在寻找食物时展现出的社会行…

深入探究 JavaScript 中的 String:常用方法和属性全解析(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…