当前位置: 首页 > article >正文

近场声全息(NAH)数据与MATLAB实现

一、近场声全息核心原理近场声全息NAH通过测量声源近场区域的声压分布包含传播波和倏逝波成分利用空间傅里叶变换重建声场分布。其核心公式基于Helmholtz-Kirchhoff积分方程其中p0(kx,ky)p0(k_x,k_y)p0(kx​,ky​)为全息面声压角谱G(kx,ky,z)G(k_x,k_y,z)G(kx​,ky​,z)为格林函数zzz为重建面与全息面距离二、数据获取与处理流程2.1 数据采集系统构成% 典型NAH数据采集系统MATLAB模拟function[p_holo,pos]data_acquisition()% 参数设置c343;% 声速(m/s)f01000;% 中心频率(Hz)lambdac/f0;% 波长(m)dxlambda/4;% 采样间距% 生成声源点源阵列num_sources4;src_pos[0.1,0.2;0.3,0.4;0.5,0.6;0.7,0.8](ref);% 声源位置(m)src_amp[1,0.8,0.6,0.4](ref);% 声源强度% 全息面测量holoplane_size;% 全息面尺寸(m)[X,Y]meshgrid(linspace(-0.5,0.5,50),linspace(-0.5,0.5,50));p_holozeros(size(X));% 模拟声场测量fori1:numel(src_amp)k2*pi*f0/c;Gexp(1j*k*sqrt((X-src_pos(i,1)).^2(Y-src_pos(i,2)).^20.1^2));p_holop_holosrc_amp(i)*G;end% 添加测量噪声p_holop_holo0.05*randn(size(X));pos[X(:),Y(:)];end2.2 关键数据处理步骤波数域变换将空间域数据转换到波数域functionPspatial_fft(p_holo,dx,dy)[N,M]size(p_holo);kx(2*pi/(N*dx))*(-N/2:N/2-1);ky(2*pi/(M*dy))*(-M/2:M/2-1);[KX,KY]meshgrid(kx,ky);Pfftshift(fft2(fftshift(p_holo)));end传递算子计算建立全息面与重建面的关系functionGtransfer_operator(z_recon,z_holo,c)k2*pi*c/(c/f0);% 波数[KX,KY]meshgrid(linspace(-pi,pi,size(p_holo,1)),...linspace(-pi,pi,size(p_holo,2)));Gexp(1j*k*sqrt(z_recon^2(sqrt(KX.^2KY.^2)z_holo).^2));end三、MATLAB重建算法实现3.1 基本重建算法Kirchhoff积分法functionp_reconreconstruct(p_holo,z_holo,z_recon)% 参数设置c343;% 声速[X,Y]meshgrid(linspace(-0.5,0.5,50),linspace(-0.5,0.5,50));[KX,KY]meshgrid(linspace(-pi,pi,size(X)),linspace(-pi,pi,size(X)));% 波数域变换P_holospatial_fft(p_holo,1/0.01,1/0.01);% 传递算子Gtransfer_operator(z_recon,z_holo,c);P_reconP_holo.*G;% 逆变换p_reconreal(ifft2(ifftshift(fftshift(P_recon))));end3.2 改进算法压缩感知法functionp_reconcs_reconstruct(p_holo,z_recon,z_holo)% 压缩感知重建P_holospatial_fft(p_holo,1/0.01,1/0.01);% 稀疏变换A(x)spatial_fft(x,1/0.01,1/0.01);bP_holo(:);% OMP算法optsstruct(maxit,50,tol,1e-6);x_reconomp(A,b,0.1,opts);% 逆变换p_reconreshape(x_recon,size(p_holo));end四、完整数据处理流程示例%% 数据生成[p_holo,pos]data_acquisition();%% 参数设置z_holo0.1;% 全息面位置(m)z_recon0.05;% 重建面位置(m)%% 基本重建p_recon_basicreconstruct(p_holo,z_holo,z_recon);%% 压缩感知重建p_recon_cscs_reconstruct(p_holo,z_recon,z_holo);%% 可视化figure;subplot(1,3,1);imagesc(pos(:,1),pos(:,2),p_holo);title(全息面测量数据);xlabel(X (m));ylabel(Y (m));colorbar;subplot(1,3,2);imagesc(pos(:,1),pos(:,2),p_recon_basic);title(Kirchhoff重建结果);xlabel(X (m));ylabel(Y (m));colorbar;subplot(1,3,3);imagesc(pos(:,1),pos(:,2),p_recon_cs);title(压缩感知重建结果);xlabel(X (m));ylabel(Y (m));colorbar;参考代码 近场声全息数据和matlab程序www.youwenfan.com/contentcss/80114.html五、关键问题解决方案5.1 测量噪声抑制% 维纳滤波降噪functionp_denoisedwiener_filter(p_holo,SNR)Pfft2(p_holo);noise_powervar(p_holo(:))/(10^(SNR/10));Habs(P).^2/(abs(P).^2noise_power);p_denoisedreal(ifft2(H.*P));end5.2 阵列配置优化% 最优阵列设计均匀圆阵functionposoptimal_array(N,radius)angleslinspace(0,2*pi,N,UniformOutput,false);posradius*[cos(cell2mat(angles)),sin(cell2mat(angles))];end六、应用案例汽车噪声源识别%% 汽车噪声源定位load(car_noise_data.mat);% 包含全息面测量数据% 参数设置z_holo0.15;% 全息面位置z_recon0.05;% 重建面位置% 重建声场p_reconreconstruct(car_data,z_holo,z_recon);% 声源定位[~,loc]max(p_recon(:));[xx,yy]ind2sub(size(p_recon),loc);fprintf(噪声源位置: (%.2f, %.2f) m\n,xx*0.01,yy*0.01);七、扩展功能实现7.1 动态声场可视化% 时域声场动画functionanimate_sound_field()% 参数设置num_frames50;z_reconlinspace(0.05,0.25,num_frames);figure;fori1:num_frames p_reconreconstruct(measured_data,z_holo,z_recon(i));imagesc(pos(:,1),pos(:,2),p_recon);title(sprintf(z%.2f m,z_recon(i)));caxis([min(p_recon(:)),max(p_recon(:))]);drawnow;endend7.2 多频段复合重建% 宽频带重建算法functionp_reconbroadband_reconstruction(frequencies,z_holo)num_freqnumel(frequencies);p_reconzeros(size(measured_data));fori1:num_freq ffrequencies(i);c343/sqrt(1(f/1000)^2);% 考虑温度影响的声速p_holosimulate_hologram(f,c);p_reconp_reconreconstruct(p_holo,z_holo,0.1);endp_reconp_recon/num_freq;end八、实验验证与误差分析8.1 验证实验设置% 标准声源验证standard_sourceload(standard_sound_source.mat);% 包含已知声源数据p_holo_measmeasure_hologram(standard_source);% 实际测量p_reconreconstruct(p_holo_meas,0.1,0.05);% 误差计算errornorm(p_recon(:)-standard_source.p(:))/norm(standard_source.p(:));fprintf(重建误差: %.2f%%\n,error*100);8.2 误差来源分析误差类型影响因素补偿方法有限孔径效应测量面尺寸不足稀疏波数外推传感器非均匀性探测器灵敏度差异校准矩阵补偿环境噪声背景噪声干扰维纳滤波多次反射空间混响逆滤波技术九、工程应用建议硬件选型探测器选择宽频带20Hz-20kHzMEMS麦克风阵列采样率≥4倍信号最高频率阵元间距≤λ/2避免空间混叠算法优化低频段500Hz采用传统NAH算法中高频段500Hz-5kHz使用压缩感知方法实时处理GPU加速FFT运算后处理技术声源贡献度分析PCA时频域联合分析噪声源动态演化可视化十、扩展阅读推荐经典文献Williams E G, et al. “Fundamentals of Acoustical Holography” (1989)Maynard J D. “Nearfield Acoustic Holography” (1995)开源工具Virtual Acoustics Toolbox (MATLAB)Sound Field Analysis (Python)最新进展神经网络辅助NAH重建2023 IEEE Transactions on Audio量子声全息技术Nature Photonics, 2024

相关文章:

近场声全息(NAH)数据与MATLAB实现

一、近场声全息核心原理 近场声全息(NAH)通过测量声源近场区域的声压分布(包含传播波和倏逝波成分),利用空间傅里叶变换重建声场分布。其核心公式基于Helmholtz-Kirchhoff积分方程:其中: p0(kx,…...

Tomcat中间件能够提供的能力

Tomcat 中间件能够提供的能力主要包括以下几个方面:‌运行 Java Web 应用程序‌:Tomcat 是一个开源的 Web 应用服务器,主要用于运行基于 Java 的 Web 应用,包括 Servlet、JSP 和 JavaBean 等组件。‌提供 Servlet 容器功能‌&…...

hgproxy4.0.35.0之前版本数据库连接卡在parse状态

文章目录环境症状问题原因解决方案环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5.10 症状 查询数据库后台连接进程,发现主备节点均有超过几天的长连接,且状态卡在parse状态 问题原因 数据库会话sql出错后…...

MiniCPM-o-4.5-nvidia-FlagOS跨平台部署:Windows系统配置要点

MiniCPM-o-4.5-nvidia-FlagOS跨平台部署:Windows系统配置要点 想在自己的Windows电脑上跑起来最新的MiniCPM-o-4.5-nvidia-FlagOS,结果被一堆环境问题卡住了?别急,这太正常了。很多朋友在Windows上部署这类AI项目时,总…...

Phi-3-mini-4k-instruct-gguf参数详解:温度0.0时技术文档摘要的逻辑连贯性分析

Phi-3-mini-4k-instruct-gguf参数详解:温度0.0时技术文档摘要的逻辑连贯性分析 1. 模型概述与核心能力 Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本,专为高效推理场景优化。该模型在问答、文本改写、摘要整理等任务中表…...

从“认怂”到“被看见”:flomo的产品设计哲学

当大多数笔记软件都在追求“大而全”时,有一款产品选择了一条完全不同的路。它不让你写标题,不支持复杂排版,甚至在官网上大大方方地列出“自己不擅长什么”。它的创始人说:“35岁再创业,我学会了认怂。”它就是flomo&…...

Nginx + FFmpeg 核心配置

Nginx FFmpeg 核心配置(2 种最实用方案)我给你最简、能直接用的配置,不用你自己改半天,分两种场景:Nginx 接收 FFmpeg 推流(直播)Nginx 调用 FFmpeg 自动转码(高清 / 标清&#xff…...

Chrome密码一键提取:3分钟找回所有浏览器保存的密码

Chrome密码一键提取:3分钟找回所有浏览器保存的密码 【免费下载链接】chromepass Get all passwords stored by Chrome on WINDOWS. 项目地址: https://gitcode.com/gh_mirrors/chr/chromepass 你是否曾经因为忘记某个重要网站的登录密码而感到焦虑&#xff…...

如何高效解决Windows驱动存储臃肿问题?DriverStore Explorer带来75-90%的空间释放效率提升

如何高效解决Windows驱动存储臃肿问题?DriverStore Explorer带来75-90%的空间释放效率提升 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer Windows系统随着使用时间增…...

Obsidian表格处理革新:Excel插件的无缝集成方案

Obsidian表格处理革新:Excel插件的无缝集成方案 【免费下载链接】obsidian-excel 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-excel 在知识管理的日常工作中,你是否经常遇到这样的困境:在Obsidian中记录项目数据时&#…...

一文读懂DMXAPI:一个Key接入300+大模型,开发者降本增效新选择

导语:在大模型应用爆发式增长的今天,开发者面临模型选择多、接入成本高、并发限制严、发票合规难等痛点。有没有一种方案,能让开发者"一次接入,全模型可用"?本文带你深入了解国内新兴的AI大模型聚合平台——…...

基于Vue的川汇水产养殖管理系统[vue]-计算机毕业设计源码+LW文档

摘要:随着水产养殖业的快速发展,传统的管理方式已难以满足现代化水产养殖的需求。本文介绍了一款基于Vue框架开发的川汇水产养殖管理系统,该系统旨在提高水产养殖管理的效率和精准度。系统涵盖了系统用户管理、水质管理、药品管理、设备管理、…...

IDEA使用maven打包Java项目,跳过test的3种方法

文章目录第一种&#xff1a;命令行第二种&#xff1a;pom.xml设置第三种&#xff1a;IDEA工具操作第一种&#xff1a;命令行 命令行的方式&#xff0c;在哪输入命令都行。 mvn install -Dmaven.test.skiptrue第二种&#xff1a;pom.xml设置 修改pom.xml文件 <build>&…...

Anthropic 又双叒翻车了:Claude Code源代码打包失误,这已经是第几次了?

今天&#xff08;2026-03-31&#xff09;上午&#xff0c;Anthropic的Claude Code CLI又出大糗了。 安全研究员 Chaofan Shou发现&#xff1a; 他们的 npm 包里多塞了一个 60MB 的 cli.js.map 文件。 结果呢&#xff1f;完整源代码直接公开——1900多个 TypeScript 文件&#x…...

小型物联网系统——家居网关设计(C语言实现)

一、系统概述 家居网关是小型物联网系统的核心枢纽&#xff0c;负责多协议设备接入、数据汇聚转发、本地/远程控制三大核心功能。本设计基于STM32F103C8T6主控&#xff0c;集成Zigbee&#xff08;传感器接入&#xff09;、Wi-Fi&#xff08;云端通信&#xff09;、GPIO&#xf…...

Autovisor:5分钟实现智慧树课程自动化学习的智能助手

Autovisor&#xff1a;5分钟实现智慧树课程自动化学习的智能助手 【免费下载链接】Autovisor 2024知道智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装发行版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor Autovisor是一款专为智慧树在线课程平…...

手把手调试:从V8引擎的ArrayBuffer到WebAssembly,一步步拆解Chrome CVE-2020-6507漏洞利用链

深入解析Chrome V8引擎漏洞利用&#xff1a;从ArrayBuffer到WebAssembly的内存操控实战 浏览器安全研究领域近年来持续升温&#xff0c;其中V8引擎作为Chrome和Node.js的核心组件&#xff0c;其安全性直接影响着数十亿用户。本文将带您深入探索一个典型V8漏洞&#xff08;CVE-2…...

实测,用 AI (Stitch + Codex) 给产品做个官网

作为一个写了 10 年代码的老程序员&#xff0c;这几年听得最多的一句话就是&#xff1a; “AI 已经可以写代码、做设计了。” 但说实话&#xff0c;我一直是半信半疑的状态&#xff08;停留在 Cursor 刚出来的那会儿&#xff09;。 于是&#xff0c;今天我决定不看别人说&…...

导出浏览器网络日志 har 后缀的日志是什么 怎么打开

导出浏览器网络日志 har 后缀的日志是什么 怎么打开 一、实机演示二、har 后缀的日志是什么 .har 后缀的日志文件是一种专门用于记录和分析网页网络活动的文件格式。 &#x1f4c4; HAR 文件是什么&#xff1f; HAR 的全称是 HTTP ARchive。它本质上是一个标准的 JSON 文件&…...

ExplorerBlurMica终极指南:让你的Windows文件资源管理器焕然一新

ExplorerBlurMica终极指南&#xff1a;让你的Windows文件资源管理器焕然一新 【免费下载链接】ExplorerBlurMica Add background Blur effect or Acrylic (Mica for win11) effect to explorer for win10 and win11 项目地址: https://gitcode.com/gh_mirrors/ex/ExplorerBlu…...

弧形导轨精度等级适配策略

弧形导轨是用于实现曲线运动的线性导向装置&#xff0c;广泛应用于自动化设备、机器人、医疗机械等领域。弧形导轨作为机械传动中的核心部件&#xff0c;其精度等级直接影响设备性能与稳定性。从精密加工到重型机械&#xff0c;不同场景对导轨的制造精度、运行精度及耐磨性要求…...

如何用Marzipano构建高性能360度全景图应用?

如何用Marzipano构建高性能360度全景图应用&#xff1f; 【免费下载链接】marzipano A 360 media viewer for the modern web. 项目地址: https://gitcode.com/gh_mirrors/ma/marzipano Marzipano是一个由Google开发的现代Web 360度媒体查看器&#xff0c;专为构建沉浸式…...

ai赋能开发:让快马平台智能生成mpu6050手势识别代码

最近在做一个基于MPU6050传感器的手势识别项目&#xff0c;发现用传统方式开发效率太低&#xff0c;于是尝试了InsCode(快马)平台的AI辅助开发功能。整个过程让我深刻体会到&#xff0c;AI如何改变硬件开发的效率瓶颈。 数据采集模块的智能生成 当我输入"用Arduino持续读取…...

洛雪音乐音源项目终极指南:如何免费获取全网高品质音乐资源

洛雪音乐音源项目终极指南&#xff1a;如何免费获取全网高品质音乐资源 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 你是否曾为寻找免费的高品质音乐资源而烦恼&#xff1f;或者厌倦了在多个音…...

收藏!从Prompt到Harness,AI工程升级三步搞定大模型应用

本文阐述了AI工程从关注Prompt到Context再到Harness的演进过程。Prompt工程负责明确任务指令&#xff0c;Context工程负责提供准确有效的信息供给&#xff0c;而Harness工程则关注AI在系统中的可靠执行与治理。三者并非替代关系&#xff0c;而是嵌套协作&#xff0c;共同推动AI…...

新手入门:用快马生成第一个交易平台风格的前端页面

今天想和大家分享一个特别适合前端新手的练手项目——用InsCode(快马)平台快速搭建一个简易的交易平台前端页面。作为一个刚接触金融科技开发的小白&#xff0c;我发现这种模拟真实业务场景的项目特别能激发学习兴趣。 项目目标拆解 这个模拟交易账户页面需要实现几个核心功能模…...

电话号码定位技术:三步实现手机号码精准定位的终极指南

电话号码定位技术&#xff1a;三步实现手机号码精准定位的终极指南 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/gh_mir…...

Kafka消费者在大数据生态中的集成:从数据湖到AI管道的完整架构

一、引言在数字化转型的浪潮中&#xff0c;企业对数据处理的需求已从传统的批处理模式转向实时化、高并发的场景。无论是金融风控中的毫秒级欺诈检测、电商交易中的个性化实时推荐&#xff0c;还是物联网监控中的异常预警&#xff0c;实时数据流处理能力已成为业务竞争力的核心…...

Axios知识

安装:npm方式&#xff1a;npm install axios直接方式&#xff1a;<script src"https://unpkg.com/axios/dist/axios.min.js"></script>实例&#xff1a;// 发起一个post请求 axios({method: post,url: /user/12345,data: { // 向后端传参数firstName: Fr…...

conda 注册环境 笔记

查看conda根目录&#xff1a;conda info --base收到&#xff1a;/home/chajing/miniconda3注册路径为名字&#xff1a;ln -s /data/lbg/envs/py12 /home/chajing/miniconda3/envs/py12conda activate py12conda activate /data/lbg/envs/py12...