【语音处理】基于加权压力匹配方法(WPMM)的私人声音系统研究(Matlab代码实现)

news2024/9/23 17:13:19

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🌈3 Matlab代码实现

🎉4 参考文献


💥1 概述

在本文中,提出了一种基于加权压力匹配方法(WPMM)的私人声音系统。目的是将输入信号设计到扬声器阵列,允许合成目标场,该目标场在所谓的暗点和听众位置之间具有较大的振幅变化。当阵列的输入能量有限时,该系统使听者能够控制方向性性能和在聆听位置再现目标场的准确性之间的权衡。这是通过基于对聆听区声场特性的限制来计算暗区中的WPMM权重来实现的。该系统针对许多预定义的用例场景进行了验证。在具有圆形阵列原型的消声环境中的实验结果表明,听者可以在很宽的频率范围内控制性能权衡。本文的第二部分介绍了当用户选择性能约束的新值时快速更新输入信号的算法。

📚2 运行结果

 

部分代码:


%% Algorithm 2
function [psi_est, q_temp] = Alg2_RecursiveBisectionSearch(zBT, zBT_zBconj, betaI, ZDH_ZD, zBconj, pBmin, Psi_Max, Psi_Min, thresh)
% Implementation of Alg 4
% Author: F Olivieri

psi_est = (Psi_Max - Psi_Min)/2 + Psi_Min;

q_temp = (zBT_zBconj + psi_est*ZDH_ZD + betaI)\zBconj;
pB = real(zBT*q_temp);
condition1 = abs(pB - pBmin);

if condition1 <= thresh ||  Psi_Max <= thresh % condition is met: Stop!
    return;
else % search for the parameter
    if pB < pBmin % yes: need to decrease psi_est
        Psi_Max =  psi_est;
    else % no: need to increase psi_est
        Psi_Min = psi_est;
    end
    
    psi_est = Alg2_RecursiveBisectionSearch(zBT, zBT_zBconj, betaI, ZDH_ZD, ...
        zBconj, pBmin, Psi_Max, Psi_Min, thresh);
end

end

%% Iterative search
function [q_fsp, psi_D_fsp] = fsp(q_fsp, psi_D_fsp, MatTemp, ZDH_ZD, zBconj, zBT, pB_min, delta_psi_Alg_1, lengthfreqbins, L)
% Implementation of Full-search of psi_D
% Author: F Olivieri

for freq_idx = 2:lengthfreqbins
    psi_D_temp = 1;
    q_temp = (MatTemp(:, :, freq_idx) + psi_D_temp*ZDH_ZD(:, :, freq_idx))\ zBconj(:, freq_idx);
    
    while zBT(freq_idx, :)*q_temp < pB_min && psi_D_temp > 0
        psi_D_temp = psi_D_temp - delta_psi_Alg_1;
        q_temp = (MatTemp(:, :, freq_idx) + psi_D_temp*ZDH_ZD(:, :, freq_idx))\ zBconj(:, freq_idx);
    end
    q_fsp(:, freq_idx) = q_temp;
    psi_D_fsp(freq_idx) = psi_D_temp;
end

end

🌈3 Matlab代码实现

🎉4 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]Ferdinando Olivieri, Filippo Maria Fazi, Simone Fontana, Dylan Menzies, Philip Arthur Nelson (2017) Generation of private sound with a circular loudspeaker array and the Weighted Pressure Matching method

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

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

相关文章

lammps教程:ovito转换data文件格式的方法

我是小马老师&#xff0c;本文与你分享一些关于lammps data文件格式转换的技巧和经验。 lammps是一个高度可定制的分子动力学模拟软件&#xff0c;它提供了丰富的功能和灵活的输入文件格式。其中&#xff0c;data文件是lammps中最常用的输入文件之一&#xff0c;用于描述模拟系…

Epoll 到底是什么?“不” 简单的网络I/O模型?

1 简介 Epoll 是个很老的知识点&#xff0c;是后端工程师的经典必修课。这种知识具备的特点就是研究的人多&#xff0c;所以研究的趋势就会越来越深。当然分享的人也多&#xff0c;由于分享者水平参差不齐&#xff0c;也产生的大量错误理解。 今天我再次分享 epoll&#xff0…

USB转GSM模块发送中英文测试

目录 使用模块前注意事项模块测试发送英文短信发送中文短信手机收到短信页面常见问题 总结 使用模块前注意事项 使用USB转GSM模块要 注意 两点: 1.所在地要有2G基站,因为这是2G信号产品。 2.最好使用移动卡&#xff0c;有些地方电信和联通卡无法使用。 模块测试 这里介绍模块…

在安卓手机搭建kali环境,手机变成便携式渗透神器

简介 kali是著名的黑客专用系统&#xff0c;一般都是直接装在物理机或者虚拟机上&#xff0c;我们可以尝试把kali安装在手机上&#xff0c;把手机打造成一个便携式渗透神器。 我们需要下载以下3款软件&#xff1a; (1).Termux(终端模拟器) (2).AnLinux(里边有各种安装liunx…

GPT时代,寻找讯飞星火大模型的算力支点

作者 | 辰纹 来源 | 洞见新研社 大模型的“涌现”还在持续。 5月底举行的中关村论坛上&#xff0c;有专家披露&#xff0c;中国10亿级参数规模以上的大模型已经发布了79个&#xff0c;刚刚结束的世界人工智能大会上&#xff0c;又有一批大模型批量发布。 大模型的热度居高不…

华大HC32F460 TCP Server实验

目录 1.实验目标 2.实验准备 3.主流程图 4.驱动代码 5.实验步骤 1.实验目标 本实验使用W5500服务器功能&#xff0c;通过串口实现与本地客户端透传数据。 2.实验准备 硬件搭建&#xff1a;ZW-HC32F460-BZ标准版开发板1套 软件搭建&#xff1a;MDK5.22 3.主流程图 4.驱动…

css实现按钮圆角渐变样式

最终成果图&#xff1a; 背景&#xff1a; 最近项目数据大屏这个样式给我卡住了&#xff0c;起因是UI设计想要按钮边框渐圆角背景透明渐变&#xff0c;我查找了好多资料也在问答里提问&#xff0c;都没有实现初始样式。原因是如果想用渐变边框就会使用到属性border-image&#…

在Microsoft Excel中带单位的数字如何求和

使用 Excel 中的 SUM 函数对一系列单元格、整列或非连续单元格求和。要创建出色的 SUM 公式&#xff0c;请将 SUM 函数与其他 Excel 函数结合使用&#xff0c;然而 SUM 函数不能直接对带单位的数字进行求和。 当直接相加带单位的几个数字会出现如下错误&#xff1a; 错误的原因…

811. 交换数值

链接&#xff1a; https://www.acwing.com/problem/content/813/ 题目&#xff1a; 输入两个整数 xx 和 yy&#xff0c;请你编写一个函数, 交换两个整数的数值并输出交换后的 xx 和 yy。 C中的格式为&#xff1a;void swap(int &x, int &y)。 Java中的格式为&#xff1…

【软件测试】Git 将项目本地推送至GitHub与Gitee(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Gitee拉取Github仓…

KeyShot 2023 Pro 对 Mac 和 Windows 系统的要求

KeyShot 2023 Pro 是一款功能强大的计算机辅助设计&#xff08;CAD&#xff09;渲染软件&#xff0c;它为用户提供了高质量的视觉效果和逼真渲染。 KeyShot 2023 Pro for Mac可以与各种主流 CAD 软件进行集成&#xff0c;包括 SolidWorks、AutoCAD、Rhinoceros、Fusion 360 等…

simulink matlab function

目录 改形参类型​编辑 多输出值 排序 peisistent 关键字&#xff0c;静态相当于static function添加trigger 输出调用function call() 改形参类型 多输出值 function [y1,y2] myfcn(u1,u2)y1 u1u2; y2 u1-u2; 排序 peisistent 关键字&#xff0c;静态相当于static func…

MIT 6.S081 -- Virtual memory for applications

MIT 6.S081 -- Virtual memory for applications 引言应用程序使用虚拟内存所需要的特性支持应用程序使用虚拟内存的系统调用虚拟内存系统如何支持用户应用程序构建大的缓存表Bakers Real-Time Copying Garbage Collector使用虚拟内存特性的GC使用虚拟内存特性的GC代码展示 引言…

【Linux后端服务器开发】基础IO与文件系统

目录 一、基础IO 1. C语言文件读写 2. 标志位传参 3. C语言与系统调用关系 二、文件系统 1. 文件描述符 2. 输入输出重定向 一、基础IO 文件调用 库函数接口&#xff1a; fopen、fclose、fwrite、fread、fseek系统调用接口&#xff1a;open、close、write、read、lsee…

利用 kube-vip 实现 K3s 高可用部署

作者简介 王海龙&#xff0c;Rancher 中国社区技术经理&#xff0c;Linux Foundation APAC Evangelist&#xff0c;负责 Rancher 中国技术社区的维护和运营。拥有 9 年的云计算领域经验&#xff0c;经历了 OpenStack 到 Kubernetes 的技术变革&#xff0c;无论底层操作系统 Lin…

腾讯音乐娱乐集团2023校园招聘技术类岗位编程题合集

字符串操作 题解&#xff1a;先变为没出现过的字符&#xff0c;然后在正常的变换 class Solution { public:/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** 返回满足题意的最小操作数* param str string字符串 给定…

Python绘制直方图

文章目录 初步参数绘图类型多组数据直方图对比 初步 对于大量样本来说&#xff0c;如果想快速获知其分布特征&#xff0c;最方便的可视化方案就是直方图&#xff0c;即统计落入不同区间中的样本个数。 以正态分布为例 import numpy as np import matplotlib.pyplot as pltxs…

用c++实现大小端序互转(字符串方法)

今天在逆一个RC4加密算法&#xff0c;忘了IDA如何自动将大小端序互转的按键&#xff0c;索性自己写了一个&#xff0c;因为是用字符串方法&#xff0c;所以理论上长度是管够的 #include <iostream> #include <string> using namespace std; int main() {string m_…

macOS 14 Sonoma Beta 测试版体验,不影响主力系统

今年的 WWDC 上 Apple 依旧保持往年的发布节奏&#xff0c;公布了今年的 macOS 新版本&#xff1a;macOS Sonoma&#xff0c;不过和以往有些不太一样的是&#xff0c;这一次 Apple 将测试版系统直接下发给了普通开发者账户&#xff0c;对于一般用户简单注册就可以直接获得 macO…