麦克风阵列技术

        • 麦克风阵列技术详解
          • 声源定位
            • 延时估计
            • 角度计算
          • 波束形成
            • 波束形成模型
            • 波束形成基本理论
          • 去混响
        • 麦克风阵列结构设计
        • 声学结构确认流程

紧接上一个博客文章,此为第三部分。上一部分见:麦克风阵列技术 二 (自动增益控制 自动噪声抑制 回声消除 语音活动检测)

麦克风阵列技术详解

声源定位

麦克风阵列可以自动检测声源位置,跟踪说话人,声源定位信息既可以用于智能交互,也可以用于后续的空域滤波,对目标方向进行语音增强。

利用麦克风阵列可以实现声源到达方向估计(direction-of-arrival (DOA) estimation),DOA估计的其中一种方法是计算到达不同阵元间的时间差,另外一种可以看这里,这篇主要介绍经典的GCC-PHAT方法
简单说明问题背景,信号模型如下图,远场平面波,二元阵列

要计算得到θθ,其实就是要求两个阵元接收到的信号时间差,现在问题变成到达时间差估计(Time-Difference-of-Arrival Estimation),因此,基于延时估计的DOA方法,其实也可以看做是分两步进行的,第一步是估计延时,第二步是计算角度,与之相对应的基于空间谱估计的DOA方法就是一步完成的。下面就分两步进行介绍

延时估计

一、 互相关函数(cross-correlation function)

计算y1(k)y1(k)与y2(k)y2(k)的时间差,可以计算两个信号的互相关函数,找到使互相关函数最大的值即是这两个信号的时间差
离散信号的互相关函数

R(τ)=E[x1(m)x2(m+τ)]R(τ)=E[x1(m)x2(m+τ)]

求时间差就是找到互相关函数最大时的点

D=argmaxR(n)D=argmaxR(n)
MATLAB代码如下:

%%
% Load the chirp signal.
load chirp;
c = 340.0;
Fs = 44100;
%%
d = 0.25;
N = 2;
mic = phased.OmnidirectionalMicrophoneElement;
% array = phased.URA([N,N],[0.0724,0.0418],'Element',mic);
array = phased.ULA(N,d,'Element',mic);%%
% Simulate the incoming signal using the |WidebandCollector| System
% object(TM).
arrivalAng = 42;
collector = phased.WidebandCollector('Sensor',array,'PropagationSpeed',c,...'SampleRate',Fs,'ModulatedInput',false);
signal = collector(y,arrivalAng);x1 = signal(:,1);
x2 = signal(:,2);N =length(x2);
xc = xcorr(x1,x2,'biased');
[k,ind] = max(xc);
an = acos((ind-N)/Fs*340/d)*180/pixc12 = zeros(2*N-1,1);
m = 0;
for i = -(N-1):N-1m = m+1;for t = 1:Nif 0<(i+t)&&(i+t)<=Nxc12(m) = xc12(m) + x2(t)*x1(t+i);end end
end
xc12 = xc12/N;

以上程序中的循环就是上面的定义公式,运行程序可以看到循环部分计算的互相关与直接调用matlab的xcorr结果相同(注意matlab中互相关默认没做归一化),找到互相关函数的最大值就可以得到时间差 。

二、广义互相关(generalized cross-correlation)

理论上使用上面个介绍的CCF方法就可以得到时间差,但是实际的信号会有噪声,低信噪比会导致互相关函数的峰值不够明显,这会在找极值的时候造成误差。
为了得到具有更陡峭极值的互相关函数,一般在频域使用一个加权函数来白化输入信号,这就是经典的广义互相关方法。
由维纳-辛钦定理可知,随机信号的自相关函数和功率谱密度函数服从一对傅里叶变换的关系,即x1、x2x1、x2的互功率谱可由下式计算

P(ω)=∫+∞?∞R(τ)e?jωτdτP(ω)=∫?∞+∞R(τ)e?jωτdτ

R(τ)=∫+∞?∞P(ω)ejωτdωR(τ)=∫?∞+∞P(ω)ejωτdω

这一步是把互相关函数变换到了频域,哦对,上面说到是想白化互相关函数,那就把上面第二式添加一个系数

R(τ)=∫+∞?∞A(ω)P(ω)ejωτdωR(τ)=∫?∞+∞A(ω)P(ω)ejωτdω

设计不同的频域系数A(ω)A(ω)对应着不同方法,这里只介绍 PHAT(phase transform)方法,即取系数如下:

A(ω)=1|P(ω)|A(ω)=1|P(ω)|

基本思想就是求时间差只需要相位信息,舍弃不相关的幅度信息以提高健壮性,可以看到当A(ω)=1A(ω)=1的情况下就是经典互相关
P(ω)P(ω)为复数,可以表示为|P(ω)| * e - jωp|P(ω)| * e - jωp,去掉幅度信息后,就只剩相位信息e - jωpe - jωp了,要得到相位信息,可以用P(ω)abs(P(ω))P(ω)abs(P(ω))计算,也可以直接用matlab中的angle函数计算,即angle(P(ω))angle(P(ω)),
在这里插入图片描述
几行代码验证下:

x1 = [1,2,3,7,9,8,3,7]';
x2 = [4,5,6,5,4,3,8,2]';[tau,R,lag] = gccphat(x1,x2) N = length(x1)+length(x2)-1;
NFFT = 32;
P = (fft(x1,NFFT).*conj(fft(x2,NFFT)));
A = 1./abs(P);
R_est1 = fftshift(ifft(A.*P));
range = NFFT/2+1-(N-1)/2:NFFT/2+1+(N-1)/2;
R_est1 = R_est1(range);R_est2 = fftshift(ifft(exp(1i*angle(P))));
R_est2 = R_est2(range);

可以看到,三种不同写法得到的R_est1 、R_est2 与matlab自带函数gccphat计算得到的R相等。

那上面例子中的宽带语音信号,用GCC-PHAT方法得到具有陡峭峰值互相关函数,找到互相关最大时的点,结合采样频率Fs与与麦克风间距dFs与与麦克风间距d,就可以得到方向信息。

角度计算

上面的内容计算了两个麦克风的延时,实际中假设阵列中麦克风个数为NN,则所有麦克风间两两组合共有N(N-1)/2N(N-1)/2对,记第kk个麦克风坐标为(xk,yk,zk)(xk,yk,zk),声源单位平面波传播向量u? =(u,v,w)u→=(u,v,w),如果麦克风k,jk,j之间的延时为τkjτkj,则根据向量关系有下式,其中c为声速,
C * τkj = -(xk→-xj→)?u? c?Τkj = -(xk→-xj→) * u→

这样看起来不够直观,那就代入坐标写成标量形式如下:
Cτkj=u(xk-xj)+v*(yk-yj)+w*(zk-zj)cτkj=u(xk-xj)+v*(yk-yj)+w*(zk-zj)

当有多个麦克风时,每两个麦克风就可以得到一组上式,N个麦克风就会有N*(N-1)/2个等式N个麦克风就会有N*(N-1)/2个等式,声源单位传播向量u? =(u,v,w)u→=(u,v,w)有三个未知数,因此最少只需要三组等式,也就是三个麦克风就可以计算出声源方向,这里就先假定N=3N=3,可以得到方程组如下:
在这里插入图片描述
写成矩阵形式
在这里插入图片描述
求出u? =(u,v,w)u→=(u,v,w)后,由正余弦关系就有了角度值了
θ=acos(1w)θ=acos(1w)
α=acos(usin(acos(1w)))α=acos(usin(acos(1w)))

当麦克风数量N>3N>3时,其实所有组合信息对于角度值的计算是有冗余的,这个时候可以求出所有组合的角度值,然后利用最小二乘求出最优解,这样可以利用到所有的麦克风的信息来提高角度估计的稳定性。

波束形成

DBF是Digital Beam Forming的缩写,译为数字波束形成 或数字波束合成。数字波束形成技术是天线波束形成原理与数字信号处理技术相结合的产物,其广泛应用于阵列信号处理领域。
专业:电子、通信与自动控制技术阵列信号处理最主要的研究内容包括DOA估计和波束形成。较早的DOA估计方法又称为波束形成方法,而该波束形成方法利用了空域维纳滤波的匹配概念,由阵列流形在信号空间中的投影大小判定信号方向,后来随着研究的深入,高分辨谱估计技术的发展,才把DOA估计和波束形成加以区分,DOA估计是为了确定信号的方位,从接收数据中测出信号方向,不管信号是有用信号还是干扰信号,在DOA估计方向图中都表现为峰值,而此峰值并不是实际阵列输出功率;波束形成是传统滤波的空域拓展,其根本目的是有效提取有用信号并抑制噪声和干扰,在方向图中表现为有用信号方向形成峰值、干扰方向形成零陷,可以认为DOA估计为波束形成的前端处理,确定期望信号和干扰方向后,阵列对期望信号方向形成波束并在干扰方向形成零陷。

DBF体现的是声源信号的空域选择性,许多传统波束形成方法具有线性处理结构;波束形成需要考虑三个方面:
1)麦克风阵列个数;
2)性能;
3)鲁棒性。

在麦克风较少时,波束形成的空域选择性差,当麦克风数量较多时,其波束3dB带宽较为窄,如果估计的目标声源方向有稍有偏差,带来的影响也更大,鲁棒性不好。通常鲁棒性和性能是对矛盾体,需要均衡来看。

WebRTC使用了如下几个点以提高鲁棒性和性能(其算法性能优先):
1.可以使用多个后置滤波器而非一个,2.每个后置滤波使用新的结构。

每个后置滤波器为每个声学场景的时频域bin在均方误意义上提供了最优实增益。在WebRTC中后置滤波器根据声源的空域协方差矩阵,干扰源协方差矩阵,绕射场(零阶贝塞尔函数计算)以及临近麦克风的时频信号信息求得。

这样的话就可以为每个声源和干扰场景计算出不同的最优后置滤波器,也可以使用级联的方式灵活使用多个不同选择性的后置滤波器。
当前现存的波束形成算法的鲁棒性成为它们使用的一道门槛,如MVDR和多通道维纳滤波。

WebRTC为了增强鲁棒性,在求最优矩阵时,对声源信号添加了限制条件,使用Gabor frame将声源变成时频bin的系数,对这些bin按照目标声源和干扰声源附加了条件,如果满足条件,则门操作让目标声源通过,而让干扰源乘以零以实现选择最优目标信号。

在WebRTC中这些增益系数称为自适应标量(上面的实)乘法增益,均方误差准则被用来做为计算的准则。由于阵列方向响应随频率是变换的,而语音信号又是宽带信号,所以WebRTC中使用了gabor变换来表示声音信号。增益源于目标信号和干扰的比例。

波束形成模型

以均匀线阵为例:
在这里插入图片描述
按窄带模型分析:
在这里插入图片描述
可以写成矩阵形式:
在这里插入图片描述
其中a(θ)为方向矢量或导向矢量(Steering Vector),波束形成主要是针对各个接收信号X进行权重相加。

波束形成基本理论
  1. A-波束形成
    权重相加:在这里插入图片描述
    不同的波束形成,就是不同的权重W。

  2. B-瑞利限
    以均匀直角窗为例:
    在这里插入图片描述
    得出方向图:
    在这里插入图片描述
    主瓣宽度正比于孔径宽度的倒数:
    在这里插入图片描述
    因为孔径的限制,造成波束宽度存在限制(不会无限制小),近而落在主瓣波束内部的两个信号便会混在一起而分不清,这就存在瑞利限的问题。

    直角窗主瓣宽度为:
    在这里插入图片描述
    其中λ为入射波长,theta1为入射角,Md为阵列孔径。

  3. C-常见窗函数

    对于空间不同的阵列信号,类似采样分析(空域采样),自然可以加窗进行处理,不加窗可以认为是直角窗,另外也可以选择汉明窗、hanning窗等等。

    加窗可以改变波束宽度以及主瓣、副瓣等特性,可以借助MATLAB 的wvtool观察不同窗函数特性。

N = 192;
w = window(@blackmanharris,N);
wvtool(w)

在这里插入图片描述

  1. D-DFT实现
    阵列的采样间隔是相位信息:
    在这里插入图片描述
    这就类似于频域变换,只不过这里的相位信息:对应的不是频率,而是不同位置,可以看作空域的变换。

    分别对阵列信号进行直接加权、加窗、DFT实现:

clc;clear all;close all
M = 32;
DOA = [-30 30];
SNR = 10;
theta = -90:.1:90;
len = length(theta);
SignalMode = 'Independent';
fc = 1e9;
c = 3e8;
lambda = c/fc;
d = lambda/2;
N = 100;%snap points
x = StatSigGenerate(M,N,DOA,SNR,SignalMode,lambda,d);
R_hat = 1/N*x*x';
output = zeros(3,len);
for i = 1:lena = exp(1j*2*pi*[0:M-1]'*sind(theta(i))*d/lambda);W = (inv(R_hat)*a)*(1./(a'*inv(R_hat)*a));output(1,i) = mean(abs(W'*x),2);output(2,i) = 1./(a'*inv(R_hat)*a);output(3,i) = a'*x*ones(N,1);
end
output = abs(output);
output = output - repmat(mean(output.')',1,size(output,2));
output = output./repmat(max(output.')',1,size(output,2));
%plot
plot(theta,output(1,:),'k',theta,output(2,:),'r--',theta,output(3,:),'b');
legend('MVDR 波束','MVDR 谱','固定权重 波束');

在这里插入图片描述

  1. E-自适应波束形成
    直接相加也好、加窗也好,都是固定的权重系数,没有考虑到信号本身的特性,所以如果结合信号本身去考虑就形成了一系列算法:自适应波束形成。

    这类步骤通常是:
    1)给定准则函数;
    2)对准则函数进行求解。

    准则常用的有:信噪比(snr)最大准则、均方误差最小准则(MSE)、线性约束最小方差准则(LCMV)、最大似然准则(ML)等等;

    求解的思路大体分两类:1)直接求解,例如MVDR中的求解;2)也可以利用梯度下降的思想,如随机梯度下降、批量梯度下降、Newton-raphson等方法,不再详细说明。

    以MVDR举例:
    在这里插入图片描述
    这里采用直接求解的思路:
    在这里插入图片描述
    将求解的W带入
    在这里插入图片描述
    即可得到波束形成。

  2. F-栅瓣现象
    栅瓣是一类现象,对应干涉仪就是相位模糊(相位超过2*pi),对应到Beamforming就是栅瓣问题,具体不再论述,给出现象(同样的波束,在不同的位置分别出现):
    在这里插入图片描述

  3. G-波束形成与空间谱

    之前分析过MVDR的方法,得到的输出(含有约束的最小均方误差准则)为:
    在这里插入图片描述
    有时候也称这个输出为空间谱,其实就是|y2(t)|,但这个与MUSIC等算法的谱还不是一回事,只是有时候也被称作空间谱,所以这里多啰嗦几句,分析这个说法的来源。

    已知N个采样点的信号,对其进行傅里叶变换:
    在这里插入图片描述
    进一步得到功率谱密度:
    在这里插入图片描述
    根据上文的分析:y(t)其实对应的就是空域变换(可借助DFT实现),类比于时频处理中的频域变换。而这里又可以看到频域变换的平方/长度,对应就是功率谱,这是频域的分析。

    对应到空域,自然就是|y2(t)|/长度,对应空间谱,长度只影响比例关系,所以MVDR的最小方差输出被称作:空间谱也是合适的。

    给出一个测试(这里如果),对比MVDR的y(t)、MVDR功率谱以及普通Beamforming的结果:

clc;clear all;close all
M = 32;
DOA = [-30 30];
SNR = 10;
theta = -90:.1:90;
len = length(theta);
SignalMode = 'Independent';
fc = 1e9;
c = 3e8;
lambda = c/fc;
d = lambda/2;
N = 100;%snap points
x = StatSigGenerate(M,N,DOA,SNR,SignalMode,lambda,d);
R_hat = 1/N*x*x';
output = zeros(3,len);
for i = 1:lena = exp(1j*2*pi*[0:M-1]'*sind(theta(i))*d/lambda);W = (inv(R_hat)*a)*(1./(a'*inv(R_hat)*a));output(1,i) = mean(abs(W'*x),2);output(2,i) = 1./(a'*inv(R_hat)*a);output(3,i) = a'*x*ones(N,1);
end
output = abs(output);
output = output - repmat(mean(output.')',1,size(output,2));
output = output./repmat(max(output.')',1,size(output,2));
%plot
plot(theta,output(1,:),'k',theta,output(2,:),'r--',theta,output(3,:),'b');
legend('MVDR 波束','MVDR 谱','固定权重 波束');

在这里插入图片描述
如果将d = lambda/2;改为d = lambda/0.5;,自然就有了栅瓣:
在这里插入图片描述

去混响

混响是指声波在室内传播时,要被墙壁、天花板、地板等障碍物反射,当声源停止发声后,声波在室内要经过多次反射和吸收,最后才消失。这种现象称为混响。因此,当声源和麦克风之间的距离越远,反射声占的比例就越高,混响就严重。
经典的去混响方法包括形成拾音波束来减少反射声和基于反卷积的去混响方法。

麦克风阵列结构设计

MUC 孔的孔深孔径比越小越好,即开孔越大越好,深度越小越好,尽量向1:1靠近。孔深与孔径比值越大,麦克频响的震点越像低频靠近,要求震点在12KHz以上。最少也要在8KHz以上。喇叭腔体不能漏气。这是因为,喇叭正反两面的声波相位相差180度,当音腔有漏气时,声波会发生抵消,尤其是低频频段。
麦克和喇叭的失真都要小。麦克失真小于4%,喇叭失真小于10%,由于喇叭低频失真严重些,会超过10%,可以考虑增加滤波器滤掉低频成分。
喇叭腔体四周与其他机构件保留1mm的距离,防止腔壳与机构接触产生异音。
喇叭鼓膜上方与机构件保留1.5mm的距离,以防鼓膜振动碰到机构件产生异音。
喇叭与机构件有接触的地方,要增加泡面,以起到缓冲、减振的效果,防止喇叭振动时与机构件碰撞产生异音。

声学结构确认流程

1)远程会议或现场结构设计评估
确认麦克阵列构型,确认声腔及安装结构设计,确认进声孔深度、直径大小等;
2)声学实验室录音效果评估-第一阶段
计算裸麦和带声腔结构的麦克风之间的录音之间谐波程度,根据分析结果确定是否通过。
3)声学实验室录音效果评估-第二阶段
分别利用裸麦和带声腔结构的麦克风信号做基于相位的声源定位,如果两者定位误差小于5°,则认为通过该项测试。
4)声学实验室录音效果评估-第三阶段
分别利用裸麦和带声腔结构的麦克风录音数据进行识别,效果差距在2%以内,则认为远场识别方面无问题。

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

相关文章

  1. Linux-2.6 16c550 串口驱动移植

    本文中将要说道的是Linux驱动移植中最为初级最为简单的一种,就是通用性很强的UART设备驱动的移植,当然这还不能完全满足博主我这可怜的智商。 我所移植的这个驱动不是别的就是可以使用已有驱动8250.c来驱动的16c550, 千万别笑话我,谁叫这是第一次呢。 其实说到底我也没干什么…...

    2024/4/27 13:23:55
  2. 用DotNetBar为NotifyIcon设置右键菜单。

    用DotNetBar为NotifyIcon设置右键菜单。纯粹备忘。高手勿见怪。 /// /// 处理通告图标的右键鼠标事件 /// /// /// private void notifyIcon1_MouseDown(object sender, MouseEventArgs e) { if(e.Button==MouseButtons.Left) return; ButtonItem objItem=D1…...

    2024/4/20 18:28:37
  3. javascript实例教程(10) 随机显示图片

    javascript实例教程(10) 随机显示图片有时你可以会在一些网站看到一些变化显示的图片,这除了可以利用Flash来制作之外,当然也可以利用本节教程介绍的方法来实现哦。好吧,就开始我们的创作吧。我们可以在网页的最前面部分添加以下的代码来创建一个随机的数字:<SCRIPT>…...

    2024/4/20 18:28:35
  4. 声源定位系统设计(二)——MUSIC算法以及Python代码实现

    声源定位系统设计(二)——MUSIC算法以及Python代码实现 目录声源定位系统设计(二)——MUSIC算法以及Python代码实现一、前言二、MUSIC算法三、MVDR代码实现四、MUSIC算法代码实现 一、前言 上篇博客中已经详细介绍了声源定位的一些概念以及MVDR波束形成法的原理,在本篇博客…...

    2024/4/20 18:28:35
  5. Linux下用C实现串口读写

    http://hi.baidu.com/weiweisuo1986/item/b33200134ceaac6871d5e81d 之前要做一个和串口相关的项目,才认真研究了下串口,首先就是要实现串口和PC机的通信。串口的驱动一般不需要我们写,都是很成熟的驱动,要知道的一点就是你开发板串口的名称,比如ttySAC0,等。所以主要…...

    2024/4/20 18:28:35
  6. C#如何使用NotifyIcon实现任务栏托盘菜单及气泡提示

    以软件【银行业会计人员技能训练系统】为例,如何使用NotifyIcon实现任务栏托盘菜单及气泡提示?实现系统托盘方法如下:1、向窗体中添加NotifyIcon控件和ContextMenuStrip控件;2、为ContextMenuStrip控件添加子项;3、选择NotifyIcon控件,在其属性窗口中将ContextMenuStrip属…...

    2024/4/21 8:32:35
  7. JS 运用正则匹配截取并替换字符串中的指定内容

    //将字符串"public/file/avatar.png"中的"avatar"替换为"myAvatar" var str1=public/file/avatar.png; var targetStr=myAvatar; var oldVersion = str1.match(/file\/(\S*).png/); if(oldVersion[1]==undefined){ errMsg(Invalid Url) } var ne…...

    2024/4/24 12:12:50
  8. .NET反编译实例视频教程+工具 ,不错的实例。

    百木破解-VSNET反编译实例1、打开反编译软件2、打开目录 ,打开disassembler.exe文件3、这个软件需要Reflector支持,选择Reflector.exe4、我们选择要修改的东西,打开要修改的程序 。5、例如 我们要修改 http://www.bmpj.net6、找到信息后,右键编辑7、选择保存8、完成视频教程…...

    2024/4/21 8:32:33
  9. 基于声源定位的止鼾系统的设计与实现(一)

    今天刚刚接触这个方向,找了一篇论文看看,了解了以下的一些知识。论文链接:https://www.doc88.com/p-9823111731616.html1.声源定位麦克风阵列拾取(通过麦克风阵列获取声源信号)→ 一系列处理 → 声源定位算法(得到声源的位置)2.在声源定位技术上设计止鼾系统(软硬件结合…...

    2024/4/21 8:32:33
  10. shell_notifyicon和NOTIFYICONDATA

    shell_notifyicon和NOTIFYICONDATAShell_NotifyIcon函数,向任务栏的状态栏发送一个消息函数原型BOOL Shell_NotifIcon(DWORD dwMessage,PNOTIFYICONDATA lpdata);参数:dwMessage为输入参数,传递发送的消息,表明要执行的操作。可选的值如下:NIM_ADD向托盘区域添加一个图标。…...

    2024/4/21 8:32:31
  11. js 截取固定长度字符串但不打断单词

    适用地方:英文网站中,比如面包屑导航处新闻标题过长、用css截取文本简介时将单词打断// 使用方法 // 1.复制下面函数 // 2.调用 // 3.填参数 sliceString(targetDom,length,addString) // targetDom 对应要处理字符串的标签(格式为css选择器)(!标签里不能套标签!)…...

    2024/4/21 8:32:30
  12. [转]基于TDOA声源定位算法仿真--MATLAB仿真

    转自:http://t.cn/AiTjYCqD关注微信公众号“通信小课堂”,获取专业小知识声源定位算法是利用麦克风阵列进行声音定位,属于宽带信号,传统的MUSIC和DOA算法并不适用该场景,本仿真主要用TDOA算法进行定位。常用的阵列信号定位算法主要有三大类:基于高分辨率谱估计的定位技术…...

    2024/4/21 8:32:29
  13. 十天学会web标准(DIV+CSS)系列(十)div+css网页标准布局实例教程

    一、建立站点前面的课程都是零碎讲解一些相关知识,那么要做一个网站,首先需要建立一个站点。那么什么是站点,为什么要建立一个站点呢?因为网站不同于其它文件,比如一个图片,放到哪个盘哪个目录下都可以访问。而网站是许多文件相互关联的,所以要专门一个目录把它们分门别…...

    2024/4/21 8:32:29
  14. C#WinForm程序设计——系统托盘NotifyIcon控件

    通知区域中的图标是一些进程的快捷方式,这些进程在计算机后台运行,如防病毒程序或音量控制。这些进程不会具有自己的用户界面。NotifyIcon 类提供了编写此功能的方法。Icon属性定义显示在通知区域中的图标。图标的弹出菜单由 ContextMenu属性确定。Text属性分配工具提示文本。…...

    2024/4/21 8:32:27
  15. Linux串口调试(编程)总结(ARM通信)

    最近在linux系统中写了个串口通信的程序,主要是PC机和ARM-mini2440开发板的串口进行通信(当然在开发板上也是跑的Linux操作系统),PC和开发板都要进行接收和发送。发送端要发送从0x00~0xFF中的任意字符,(包括不可见字符)但接收端某些字符老接收不到,而接收端是使用的是软…...

    2024/4/21 8:32:26
  16. 声源定位

    声源定位 一.简介 声音定位是人们感知周围事物的一个重要部分。即使看不到那里有什么,我们也可以根据声音大致判断出我们周围有什么。尝试在电子设备中复制相同的系统可以证明是一种有价值的方式来感知机器人、安全和一系列其他应用的环境。我们构造了一个三角形排列的麦克风…...

    2024/4/21 8:32:26
  17. 系统托盘NotifyIcon控件及右键菜单功能

    (1)新创建一个项目,修改Form1的Text属性为testNotifyIcon; (2)向Form1窗口中添加一个NotifyIcon控件,修改其Name属性为 MyNotifyIcon。修改其Text属性为 testNotifyIcon,与应用程序的标题相同。这是因为NotifyIcon显示在系统托盘中时,Text属性中保存的 文本为鼠标移动…...

    2024/4/21 8:32:24
  18. Linux Framebuffer驱动剖析之一—软件需求

    本系列文章将分析Linux Framebuffer驱动的作用(需求)、框架、接口实现和使用。按笔者一直倡导的Linux学习理念—从软件需求的角度去理解Linux,对于Linux各个子系统,我们首先要理解其软件需求,从中自然会清楚其存在的价值和作用;接下来是理解子系统在Linux整个驱动框架中的…...

    2024/4/27 19:21:02
  19. 基于双麦克风声源定位的视频跟踪

    基于双麦克风声源定位的视频跟踪声源定位跟踪技术在当今社会有着越来越广泛的应用。在此使用两个高灵敏度麦克风作为传感器,配以音频信号处理芯片,接收音频信号并进行模数转换,使用FPGA器件作为核心控制器,结合TDOA算法和ILD算法,实现在室内环境下、二维平面内的声源定位。…...

    2024/4/27 16:44:35
  20. js中截取字符串的三个方法 substring()、substr()、slice()

    查看原文可以有更好的排版效果哦 js中有三个截取字符的方法,分别是substring()、substr()、slice(),平时我们可能都用到过,但总是会对这些方法有点混淆,特别是substring()和substr(),连方法名都差不多,下面就具体来看一下区别。 相同点 这三个方法都可以对字符串进行截取…...

    2024/4/27 18:42:15

最新文章

  1. iptables动作

    服务器流量在通过input链之后&#xff0c;进入到服务器内&#xff0c;还遵循一些动作去处理这些数据包 Accept&#xff1a;允许数据包通过Reject&#xff1a;拒绝数据包通过&#xff0c;还会给客户端一个响应&#xff0c;告知它被拒绝log&#xff1a;在Linux系统的日志目录下 …...

    2024/4/28 6:28:13
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. JRT高效率开发

    得益于前期的基础投入&#xff0c;借助代码生成的加持&#xff0c;本来计划用一周实现质控物维护界面&#xff0c;实际用来四小时左右完成质控物维护主体&#xff0c;效率大大超过预期。 JRT从设计之初就是为了证明Spring打包模式不适合软件服务模式&#xff0c;觉得Spring打包…...

    2024/4/28 3:06:38
  4. Django实现的登录注册功能

    1 前言 在Web开发中&#xff0c;用户登录和注册是最基本且必不可少的功能。Django&#xff0c;作为一个高级的Python Web框架&#xff0c;为我们提供了强大的工具和库来快速实现这些功能。下面&#xff0c;我将详细介绍如何使用Django来实现用户登录和注册功能。 2 功能介绍 …...

    2024/4/23 6:25:06
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/26 18:09:39
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/28 3:28:32
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/27 4:00:35
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/27 9:01:45
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/28 1:22:35
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57