数字信号处理2: 离散信号与系统的频谱分析

news2024/9/21 5:19:24

文章目录

  • 前言
  • 一、实验目的
  • 二、实验设备
  • 三、实验内容
  • 四、实验原理
  • 五、实验步骤
    • 1.序列的离散傅里叶变换及分析
    • 2.利用共轭对称性,设计高效算法计算2个N点实序列的DFT。
    • 3.线性卷积及循环卷积的实现及二者关系分析
    • 4.比较DFT和FFT的运算时间
    • 5.利用FFT求信号频谱及分析采样频率、噪声对频谱的影响
    • 6.创新训练拓展内容
      • 6.1 信号持续时间、频谱分析范围、采样点数和谱分辨率的关系。
      • 6.2频谱的内插函数恢复(频域采样恢复)
      • 6.3对语音信号进行简单分析。
  • 六、实验结论与心得体会(手写)
  • 七、实验参考资料


前言

  本人初次学习离散信号与系统的频谱分析。

一、实验目的

  1.掌握离散傅里叶变换(DFT)及快速傅里叶变换(FFT)的计算机实现方法。
  2.检验序列DFT的性质。
  3.掌握利用DFT(FFT)计算序列线性卷积的方法。
  4.学习用DFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差,以便在实际中正确应用DFT。
  5.了解采样频率对谱分析的影响。
  6.了解利用FFT进行语音信号分析的方法。

二、实验设备

  1.计算机
  2.Matlab软件2014a以上版本。

三、实验内容

  1.对不同序列进行离散傅里叶变换并进行分析;DFT共轭对称性质的应用(通过1次N点FFT计算2个N点实序列的DFT)。
  2.线性卷积及循环卷积的关系,以及利用DFT(FFT)进行线性卷积的方法。
  3.比较计算序列的DFT和FFT的运算时间。
  4.利用FFT实现带噪信号检测。
  5.利用FFT计算信号频谱。
  6.扩展部分主要是关于离散系统采样频率、时域持续时间、谱分辨率等参数之间的关系,频谱的内插恢复,对语音信号进行简单分析。

四、实验原理

  1.序列的离散傅里叶变换及性质
  2.利用DFT计算线性卷积
  3.利用DFT对信号进行谱分析
  4.DFT和FFT的运算量
  5.信噪比

五、实验步骤

1.序列的离散傅里叶变换及分析

  分别对复序列,实序列,实偶序列,实奇序列,虚奇序列进行离散傅里叶变换,得到实验结果并对其特点进行分析。实验所需序列自选。
解:A、设定复序列:x(n)= {1,1,1,1,1}+j*{1,2,3,4,5} ;实序列:x1(n)= {1,1,1,1,1}
程序:

x1=ones(1,5);
x2=1:5;
x=x1+j*x2;
y1=fft(x,10);
y2=fft(x1,10);
subplot(1,2,1)
stem(0:9,abs(y1),'filled');
title('复序列DFT的幅度谱');
subplot(1,2,2)
stem(0:9,abs(y2),'filled');
title('实序列DFT的幅度谱');

结果:
在这里插入图片描述

B、设定实偶序列:x(n)= {5,4,3,2,1,0,1,2,3,4},实奇序列:x(n)= {0,4,3,2,1,0,-1,-2,-3,-4},虚奇序列:x(n)= j*{0,4,3,2,1,0,-1,-2,-3,-4};
程序:

x=[5,4,3,2,1,0,1,2,3,4];
y=fft(x,10);
subplot(3,3,1)
stem(0:9,abs(y),'filled');
title('实偶序列DFT的幅度谱');
subplot(3,3,2)
stem(0:9,real(y),'filled');
title('实偶序列DFT的实部');
subplot(3,3,3)
stem(0:9,imag(y),'filled');
title('实偶序列DFT的虚部');
x=[0,4,3,2,1,0,-1,-2,-3,-4];
y=fft(x,10);
subplot(3,3,4)
stem(0:9,abs(y),'filled');
title('实奇序列DFT的幅度谱');
subplot(3,3,5)
stem(0:9,real(y),'filled');
title('实奇序列DFT的实部');
subplot(3,3,6)
stem(0:9,abs(imag(y)),'filled');
title('实奇序列DFT的虚部');
x=j*[0,4,3,2,1,0,-1,-2,-3,-4];
y=fft(x,10);
subplot(3,3,7)
stem(0:9,y,'filled');
title('虚奇序列DFT的幅度谱');
subplot(3,3,8)
stem(0:9,real(y),'filled');
title('虚奇序列DFT的实部');
subplot(3,3,9)
stem(0:9,imag(y),'filled');0
title('虚奇序列DFT的虚部');

结果:
在这里插入图片描述

分析:
在这里插入图片描述

2.利用共轭对称性,设计高效算法计算2个N点实序列的DFT。

   用一个N点FFT计算两个长度为N的实序列N点离散傅里叶变换,并将结果和直接使用两个N点DFT得到的结果进行比较。
解:设定 x 1 ( n ) x_1 (n) x1(n)={1,2,3,4,5,6},0≤n≤5; x 2 ( n ) x_2 (n) x2(n)={1,2,1,3,1,4},0≤n≤5;
程序:

 
x1=[1,2,3,4,5,6];
x2=[1,2,1,3,1,4];
y1=fft(x1);
y2=fft(x2);
x=x1+j*x2;
y=fft(x,6);
[xec,xoc]=circevod(y);
subplot(2,2,1)
stem(0:5,abs(y1),'filled');
title('x_1(n)的直接六点DFT的幅度谱');
grid on;
subplot(2,2,2)
stem(0:5,abs(y2),'filled');
title('x_2(n)的直接六点DFT的幅度谱');
grid on;
subplot(2,2,3)
stem(0:5,abs(xec),'filled');
title('x_1(n)高效算法DFT的幅度谱');
grid on;
subplot(2,2,4)
stem(0:5,abs(xoc),'filled');
title('x_2(n)高效算法DFT的幅度谱');
grid on;

结果:
在这里插入图片描述

分析:
在这里插入图片描述

3.线性卷积及循环卷积的实现及二者关系分析

  计算两序列的线性卷积及循环卷积,循环卷积采用2种计算方法(时域、频域方法)。设序列x1长度为M,序列x2长度为N,循环卷积长度为L,分别计算L大于、等于、小于(M+N-1)时的循环卷积。序列x1、x2、L自选,得到实验结果并对线性卷积及循环卷积的关系进行分析。
解:设定 x 1 ( n ) x_1 (n) x1(n)={1,2,3,4},0≤n≤5; x 2 ( n ) x_2 (n) x2(n)={1,2,1,3},0≤n≤5;其中M=N=4,分别采用2种方法(时域、频域)计算L=4/7/12的循环卷积
程序:

figure(1)
x1=[1,2,3,4];
x2=[1,2,1,3];
subplot(3,2,1)
y1=circonv(x1,x2,4);
stem(0:3,abs(y1),'filled');
title('从时域计算4点循环卷积');
grid on;
subplot(3,2,3)
y1=circonv(x1,x2,7);
stem(0:6,abs(y1),'filled');
title('从时域计算7点循环卷积');
grid on;
subplot(3,2,5)
y1=circonv(x1,x2,12);
stem(0:11,abs(y1),'filled');
title('从时域计算12点循环卷积');
grid on;
subplot(3,2,2)
y1=fft(x1,4);
y2=fft(x2,4);
x=ifft(y1.*y2)
stem(0:3,abs(x),'filled');
title('从频域计算4点循环卷积');
grid on;
subplot(3,2,4)
y1=fft(x1,7);
y2=fft(x2,7);
x=ifft(y1.*y2)
stem(0:6,abs(x),'filled');
title('从频域计算7点循环卷积');
grid on;
subplot(3,2,6)
y1=fft(x1,12);
y2=fft(x2,12);
x=ifft(y1.*y2)
stem(0:11,abs(x),'filled');
title('从频域计算12点循环卷积');
grid on;
 
figure(2)
x1=[1,2,3,4];
x2=[1,2,1,3];
y=conv(x1,x2);
stem(0:6,y,'filled')
grid on;
title('线性卷积的结果');

结果:
在这里插入图片描述
在这里插入图片描述

分析:
在这里插入图片描述

4.比较DFT和FFT的运算时间

  (1)自行选择进行计算的序列(或产生随机序列)。
  (2)DFT点数N分别取64、256、1024、2048、……
  (3)分别采用直接计算(按DFT定义计算)和fft函数计算,利用计时函数tic、toc,分别统计直接计算和fft计算所用的时间,并对结果进行比较(含直接计算和fft计算的比较、不同点数N所需计算时间和节约时间的比较等)。
解:设定序列为x=[1,2,3,4,ones(1,60)]
程序:

x=[1,2,3,4,ones(1,60)];
tic
X1=dft(x,64);
toc
tic
X2=fft(x,64);
toc
时间已过 0.003188 秒。
时间已过 0.001967 秒。
x=[1,2,3,4,ones(1,252)];
tic
X1=dft(x,256);
toc
tic
X2=fft(x,256);
toc
时间已过 0.012424 秒。
时间已过 0.002118 秒。
x=[1,2,3,4,ones(1,1020)];
tic
X1=dft(x,1024);
toc
tic
X2=fft(x,1024);
toc
时间已过 0.249468 秒。
时间已过 0.008443 秒。
x=[1,2,3,4,ones(1,2044)];
tic
X1=dft(x,2048);
toc
tic
X2=fft(x,2048);
toc
时间已过 1.078018 秒。
时间已过 0.021545 秒 
结果:
点数	DFT	FFT
64	0.0031880.001967256	0.0124240.0021181024	0.2494680.0084432048	1.0780180.021545

结果:

点数DFTFFT
640.003188 秒0.001967 秒
2560.012424 秒0.002118 秒
10240.249468 秒0.008443 秒
20481.078018 秒0.021545 秒

分析:
在这里插入图片描述

5.利用FFT求信号频谱及分析采样频率、噪声对频谱的影响

  (1)设模拟信号 x ( t ) = 3 c o s ⁡ ( 8 π t ) + 6 c o s ⁡ ( 20 π t ) x(t)=3 cos⁡( 8πt)+6 cos⁡( 20πt) x(t)=3cos(8πt)+6cos(20πt),以 t = 0.01 n , 0 ≤ n ≤ N − 1 t=0.01n,0≤n≤N-1 t=0.01n,0nN1进行采样离散化,画出所得序列 x N ( n ) x_N (n) xN(n)的N点DFT幅值谱(N分别取50,256),利用FFT实现。分析信号频谱所对应频率轴的数字频率和频率之间的关系。在点数N不变的条件下降低采样频率(需满足采样定理),观察信号频谱的变化,分析产生变化的原因。
解:A、采样频率为100hz,分别画出N=50,256点DFT幅度谱如下所示:
程序:

N=50;
n=0:N-1;
T=0.01;
x=3*cos(8*pi*n*T)+6*cos(20*pi*n*T);
subplot(2,2,1);
stem(n,x,'.');
title('f_s=100hz,N=50时的信号');
Y=fft(x,N);
k1=0:N-1;w1=2*pi/N*k1;
subplot(2,2,2);
stem(n,abs(Y),'.');
title('f_s=100hz,N=50时信号的频谱');
N=256;
n=0:N-1;
T=0.01;
x=3*cos(8*pi*n*T)+6*cos(20*pi*n*T);
subplot(2,2,3);
stem(n,x,'.');
title('f_s=100hz,N=256时的信号');
Y=fft(x,N);
k1=0:N-1;w1=2*pi/N*k1;
subplot(2,2,4);
stem(n,abs(Y),'.');
title('f_s=100hz,N=256时信号的频谱') 

结果:
在这里插入图片描述

B、采样频率为50hz,分别画出N=50,256点DFT幅度谱如下所示:
程序:

N=50;
n=0:N-1;
T=0.02;
x=3*cos(8*pi*n*T)+6*cos(20*pi*n*T);
subplot(2,2,1);
stem(n,x,'.');
title('f_s=50hz,N=50时的信号');
Y=fft(x,N);
k1=0:N-1;w1=2*pi/N*k1;
subplot(2,2,2);
stem(n,abs(Y),'.');
title('f_s=50hz,N=50时信号的频谱');
N=256
n=0:N-1;
T=0.02;
x=3*cos(8*pi*n*T)+6*cos(20*pi*n*T);
subplot(2,2,3);
stem(n,x,'.');
title('f_s=50hz,N=256时的信号');
Y=fft(x,N);
k1=0:N-1;w1=2*pi/N*k1;
subplot(2,2,4);
stem(n,abs(Y),'.');
title('f_s=50hz,N=256时信号的频谱');

结果:
在这里插入图片描述

分析:
在这里插入图片描述

  (2)对序列 x N ( n ) x_N (n) xN(n)(N任取50或者256,需表示为行向量)加入噪声 ( 0.2 ∗ r a n d n ( 1 , N ) ) (0.2*randn(1,N)) 0.2randn(1,N),比较有无噪声时的信号谱,加大噪声到 2 ∗ r a n d n ( 1 , N ) 2*randn(1,N) 2randn(1,N) 10 ∗ r a n d n ( 1 , N ) 10*randn(1,N) 10randn(1,N),计算信噪比,画出并比较不同噪声下时域波形和幅度频谱,讨论噪声对信号分析的影响。
答:程序:

figure(1)
N=50;
n=0:N-1;
t=0.01*n;
q=n*2/N;
x1=3*cos(8*pi*t)+6*cos(20*pi*t);
subplot(2,2,1)
plot(n,x1);title('Pure signal')
y=fft(x1,N);
subplot(2,2,2)
plot(q,abs(y));title('FFT of pure signal(N=50)')
x2=x1+0.2*randn(1,N);
SNR1=snr(x1,x2)
subplot(2,2,3)
plot(n,x2);title('noisy signal')
y=fft(x2,N);
subplot(2,2,4)
plot(q,abs(y));title('FFT of signal with noise (N=50)')
 
figure(2)
N=50;
n=0:N-1;
t=0.01*n;
q=n*2/N;
x1=3*cos(8*pi*t)+6*cos(20*pi*t);
x2=x1+2*randn(1,N);
x3=x1+10*randn(1,N);
SNR2=snr(x1,x2)
SNR3=snr(x1,x3)
subplot(2,2,1)
plot(n,x2);title('noisy signal(2*randn(1,N))')
y2=fft(x2,N);
subplot(2,2,2)
plot(q,abs(y2));title('FFT of signal with more noise (N=50)')
subplot(2,2,3)
plot(n,x3);title('noisy signal(10*randn(1,N))')
y3=fft(x3,N);
subplot(2,2,4)
plot(q,abs(y3));title('FFT of signal with more 
noise(N=50)') 
 
SNR1 =
    0.0783
SNR2 =
   -0.6612
SNR3 =
   -6.4308

图形结果:
在这里插入图片描述
在这里插入图片描述

分析:
在这里插入图片描述

6.创新训练拓展内容

6.1 信号持续时间、频谱分析范围、采样点数和谱分辨率的关系。

  (1)已知模拟信号 x ( t ) = c o s ⁡ ( 200 π t ) + c o s ⁡ ( 800 π t ) + c o s ⁡ ( 816 π t ) + c o s ⁡ ( 1000 π t ) x(t)=cos⁡( 200πt)+cos⁡( 800πt)+cos⁡( 816πt)+cos⁡( 1000πt) x(t)=cos(200πt)+cos(800πt)+cos(816πt)+cos(1000πt),欲采用数字方法分析该信号的频谱,要求能明确区分该信号的所有频率分量(两个相邻频谱分量之间至少间隔一个离散频率点)。为了便于采用基2-FFT来分析该信号的频谱并避免频谱失真,希望截取该信号的整数个周期进行频谱分析,并且采样点数为2M(M为正整数),请确定适当的采样频率(不发生频谱混叠且满足前述要求的最低采样频率)、采样点数(时域最小记录时间),并利用所确定的参数编写程序,对该信号进行频谱分析,画出模拟信号的幅度频谱,分析其频谱分析范围和谱分辨率。
解: f s m i n = 1024 h z , N m i n = 256 f_{smin}=1024hz,N_{min}=256 fsmin=1024hzNmin=256(具体过程在下面分析里)
程序

T=1/1024;
n=0:255;
t=n*T;
x=cos(200*pi*t)+cos(800*pi*t)+cos(816*pi*t)+cos(1000*pi*t);
subplot(2,1,1);
stem(n,x,'.') 
title('采样1024hz的信号');
axis([0,256,0,4])
subplot(2,1,2);
XK2=fft(x);
w=[0:5000]*pi/5000;
N=256;k=n;
X2=XK2/N*(sin(w*N/2-pi*k')./sin(w/2-pi*k'/N)).*exp(-j*w*(N-1)/2);
plot(w/pi*512,abs(X2))
xlabel('hz');  
title('采样1024hz的幅度谱(N=256)');
axis([0,512,0,150]) 

结果:
在这里插入图片描述

分析:
在这里插入图片描述

  (2)保持采样点数不变,采样频率增大1倍,重新分析信号的幅度频谱。比较信号幅度频谱、谱分辨率、频谱分析范围的变化并分析其原因。
解:程序:

T=1/2048;
n=0:255;
t=n*T;
x=cos(200*pi*t)+cos(800*pi*t)+cos(816*pi*t)+cos(1000*pi*t);
subplot(2,1,1);
stem(n,x,'.') 
title('采样2048hz的信号');
axis([0,256,0,4])
subplot(2,1,2);
XK2=fft(x);
w=[0:5000]*pi/5000;
N=256;k=n;
X2=XK2/N*(sin(w*N/2-pi*k')./sin(w/2-pi*k'/N)).*exp(-j*w*(N-1)/2);
plot(w/pi*1024,abs(X2))
xlabel('hz');  
title('采样2048hz的幅度谱(N=256)');
axis([0,1024,0,180]) 

结果:
在这里插入图片描述

分析:
在这里插入图片描述

  (3)保持采样频率不变,分别将采样点数增大和减少1倍,重新分析信号的幅度频谱。比较信号幅度频谱、谱分辨率、频谱分析范围的变化并分析其原因。
解:程序:

T=1/1024;
n=0:127;
t=n*T;
x=cos(200*pi*t)+cos(800*pi*t)+cos(816*pi*t)+cos(1000*pi*t);
subplot(2,2,1);
stem(n,x,'.') 
title('采样1024hz的信号');
axis([0,128,0,4])
subplot(2,2,2);
XK2=fft(x);
w=[0:5000]*pi/5000;
N=128;k=n;
X2=XK2/N*(sin(w*N/2-pi*k')./sin(w/2-pi*k'/N)).*exp(-j*w*(N-1)/2);
plot(w/pi*512,abs(X2))
xlabel('hz');  
title('采样1024hz的幅度谱(N=128)');
axis([0,512,0,85]) 
T=1/1024;
n=0:511;
t=n*T;
x=cos(200*pi*t)+cos(800*pi*t)+cos(816*pi*t)+cos(1000*pi*t);
subplot(2,2,3);
stem(n,x,'.') 
title('采样1024hz的信号');
axis([0,512,0,4])
subplot(2,2,4);
XK2=fft(x);
w=[0:5000]*pi/5000;
N=512;k=n;
X2=XK2/N*(sin(w*N/2-pi*k')./sin(w/2-pi*k'/N)).*exp(-j*w*(N-1)/2);
plot(w/pi*512,abs(X2))
xlabel('hz');  
title('采样1024hz的幅度谱(N=512)');
axis([0,512,0,300]) 

结果:
入图片描述
分析:
在这里插入图片描述

6.2频谱的内插函数恢复(频域采样恢复)

  基于频域采样X(k)及内插公式(教材式(3.3.7)和式(3.3.8)),用Matlab编程实现离散谱(DFT)到连续谱的转换:采用N=4的矩形序列 x ( n ) = R 4 ( n ) x(n)=R_4 (n) x(n)=R4(n),分别求出其4点和8点DFT,然后利用内插公式(为保证恢复得到的频谱曲线足够光滑,在Matlab程序中对连续变量ω的离散化,应取200个离散点以上),分别由其4点和8点DFT恢复其连续频谱 X ( e j ω ) X(e^{jω}) X(e),画出 X ( e j ω ) X(e^{jω}) X(e)的幅度频谱图(应为光滑连续曲线),并比较不同DFT点数恢复的结果以及 R 4 ( n ) R_4 (n) R4(n)的理论频谱(参见教材图2.2.1)。

解:程序:

subplot(2,2,1)
x=[1,1,1,1];
XK1=fft(x,4);
k=0:3;N=4;
w=[-2000:2000]*pi/1000;
X1=XK1/N*(sin(w*N/2-pi*k')./sin(w/2-pi*k'/N)).*exp(-j*w*(N-1)/2);
plot(w/pi,abs(X1))
title('N=4的DFT内插公式恢复结果');
xlabel('w/π');
subplot(2,2,2)
n=0:3; 
x=(1).^n;  
w=[-500:500]*pi/250; 
X=x*exp(-j*n'*w);   
plot(w/pi,abs(X))
title('N=4的DFT的理论频谱');
xlabel('w/π');
subplot(2,2,3)
x=[1,1,1,1];
XK2=fft(x,8);
k=0:7;N=8;
w=[-2000:2000]*pi/1000;
X2=XK2/N*(sin(w*N/2-pi*k')./sin(w/2-pi*k'/N)).*exp(-j*w*(N-1)/2);
plot(w/pi,abs(X2))
title('N=8的DFT内插公式恢复结果');
xlabel('w/π');
subplot(2,2,4)
n=0:3; 
x=(1).^n 
w=[-500:500]*pi/250; 
X=x*exp(-j*(0:7)'*w);   
plot(w/pi,abs(X))
title('N=8的DFT的理论频谱');
xlabel('w/π');

结果:
在这里插入图片描述

分析:
在这里插入图片描述

6.3对语音信号进行简单分析。

  基于MATLAB平台,利用DFT对以适当的采样频率进行采集的不同人的单音节语音信号进行频谱分析(注意首先要对采集到的语音信号进行适当的截取),画出语音信号的波形及频谱。说明该频谱所对应的模拟频率,分析语音信号的频率分布特点,对比不同人说同一个音节的频谱的差异(最好分别用男声和女声进行分析)。对语音信号波形、单音节语音信号的截取方式、DFT频谱、频谱分析结果等进行讨论。
解:程序:

figure(1)
recObj = audiorecorder;
disp('Start speaking.')
recordblocking(recObj, 2);
disp('End of Recording.');
play(recObj);
y = getaudiodata(recObj);
subplot(1,2,1);
stem(y,'.');  
xlabel('时间');
ylabel('幅度');
title('信号波形');  
subplot(1,2,2); 
stem(abs(fft(y)),'.');
title('信号频谱');
xlabel('频率');
ylabel('幅度');
 
figure(2)
sec1=5 
sec2 =12 
y1=y(((1000*sec1+1):1000*sec2),:);
subplot(1,2,1);
stem(y1,'.');   
xlabel('时间');
ylabel('幅度');
title('适当截取后信号的波形');  
subplot(1,2,2); 
stem(abs(fft(y1)),'.');
title('适当截取后信号的频谱');
xlabel('频率');
ylabel('幅度'); 

结果:
在这里插入图片描述
在这里插入图片描述

分析:
在这里插入图片描述

六、实验结论与心得体会(手写)

在这里插入图片描述

七、实验参考资料

  1.高西全,丁玉美.数字信号处理[M].西安:西安电子科技大学出版社,2008
  2.张德丰.详解MATLAB 数字信号处理[M].北京:电子工业出版社,2010
  3.王月明,张宝华.MATLAB基础与应用教程[M].北京:北京大学出版社,2012
  4.陈怀琛.数字信号处理教程:MATLAB释义与实现(第3版)[M].北京:电子工业出版社,2013
  5.宋知用.MATLAB数字信号处理85个实用案例精讲:入门到进阶[M].北京:北京航空航天大学出版社,2016

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

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

相关文章

【机器学习】(基础篇三) —— 损失函数和梯度下降

损失函数 损失函数(Loss Function),也称为代价函数(Cost Function)或误差函数(Error Function),是机器学习和深度学习中一个核心的概念。它用于量化模型预测与实际目标之间的差异&a…

有序转化数组(LeetCode)

题目 给你一个已经 排好序 的整数数组 和整数 、 、 。对于数组中的每一个元素 ,计算函数值 ,请 按升序返回数组 。 解题 在时间复杂度为解决问题 def sortTransformedArray(nums, a, b, c):def f(x):return a * x * x b * x cn len(nums)result…

配置Mysql的慢查询日志

一、什么是Mysql慢查询日志 MySQL慢查询日志是MySQL数据库自带的一个功能,用于记录执行时间超过指定阈值的SQL语句,以便于后续的性能优化工作 帮助开发和DBA发现哪些SQL语句需要优化,在哪些地方需要修改,以提高数据库的性能 默认…

【Hot100】LeetCode—51. N 皇后

原题链接:51. N 皇后 1- 思路 使用回溯的方式实现,回溯三部曲 数据结构:定义三维数组,收集结果1- 回溯终止条件:如果遍历到 row n-1 此时就是结果收集的时刻2- 执行 for 循环遍历,执行递归和回溯 2- 实现…

【Linux】系列入门摘抄笔记-3-系统管理、显示相关命令

系统管理、显示相关命令 shutdown/关机和重启 sync 数据同步:把内存中的数据强制向硬盘中保存。不放心的话,应该在关机或重启之前手工执行几次,避免数据丢失。 shutdown [选项] 时间 [警告信息] shutdown -h now shutdown -h 05:30 shutdown -h 5 (5分钟后关机)reb…

计算机毕业设计选题推荐-视频点播系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

ubuntu安装微信

ubuntu安装微信 微信特性 可以截图无聊天乱码 安装指南 输入下面命令 wget -c -O atzlinux-v12-archive-keyring_lastest_all.deb https://www.atzlinux.com/atzlinux/pool/main/a/atzlinux-archive-keyring/atzlinux-v12-archive-keyring_lastest_all.debsudo apt -y insta…

全国不动产登记技能竞赛有哪些奖项

(一)个人综合奖 个人综合奖在参加代表展示的选手中产生。 1.对获得全国决赛第1名的选手,符合条件的,按程序向中华全国总工会推荐申报“全国五一劳动奖章”。 2.对获得全国决赛前15名的选手,由竞…

【Vue】vue3中通过自定义指令实现数字的动态增加动画

在Vue 3中通过自定义指令实现数字的动态增加动画,可以利用Vue的自定义指令功能,这允许你扩展Vue的内置指令,使得DOM操作更加灵活和强大。以下是如何创建一个自定义指令来实现数字动态增加动画的步骤: 效果演示 代码实现 1、定义指…

四种推荐算法——Embedding+MLP、WideDeep、DeepFM、NeuralCF

一、EmbeddingMLP模型 EmbeddingMLP 主要是由 Embedding 部分和 MLP 部分这两部分组成,使用 Embedding 层是为了将类别型特征转换成 Embedding 向量,MLP 部分是通过多层神经网络拟合优化目标。——用于广告推荐。 Feature层即输入特征层,是模…

【C++】string类——模拟实现

🚀个人主页:奋斗的小羊 🚀所属专栏:C 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言💥1、string类主要函数接口💥2、string类的模拟实现💥2.1 构造和析构…

【Material-UI】FormGroup 组件:多选框分组的最佳实践详解

文章目录 一、FormGroup 组件概述1. 组件介绍2. 组件的基本结构 二、FormGroup 的关键特性1. 逻辑分组2. 状态管理3. 错误处理 三、FormGroup 的实际应用场景1. 多选项管理2. 逻辑验证3. 用户偏好设置4. 表单提交 四、注意事项1. 无障碍支持2. 样式定制 五、总结 在 Material-U…

AWVS下载安装使用教程图文教程(超详细)

《网络安全自学教程》 AWVS(Acunetix Web Vulnerability Scanner)是一款常用的Web网站漏洞扫描工具。 AWVS扫描时,对数据库有增删改的操作,部分渗透项目禁止使用,在实际环境中需要注意。 这篇文章使用 Windows Serve…

30个UI设计师应该掌握的专业术语

每个领域都有自己的专有名词和术语,掌握它们才能更好地和工作伙伴沟通。作为一名资深UI设计师,我整理了以下30个UI设计师应该掌握的专业术语,希望能帮助大家更好地理解和运用这些概念。 这些术语包含三大类:基础名词、常用UI设计…

藏品管理系统的流程

1、文物征集: - 通过购买、捐赠、交换、考古发掘等方式征集文物。 征集过程中需遵守国家法律法规和相关规定。 2、文物鉴定: - 对新发现的文物和征集的文物进行专业鉴定,确定其是否具有历史、艺术、科学价值。 3、 文物登记&…

【吊打面试官系列-Elasticsearch面试题】详细描述一下 Elasticsearch 索引文档的过程?

大家好,我是锋哥。今天分享关于 【详细描述一下 Elasticsearch 索引文档的过程?】面试题,希望对大家有帮助; 详细描述一下 Elasticsearch 索引文档的过程? 协调节点默认使用文档 ID 参与计算(也支持通过 routing)&am…

个人经典例程与研究方向总目录

🎁 私信可获得仿真数据、论文与建模的仿真定制 👇 订阅本人任意付费专栏的朋友,均可私信,免费获取一维EKF/UKF的MATLAB例程 目前的研究方向 1 导航与定位 卡尔曼滤波跟踪、二维三维轨迹计算、平面立体目标跟踪、 2 智能算法方面…

顶顶通手机助手拦截方案

现在很多品牌的手机,都自带语音助手,比如我用的是小米手机,就自带小爱助手,可以自动接听各种广告营销电话。如果来电号码被标记为广告营销,小爱助手就会自动应答,然后模拟真人进行对话。 现在自动外呼系统拨…

二次注入(sql靶场第24关+网鼎杯comment二次注入+网鼎杯-2018-Web-Unfinish)

目录 二次注入 sql靶场第24关 网鼎杯comment二次注入 网鼎杯-2018-Web-Unfinish 二次注入 sql靶场第24关 二次注入我觉得是特别有意思,首先依然是查看页面 可以看出来这一关十分的丰富,可以注册,修改和登录,那我们先试着注册…

工地云SaaS系统,通过物联网与可视化等先进技术的综合应用,搭建的智慧工地管理云平台源码

通过物联网与可视化等先进技术的综合应用,搭建智慧工地管理云平台。以绿色、安全施工管理为主线,从人员、设备、环境、监控#度管理、施工管理、工程管理等多个维度对现场要素进行信息化,实现数据实时更新、人员精确管理、风险及时预警、管理便…