2019中兴捧月之智能音频处理参赛总结

article/2025/10/13 4:00:49

      抱着免笔试的心态参加了中兴捧月比赛,赛题一下来,呦!题目可选余地很大,稳了!看完题之后,凉了!再见,中兴。。。

      正题开始,博主选的是智能音频识别,题目给了几段含有大量噪声的音频数据,要求参赛者对这些音频进行去噪增强,然后提交去噪后的音频,系统进行判别。该题目是较简单的,所以最后的成绩排名也是凶残无比,前80名得分都是90分以上,不服不行,对于我们这样现学现卖的果然只有陪跑的份,不过在这里还是把比赛中关于音频的学习过程做个总结吧,说不定面试有用呢?!

中兴捧月官网:http://challenge.zte.net/


预加重   

     声音的低频高频的表现就象沙嗓门大男人和亮嗓门的少女说的话一样,一个低沉,一个高昂。如果滤波声频再低一点,表现会像喉咙被堵了一样,想说说不出来。如果滤波声频再高一点,像人捏着嗓子说话。

      对语音信号进行预加重的目的是为了去除口唇辐射的影响,增加语音的高频分辨率。预加重一般传递函数为H(z)=1-az^{-1},我们可以使用一阶FIR高通滤波器实现预加重,其中a为预加重系数,通常可以取0.9 < a < 1.0,预加重后的频谱在高频部分的幅度得到了提升。预加重之后我听了一下音频,真的是好了很多,神奇的我不敢相信,结果提交判分得了个0分。。。。。unbelievable

预加重是起到了提升高频的作用,但是为什么要提升高频呢?

    首先,对于鉴频器有一个理论:鉴频器的输出噪声功率随频率的平方规律增加。然后,对于语音信号来说,语音的低频段能量较大,能量主要分布在低频段,语音的功率谱密度随频率的增高而下降,这样,鉴频器输出就会高频段的输出信噪比明显下降,从而导致高频传输衰弱,使高频传输困难,这对信号的质量会带来很大的影响。因此,在传输之前把信号的高频部分进行加重,然后接收端再去重,提高信号传输质量。预加重和去加重的设计思想是保持输出信号不变,有效降低输出噪声,以达到提高输出信噪比的目的。

     声道的终端为口和唇。从声道输出的是速度波,而语音信号是声压波,二者之比的倒数称为辐射阻抗。它表征口和唇和辐射效应,也包括圆形头部的绕射效应等。研究表明,口唇辐射在高频段比较明显,在低频段影响较小,辐射引起的能量损耗正比于辐射阻抗的实部,所以辐射模型R(z)应是一阶类高通滤波的形式,可以表示为:R(z) = R0(1-z^-1),它是一阶后向差分。

      辐射模型是一阶高通,所以在实际信号进行分析时,常用所谓“预加重技术”,即在取样之后,插入一个一阶的高通滤波器,使声门脉冲的影响减到最小,只剩下声道部分,就便于声道参数的分析了。在语音合成时,再进行“去加重”处理,就可以恢复原来的语音。

     对语音信号进行预加重的目的是为了去除口唇辐射的影响,增加语音的高频分辨率。预加重一般传递函数为H(z)=1-az^{-1}。所以我们可以使用一阶FIR高通滤波器实现预加重,其中a为预加重系数,通常可以取0.9 < a < 1.0
当a取0.98时,用差分方程实现预加重的方程为:y(n)=x(n) - ax(n-1)
from:https://blog.csdn.net/xiaoyaoren3134/article/details/48678553

         

语音信号的加窗处理   

       进行预加重数字滤波处理后,下面就是进行加窗分帧处理,语音信号是一种非平稳的时变信号,但是语音信号具有短时平稳性(10--30ms内可以认为语音信号近似不变),这样就可以把语音信号分为一些短段来来进行处理,这就是分帧,语音信号的分帧是采用可移动的有限长度的窗口进行加权的方法来实现的。一般每秒的帧数约为33~100帧,视情况而定。一般的分帧方法为交叠分段的方法,前一帧和后一帧的交叠部分称为帧移,帧移与帧长的比值一般为0~0.5,。

      加窗后,每一帧的起始段和末尾端会出现不连续的地方,所以分帧越多与原始信号的误差也就越大。加窗就是为了解决这个问题,使分帧后的信号变得连续。(直接对信号(加矩形窗)截断会产生频谱泄露,为了改善频谱泄露的情况,加非矩形窗,一般都是加汉明窗,因为汉明窗的幅频特性是旁瓣衰减较大,主瓣峰值与第一个旁瓣峰值衰减可达43db。)

     窗函数一般使用汉明窗,函数如下:

                                          

     

       汉明窗的主瓣宽度较宽,是矩形窗的一倍,但是汉明窗的旁瓣衰减较大,具有更平滑的低通特性,能够在较高的程度上反应短时信号的频率特性。相比之下,矩形窗的主瓣宽度小于汉明窗,具有较高的频谱分辨率,但是矩形窗的旁瓣峰值较大,因此其频谱泄露比较严重。

  时域相乘等于频率卷积,可以把窗函数的频域当做一个频域指针,最优的肯定是只在一个频率上有响应,这样它的频率分辨率最佳,频率泄露为0.对于矩形窗,分辨率由于汉明窗,但是频谱泄露严重。

               

    表中Δω 是谱分析时的角频率分辨率。从表中可以看出,矩形窗主瓣的宽度最窄,但第一旁瓣的衰落最小。也就是说,它的频谱泄露要比另外两种窗函数大。在语音分析中,可根据不同情况选择不同的窗函数。

from:https://blog.csdn.net/qq_39516859/article/details/80163385

谱减法去噪

      谱减法是核心去噪方法,不同版本的谱减去噪效果有所差异,但效果都挺好。

      谱减算法为最早的语音降噪算法之一,它的提出,基于一个简单的原理:假设语音中的噪声只有加性噪声,只要将带噪语音谱减去噪声谱,就可以得到纯净语音幅度。这么做的前提是噪声信号是平稳的或者缓慢变化的。

早期文献中的方法较为简单粗暴,公式如下:

                               

     Ps(w)是输入的带噪语音的频谱,Pn(w)是估计出的噪音的频谱,两者相减得到D(w)差值频谱。由于相减后可能会出现负值,所以就简单粗暴地加上一个判断条件,将负值全部置为0,这样得到的结果作为最终输出去噪语音的频谱。 

     传统的谱减法的一个缺点就是由于我们估计噪音的时候取得平均值,那么有的地方噪音强度大于平均值的时候,相减后会有残留的噪音存在。在噪音波形谱上表现为一个一个的小尖峰,我们将这种残存的噪声称之为音乐噪声(music noise),从根本上,通常导致音乐噪声的原因主要有:

(1)对谱减算法中的负数部分进行了非线性处理
(2)对噪声谱的估计不准
(3)抑制函数(增益函数)具有较大的可变性

    减小音乐噪声的方法是对噪声谱使用过减技术,同时对谱减后的负值设置一个下限,而不是将它们设为0,该方法将上面的公式进行了如下修改:

                          

      多了两个参数alpha 和 beta。alpha称之为相减因子,它主要影响语音谱的失真程度,beta称之为频谱下限阈值参数,可以控制残留噪声的多少以及音乐噪声的大小。alpha>1,这样可以保证相比于之前的方法能够有更强的去噪效果,能够去除大部分的噪声,这样残余的噪声就会少很多。但是同样的相减后差值如果为负值,这个负值也就会更大。老方法中是将负值直接设为0,这样残余噪音的峰值和0之间的差值还是较为显著,所以Berouti就想了一个办法,就是设置一个语音的下限值beta* Pn(w)。将相减后的幅值小于此下限值得统一设置为这个固定值,这个下限值其实也是宽带的噪音,只不过设置下限值的好处是残余峰值相比之下没有那么显著,从而减小了“音乐噪声”的影响。可以通过调整beta的值来调整这个宽带的噪声的强度。

       使用过减因子与谱下限的动机在于:当从带噪语音谱中减去噪声谱估计的时候,频谱中会残留一些隆起的部分或谱峰,有些谱峰是宽带的,有些谱峰很窄,看起来像是频谱上的一个脉冲。通过对噪声谱的过减处理,我们可以减小宽带谱峰的幅度,有时还可以将其完全消除。但是仅仅这样还不够,因为谱峰周围可能还存在较深的谱谷。因此需要使用谱下限来“填充”这些谱谷。在高信噪比中,alpha应取小值;对低信噪比中,alpha建议取大值。Berouti等人做了大量实验来确定alpha与beta的最优值,在这里我们直接使用就可以了。

     参数的设置,根据输入信号的SNR做了大量实现来确定alpha和beta的值,最终给出的alpha随每一个音频帧的SNR的变换曲线是这样的:

              

    也就是说:alpha不能为一个固定值,需要根据每一个音频帧的信噪比大小来确定合适的值,这也是为什么要分帧的原因。计算alpha的公式如下,其中1/s为斜率,alpha0位期望的SNR为0时的值:

                                        

步骤:

  1. 读入语音数据,matlab有现成的函数waveread()。
  2. 设置好每帧的大小frameSize,每帧重叠大小windowOverlap等参数
  3. 对语音进行分帧处理,生成汉明窗hamming window,并且取前5帧估计噪声。
  4. 根据公式求出每一帧的去噪后的幅值sub_speech。
  5. 更新噪声的估计
  6. 从频域转换为时域,相位信息还是采用输入信号的相位。
  7.  输出最终去噪后的语音
function specsub(filename,outfile)
if nargin < 2fprintf('Usage: specsub noisyfile.wav outFile.wav \n\n');return;
end[x,fs,nbits] = wavread(filename);
len = floor(20*fs/1000);            % Frame size in samples
if rem(len,2) == 1, len=len+1; end;
PERC = 50;                          % window overlap in percent of frame size
len1 = floor(len*PERC/100);
len2 = len-len1; Thres = 3;      % VAD threshold in dB SNRseg 
Expnt = 2.0;    % 标志位,“1”表示幅度谱,“2”表示功率谱
beta = 0.002;
G = 0.9;    %用于平滑噪声win = hamming(len); %生成汉明窗
winGain = len2/sum(win); % normalization gain for overlap+add with 50% overlap% 噪声幅度计算 - 假设前五帧音频是环境噪声
nFFT = 2*2^nextpow2(len);
noise_mean = zeros(nFFT,1);
j=1;
for k = 1:5noise_mean = noise_mean+abs(fft(win.*x(j:j+len-1),nFFT));%win.*x(j:j+len-1)用汉明窗分帧j = j+len;
end
noise_mu = noise_mean/5;%求得平均噪声%--- allocate memory and initialize various variables
k = 1;
img = sqrt(-1);
x_old = zeros(len1,1);
Nframes = floor(length(x)/len2)-1;
xfinal = zeros(Nframes*len2,1);%=========================    Start Processing   ===============================
for n = 1:Nframes insign = win.*x(k:k+len-1);      % 分帧,取帧spec = fft(insign,nFFT);         % 计算每帧音频的频谱sig = abs(spec);                 % 频域幅值%save the noisy phase information theta = angle(spec);             %计算相位角SNRseg = 10*log10(norm(sig,2)^2/norm(noise_mu,2)^2);%信噪比if Expnt == 1.0              % 幅度谱alpha = berouti1(SNRseg);elsealpha = berouti(SNRseg); % 功率谱,alpha会根据每一帧的SNR取不同的值endsub_speech = sig.^Expnt - alpha*noise_mu.^Expnt;%进行谱减diffw = sub_speech - beta*noise_mu.^Expnt;     % 计算纯净信号与噪声信号的功率的差值% beta negative componentsz = find(diffw <0);        if~isempty(z)                % % 当纯净信号小于噪声信号的功率时sub_speech(z) = beta*noise_mu(z).^Expnt;   % 用估计出来的噪声信号表示下限值end% --- implement a simple VAD detector --------------if (SNRseg < Thres)   %如果信噪比低于阈值,更新噪声谱noise_temp = G*noise_mu.^Expnt+(1-G)*sig.^Expnt;    % 平滑处理噪声功率谱noise_mu = noise_temp.^(1/Expnt);                   % 新的噪声幅度谱end
% flipud函数实现矩阵的上下翻转,是以矩阵的“水平中线”为对称轴,交换上下对称元素sub_speech(nFFT/2+2:nFFT) = flipud(sub_speech(2:nFFT/2));x_phase = (sub_speech.^(1/Expnt)).*(cos(theta)+img*(sin(theta)));% take the IFFT xi = real(ifft(x_phase));%谱减后的纯净信号作反傅里叶变换% 将每一帧重新拼接在一起xfinal(k:k+len2-1)=x_old+xi(1:len1);x_old = xi(1+len1:len);k = k+len2;
endfunction a = berouti1(SNR)
if SNR >= -5.0 & SNR <= 20a = 3-SNR*2/20;
elseif SNR < -5.0a = 4;endif SNR > 20a = 1;end
endfunction a = berouti(SNR)
if SNR >= -5.0 & SNR <= 20a = 4-SNR*3/20; 
elseif SNR < -5.0a = 5;endif SNR > 20a = 1;end
end

from:https://blog.csdn.net/leixiaohua1020/article/details/47276353

from:https://blog.csdn.net/weixin_40398288/article/details/78500278


     上面的方法中,谱减参数alpha和beta通过实验确定,无论如何都不会是最优的选择。MMSE谱减法能够在均方意义下最优地选择谱减参数。具体请参考论文:A parametic formulation of the generalized spectral subtractor method

MMSE-LSA算法实现步骤

1、对带噪信号分帧,加窗(这里是汉明窗)

2、对每帧带噪信号计算FFT :

3、估计后验信噪比 :   
在非语音片段(语音开始之前几帧或语音间隙)估计的噪声能量谱;然后用判决引导法估计先验信噪比;

4、用最优的MMSE-LSA估计器的公式估计增强信号幅度;

5、重建增强信号谱,然后计算增强信号谱的IFFT,得到对应输入语音帧的增强的时域信号x(n)。

function logmmse(filename,outfile)
%  Implements the logMMSE algorithm [1].
%  Usage:  logmmse(noisyFile, outputFile)         
%         infile - noisy speech file in .wav format
%         outputFile - enhanced output file in .wav format
%  Example call:  logmmse('sp04_babble_sn10.wav','out_log.wav'); if nargin<2fprintf('Usage: logmmse(noisyfile.wav,outFile.wav) \n\n');return;
end[x, Srate, bits]= wavread( filename);	%nsdata is a column vector% =============== Initialize variables ===============len=floor(20*Srate/1000); % Frame size in samples
if rem(len,2)==1, len=len+1; end;
PERC=50;                  % window overlap in percent of frame size
len1=floor(len*PERC/100);
len2=len-len1;win=hamming(len);  % 定义汉明窗
% 噪声幅度计算,假定前6帧为环境噪声
nFFT=2*len;
noise_mean=zeros(nFFT,1);
j=1;
for m=1:6noise_mean=noise_mean+abs(fft(win.*x(j:j+len-1),nFFT));j=j+len;
end
noise_mu=noise_mean/6;
noise_mu2=noise_mu.^2;%--- allocate memory and initialize various variables
x_old=zeros(len1,1);
Nframes=floor(length(x)/len2)-floor(len/len2);
xfinal=zeros(Nframes*len2,1);%======================  Start Processing ==================
k=1;
aa=0.98;
mu=0.98;
eta=0.15; ksi_min=10^(-25/10); %最小先验SNRfor n=1:Nframesinsign=win.*x(k:k+len-1);%分帧,取帧spec=fft(insign,nFFT);sig=abs(spec);      % 计算信号幅度sig2=sig.^2;        %幅值平方gammak=min(sig2./noise_mu2,40);  % limit post SNR ,限制SNR以避免溢出if n==1   %如果是第一帧ksi=aa+(1-aa)*max(gammak-1,0);elseksi=aa*Xk_prev./noise_mu2 + (1-aa)*max(gammak-1,0);     % 计算先验SNRksi=max(ksi_min,ksi);  % limit ksi to -25 dBendlog_sigma_k= gammak.* ksi./ (1+ ksi)- log(1+ ksi);    %gammak是后验信噪比vad_decision= sum(log_sigma_k)/ len;    if (vad_decision< eta) % noise only frame foundnoise_mu2= mu* noise_mu2+ (1- mu)* sig2;end% ===end of vad===A=ksi./(1+ksi);  % Log-MMSE estimatorvk=A.*gammak;    %比例*后验SNRei_vk=0.5*expint(vk);hw=A.*exp(ei_vk);sig=sig.*hw;   %对信号进行增强Xk_prev=sig.^2;xi_w= ifft( hw .* spec,nFFT);xi_w= real( xi_w);xfinal(k:k+ len2-1)= x_old+ xi_w(1:len1);x_old= xi_w(len1+ 1: len);k=k+len2;   
end

 ksi=aa*Xk_prev./noise_mu2 + (1-aa)*max(gammak-1,0);     % 计算先验SNR,aa是平滑系数,一般取0.98,公式:

         

具体可参考:https://blog.csdn.net/zwhlxl/article/details/42917561

     在这里推荐一个MATLAB语音处理的工具箱:VOICEBOX

     voicebox是一个MATLAB中的语音处理工具箱,支持MATLAB6.5以上的版本。其中包含了对语音的分帧处理,滤波,加窗,参数提取等等函数,是语音识别几乎不可缺少的一个工具箱。网站:http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html 
这个网站包括了voicebox的介绍和下载包 。
    说明文档:http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html#enhance

from:https://blog.csdn.net/cwfjimogudan/article/details/45129947

还有基于RNN网络的去噪处理,我就不多介绍了,毕竟我的领域是图像,而不是音频。。。

from:基于RNN的音频降噪算法 (附完整C代码)

GitHub:https://github.com/as472780551/rnnoise


波束形成

                       

维纳滤波

                    


http://chatgpt.dhexx.cn/article/XFgGZwaI.shtml

相关文章

算法4-中兴捧月杯热身赛1素数判断-热身赛2亲和串-热身赛3旅游路线-

题目1&#xff1a;素数判断 需求 给定一个数n&#xff0c;要求判断其是否为素数(0,1&#xff0c;负数都是非素数)。输入描述:测试数据有多组&#xff0c;每组输入一个数n。输出描述:对于每组输入,若是素数则输出yes&#xff0c;否则输入no。 样例1: 输入:13输出:yes 代码 //…

2021中兴捧月神算师算法赛,4-24第一场,第四题:D-换队伍,2021-4-28

第四题&#xff1a;D-换队伍 分析&#xff1a; 1.问题本身很简单&#xff0c;也只有两条队伍&#xff0c;一个队伍中的人换到另一个队伍的末尾。问题在于对其他人排队位置的保存和排序。 2.用什么数据结构进行保存&#xff0c;是一个很关键的问题&#xff0c;对问题解决的方法和…

中兴捧月算法挑战赛-RAW夜景图像去噪总结

最终排名 85/1159 网址&#xff1a;https://zte.hina.com/zte/denoise 无缘复赛&#xff0c;太菜了&#xff0c;不好意思说自己学去噪的了&#xff0c;代码会开源&#xff0c;但是感觉没什么人看吧 尝试过的模型 DnCNN&#xff1a;很差&#xff0c;0分UNet&#xff1a;很蓝…

2021中兴捧月神算师算法赛,4-24第一场,第二题:B - 切绳子,2021-4-27

第二题&#xff1a;B - 切绳子 题目如下图所示&#xff1a; 这道题目难度中等&#xff0c;但是有很多细节要注意。 分析&#xff1a; 1.首先数据类型问题&#xff0c; 1<n<1e18,这个显然超过了int的长度65535&#xff0c;需要使用big int 或者是long long 型进行定义…

中兴捧月算法-切绳子

中兴捧月算法-切绳子 题目描述 来源&#xff1a;牛客网 示例一&#xff1a;

中兴捧月比赛DIJKSTRA派算法说明

因为文章包含太多公式&#xff0c;无法复制&#xff0c;所以只能截图 我现在不知道怎么传源码&#xff0c;代码的话如果有人要&#xff0c;留言QQ 输出的次优解路径为&#xff1a; S->N2->N4->N5->N3->N7->N8->N14->N13->N12-…

2019中兴捧月·总决赛心得

2019中兴捧月总决赛心得 原文链接&#xff1a;https://hey-yahei.cn/2019/05/25/zte_challenge_final/ 赛题背景 与初赛类似&#xff0c;不过初赛更多关注的是加速&#xff0c;而总决赛更关注的是压缩。 原始模型是一个简单的3x112x112输入大小的resnet18&#xff0c;人脸识…

2020年中兴捧月傅里叶派决赛题目

目录 题目&#xff1a; 模型建立 题目分析 注意的小问题 计算结果 代码 模型改进和精细预测 写在最后 题目&#xff1a; 假设&#xff1a; 病毒正在一个居民总数为N100,000, 的城市里扩散。在我们研究的时间段内&#xff08;300天&#xff09;&#xff0c;没有新生儿…

2022中兴捧月算法挑战赛(RAW图像去噪)——初赛到决赛总结与反思

文章目录 1. 初赛经历&炼丹详情1.1 初赛经历1.2 炼丹详情 2、复赛经历&反思与总结2.1 复赛经历2.2 复赛反思 3、决赛经历&反思与总结3.1 决赛题目3.2 决赛思路总结3.3 冠军方案记录3.4 决赛经历3.5 决赛反思 1. 初赛经历&炼丹详情 1.1 初赛经历 最后分数57.2…

2020中兴捧月算法大赛迪杰斯特拉赛道初赛题解

目录 摘要1 程序中使用的数据结构1.1 几个基本数据类型1.2 车道(Lane)1.3 道路(Road)1.4 站点(Station)1.5 货物(Goods)1.6 系统资源(SystemResource)1.7 物流系统(LogisticsSystem) 2 算法思路2.1 初赛初版&#xff1a;路由表、深度优先搜索、路径惩罚2.1.1 搜索策略2.1.2 路径…

中兴捧月营销精英挑战赛回顾

先上图 为期四天的比赛结束了&#xff0c;把这次比赛的收获做一个总结和分享。希望能帮上后面有需要的同学吧。 主要内容分为比赛流程、决赛内容和心得体会三部分。 一.比赛流程 比赛流程分为三部分&#xff0c;初赛、复赛和决赛。初赛开始需要每位同学从瑞伊、加勒斯和奥格…

2023中兴捧月图像赛道-任意尺度盲超分初赛第三方案

任意尺度盲超分-初赛第三方案 吐槽篇方案篇一、左脚踩右脚二、梯度攻击 建议篇 吐槽篇 正文内容.正式讲述方案之前&#xff0c;容我先吐槽两句&#xff0c;真tm的是比赛&#xff0c;纯纯ex人。学历厂就别打着以赛招聘的口号&#xff0c;要985计算机的直接去他们学校里宣讲嘛&am…

中兴捧月之旅

上个月底&#xff0c;我怀着激动的心情来到古都西安参加了第十一届中兴捧月算法大赛的全国总决赛&#xff0c;因为这是我第一次参加的线下封闭开发的现场竞赛&#xff0c;特以此文记录这趟快乐的西安之旅。 中兴捧月是中兴通讯公司举办的大型算法比赛&#xff0c;今年共有6大赛…

2020中兴捧月算法大赛——傅里叶赛道 第1名方案

大家好&#xff0c;我是轶扬。 最近我在总结研究生阶段参与的一些项目和比赛&#xff0c;翻到了2020年参加的中兴捧月算法大赛&#xff0c;题目很有意思&#xff0c;解法上也有一些有趣的创新&#xff0c;所以拿出来特别记录一下。 中兴捧月算法大赛是中兴通讯公司主办的算法赛…

2023 中兴捧月算法挑战赛-自智网络-参赛总结

“中兴捧月”是由中兴通讯面向在校大学生举办的全球性系列赛事活动&#xff0c;致力于培养学生建模编程、创新、方案策划和团队合作能力。今年是在学校的宣传下了解到比赛&#xff0c;最初抱着学习的态度报名了比赛&#xff0c;最终进入了决赛&#xff0c;完成了封闭的开发与赛…

谈谈中兴捧月大赛决赛以及总结

前言 四月份&#xff0c;在师兄的推荐下&#xff0c;报名参加了中兴捧月大赛。一开始只是为了混一个面笔试的资格&#xff08;因为提交有效成绩即可免笔试&#xff09;&#xff0c;然后为了找一个简单的赛道&#xff0c;注册了几个号看了两三个赛道的题目。发现自己每个都不熟…

我得重新集结部队(模拟)

思路&#xff1a;感觉问题不大&#xff0c;不知道为啥一直WA WA代码&#xff1a; package 练习; import java.util.*; import java.io.*; import java.lang.*; public class Main{public static void main(String[] args) {Scanner scnew Scanner (System.in);int nsc.nextInt…

攻防演习紫队第一篇之介绍和组织

文章目录 0x01 什么是紫队0x02 如何组织攻防实战攻防演习一、实战攻防演习组织要素二、实战攻防演习组织形式三、实战攻防演习组织关键 摘抄 0x01 什么是紫队 ● 紫队&#xff0c;一般是指网络实战攻防演习中的组织方。 ● 紫队是在实战攻防演习中&#xff0c;以组织方角色&am…

java毕业设计民兵管理系统(附源码、数据库)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven Vue 等等组成&#xff0c;B/…

哨兵数据的介绍

转载&#xff1a;[哨兵数据的介绍(http://www.spacemagazines.org/h-nd-193.html) “哨兵”卫星家族概览 据欧洲航天局网站2014年5月28日的报道&#xff0c;欧洲哨兵&#xff0d;1A&#xff08;Sentinel&#xff0d;1A&#xff09;卫星尽管还没有正式工作&#xff0c;但已为波…