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

信号补零对信号频谱的影响

文章目录

  • 前言
  • 一、 什么是补零
  • 二、案例
  • 三、补零前仿真及分析
  • 四、补零后仿真及分析
    • 1、补6000个零且1000采样点
      • ①、 MATLAB 源码
      • ②、仿真及结果分析
    • 2、波形分辨率
    • 3、补6000个零且7000采样点
      • ①、 MATLAB 源码
      • ②、仿真及结果分析
    • 4、补7000个零且7000采样点
      • ①、 MATLAB 源码
      • ②、仿真及结果分析
  • 五、补零的好处
  • 六、资源自取


前言

本文对信号补零前与补零后分别做 FFT,对频谱进行分析。

先抛出结论:
补 1 次零相当于在原始频谱图中每两个频率之间插入1个频率值,补 2 次零相当于在原始频谱图中每两个频率之间插入 2 个频率值,并且原始频率值的位置及其幅值保持不变。因此, 补零会使频谱图中的频率点的数量增加,从而使得频谱图更加的光滑连续,但是补零不能对频谱图中的频率分辨率、频率值以及幅值有所改善。


一、 什么是补零

FFT 运算点数( M M M) > 采样点数( N N N)时, f f t ( x n , M ) fft(xn,M) fft(xn,M) 函数对信号 x n x_n xn 进行尾补零操作即在该信号尾部添加多个值为 0 的数据点以使信号总点数 N N N 增至 FFT 运算所需点数 M M M

二、案例

目前有一个信号 ,这个信号中仅包含两个正(余)弦波,一个是 1 M H z 1MHz 1MHz,一个是 1.5 M H z 1.5MHz 1.5MHz,即 x = c o s ( 2 π ∗ 1000000 t ) + c o s ( 2 π ∗ 1050000 t ) x=cos(2\pi*1000000t)+cos(2\pi*1050000t) x=cos(2π1000000t)+cos(2π1050000t)。设定采样频率为 F s = 100 M H z F_s=100MHz Fs=100MHz,如果采 1000 个点,那么时域信号的时长就有 10 μ s 10\mu s 10μs(采样率*采样时间=采样点数)

三、补零前仿真及分析

直接对这 1000 个数据点做 FFT

1、补零前 MATLAB 源码

%% [预处理]
clc;   % 清除命令窗口
clear; % 清除工作空间的变量和函数
clf;   % 清除当前图形%% [采样参数]
fs = 100e6;         % 采样频率 (Hz)  
ts = 1/fs;          % 采样周期 (s)
N  = 1000;          % 采样点数 (个)
n  = 0:N-1;         % 采样点索引
t  = n*ts;          % 采样时间轴%% [未补零 被采信号 && 绘制时域波形]
fa = 1e6;           % 信号 a 的频率
fb = 1.05e6;        % 信号 b 的频率
xn = cos(2*pi*fa*t) + cos(2*pi*fb*t);   % 被采信号 = 信号a + 信号bfigure(1);
plot(t, xn);
axis([0 10e-6 -inf inf]);  % x 轴范围设置成[0,10us],y 轴范围最小值和最大值都为无穷
title('xn 时域图');
ylabel('幅度/V');
xlabel('时间/s');%% [未补零 被采信号 && 绘制频谱图]
M = 1000;                   % FFT 运算点数
X = fft(xn, M);             % FFT 输出值
X = [X(1)/N,X(2:M)*2/N];    % 幅度轴,对FFT输出值进行归一化处理,得到幅度轴上的值。
k = 0:M-1;                  % 频率点索引
f = fs*k/(M-1);             % 频率轴figure(2);
plot(f, abs(X));
axis([0.5e6 1.5e6 0 1.5]);  % x 轴范围设置成[0.5e6,1.5e6],y 轴范围设置成[0,1.5]
title('xn 频谱图');
ylabel('X(f)');
xlabel('频率/Hz');

2、仿真及结果分析

①、 x n x_n xn 时域图

请添加图片描述

②、 x n x_n xn 频谱图

请添加图片描述
如上图所示,直接对这 1000 个数据点做快速傅里叶变换,将得到频谱,只有一个谱峰,在 1 M H z 1MHz 1MHz 的地方,由于频谱点稀疏,在 1 M H z 1MHz 1MHz 根本无法将 1 M H z 1MHz 1MHz 1.05 M H z 1.05MHz 1.05MHz 的两个频率分开,这是因为频率分辨率不够,采样率 100 M H z 100MHz 100MHz,FFT 点数 1000 个点,频率分辨率 = 采样率 /FFT 点数 = 100 K H z 100 KHz 100KHz,所以无法区分 50 K H z 50KHz 50KHz

四、补零后仿真及分析

对数据补零,增加 FFT 点数,比如补 6000 个零,做 7000 个点的 FFT。

1、补6000个零且1000采样点

①、 MATLAB 源码

%% [预处理]
clc;   % 清除命令窗口
clear; % 清除工作空间的变量和函数
clf;   % 清除当前图形%% [采样参数]
fs = 100e6;         % 采样频率 (Hz)  
ts = 1/fs;          % 采样周期 (s)
N  = 1000;          % 采样点数 (个)
n  = 0:N-1;         % 采样点索引
t  = n*ts;          % 采样时间轴%% [被采信号 && 绘制时域波形] 
fa = 1e6;           % 信号 a 的频率
fb = 1.05e6;        % 信号 b 的频率
xn = cos(2*pi*fa*t) + cos(2*pi*fb*t);   % 被采信号 = 信号a + 信号bfigure(1);
plot(t, xn);
axis([0 10e-6 -inf inf]);  % x 轴范围设置成[0,10us],y 轴范围最小值和最大值都为无穷
title('xn 时域图');
ylabel('幅度/V');
xlabel('时间/s');%% [尾补零 被采信号 && 绘制时域波形]
xnwei=[xn zeros(1,6000)];	% 补6000个零
M = length(xnwei);          % FFT 运算点数
X = fft(xnwei, M);          % FFT 输出值
X = [X(1)/N,X(2:M)*2/N];    % 幅度轴,对FFT输出值进行归一化处理,得到幅度轴上的值。
k = 0:M-1;                  % 频率点索引
f = fs*k/(M-1);             % 频率轴figure(2);
plot(f, abs(X));
axis([0.5e6 1.5e6 0 1.5]);  % x 轴范围设置成[0.5e6,1.5e6],y 轴范围设置成[0,1.5]
title('补零后共7000个数据点做FFT的频谱');
ylabel('X(f)');
xlabel('频率/Hz');

②、仿真及结果分析

请添加图片描述
可以看到信号频谱变得平滑了,但是仍然无法区分 1 M H z 1MHz 1MHz 1.05 M H z 1.05MHz 1.05MHz

这里就要引出一个波形分辨率的概念,虽然补零了,提高了频谱分辨率,但是无法提高波形分辨率

2、波形分辨率

发现频率成分无法被区分开,第一反应就是:频率分辨率不够,那么,如何提高频率分辨率呢?首先要清楚,这里存在两种类型的频率分辨率。

一种叫波形分辨率,其由原始数据的时间长度决定:
Δ R w = 1 T \Delta R_w=\frac{1}{T} ΔRw=T1
另一种可以称之为视觉分辨率FFT分辨率,其由采样频率和参与 FFT 的数据点数决定:
Δ R f f t = F s N f f t \Delta R_{fft}=\frac{F_s}{N_{fft}} ΔRfft=NfftFs
之所以要区分,就是因为后面要进行 “补零” 操作。如果不补零,直接对原始数据做 FFT,那么这两种分辨率是相等的。

例如上面,有:
Δ R w = 1 10 μ s = Δ R f f t = 100 M H z 1000 = 100 K H z \Delta R_w=\frac{1}{10\mu s}=\Delta R_{fft}=\frac{100MHz}{1000}=100KHz ΔRw=10μs1=ΔRfft=1000100MHz=100KHz

所以要想提高波形分辨率,必须提高信号数据本身的长度

3、补6000个零且7000采样点

采样 7000 个信号数据做 FFT,还是补 6000 个零 ,做 7000 个点的 FFT

①、 MATLAB 源码

%% [预处理]
clc;   % 清除命令窗口
clear; % 清除工作空间的变量和函数
clf;   % 清除当前图形%% [采样参数]
fs = 100e6;         % 采样频率 (Hz)  
ts = 1/fs;          % 采样周期 (s)
N  = 7000;          % 采样点数 (个)
n  = 0:N-1;         % 采样点索引
t  = n*ts;          % 采样时间轴%% [被采信号 && 绘制时域波形] 
fa = 1e6;           % 信号 a 的频率
fb = 1.05e6;        % 信号 b 的频率
xn = cos(2*pi*fa*t) + cos(2*pi*fb*t);   % 被采信号 = 信号a + 信号bfigure(1);
plot(t, xn);
axis([0 10e-6 -inf inf]);  % x 轴范围设置成[0,10us],y 轴范围最小值和最大值都为无穷
title('xn 时域图');
ylabel('幅度/V');
xlabel('时间/s');%% [尾补零 被采信号 && 绘制时域波形]
xnwei=[xn zeros(1,6000)];	% 补6000个零
M = length(xnwei);          % FFT 运算点数
X = fft(xnwei, M);          % FFT 输出值
X = [X(1)/N,X(2:M)*2/N];    % 幅度轴,对FFT输出值进行归一化处理,得到幅度轴上的值。
k = 0:M-1;                  % 频率点索引
f = fs*k/(M-1);             % 频率轴figure(2);
plot(f, abs(X));
axis([0.5e6 1.5e6 0 1.5]);  % x 轴范围设置成[0.5e6,1.5e6],y 轴范围设置成[0,1.5]
title('采样点7000且补零后共7000个数据点做FFT的频谱');
ylabel('X(f)');
xlabel('频率/Hz');

②、仿真及结果分析

请添加图片描述
因为此时的波形分辨率为: Δ R w = 1 70 μ s ≈ 14 K H z \Delta R_w=\frac{1}{70 \mu s}\approx14KHz ΔRw=70μs114KHz,小于 1 M H z 1MHz 1MHz 1.05 M H z 1.05MHz 1.05MHz 这两个频率成分之间的举例 50 K H z 50KHz 50KHz,所以可以看出有两个明显的峰值。

但是会发现 1 M H z 1MHz 1MHz 对应的幅值为 1,与原始信号中该频率成分的幅值一致,但是 1.05 M H z 1.05MHz 1.05MHz 对应的幅值明显低于 1,但是其周边的点上确有不小的幅值,这就是所谓的频谱泄露因为数据点的个数影响,使得在 1 M H z 1MHz 1MHz 处有谱线存在,但在 1.05 M H z 1.05MHz 1.05MHz 处没有谱线存在,使测量结果偏离实际值,同时在实际频率点的能量分散到两侧的其他频率点上,并出现一些幅值较小的假谱。

这是因为在 1.05 M H z 1.05MHz 1.05MHz 那个地方刚好有个频点,也就是出现了所谓的频谱泄漏,还是数据长度不够,但这时是可以通过补零来达到目的。补零 1000 个点,做 8000 点的FFT。

4、补7000个零且7000采样点

采样 7000 个信号数据做 FFT,补 7000 个零 ,做 8000 点的 FFT

①、 MATLAB 源码

%% [预处理]
clc;   % 清除命令窗口
clear; % 清除工作空间的变量和函数
clf;   % 清除当前图形%% [采样参数]
fs = 100e6;         % 采样频率 (Hz)  
ts = 1/fs;          % 采样周期 (s)
N  = 7000;          % 采样点数 (个)
n  = 0:N-1;         % 采样点索引
t  = n*ts;          % 采样时间轴%% [被采信号 && 绘制时域波形] 
fa = 1e6;           % 信号 a 的频率
fb = 1.05e6;        % 信号 b 的频率
xn = cos(2*pi*fa*t) + cos(2*pi*fb*t);   % 被采信号 = 信号a + 信号bfigure(1);
plot(t, xn);
axis([0 10e-6 -inf inf]);  % x 轴范围设置成[0,10us],y 轴范围最小值和最大值都为无穷
title('xn 时域图');
ylabel('幅度/V');
xlabel('时间/s');%% [尾补零 被采信号 && 绘制时域波形]
xnwei=[xn zeros(1,7000)];   % 补7000个零
M = length(xnwei);          % FFT 运算点数
X = fft(xnwei, M);          % FFT 输出值
X = [X(1)/N,X(2:M)*2/N];    % 幅度轴,对FFT输出值进行归一化处理,得到幅度轴上的值。
k = 0:M-1;                  % 频率点索引
f = fs*k/(M-1);             % 频率轴figure(2);
plot(f, abs(X));
axis([0.5e6 1.5e6 0 1.5]);  % x 轴范围设置成[0.5e6,1.5e6],y 轴范围设置成[0,1.5]
title('采样点7000且补零后共8000个数据点做FFT的频谱');
ylabel('X(f)');
xlabel('频率/Hz');

②、仿真及结果分析

请添加图片描述
FFT 分辨率为 F s / N = 100 M H z / 8000 = 12.5 K H z F_s/ N=100MHz/8000=12.5KHz Fs/N=100MHz/8000=12.5KHz,是这两个频率的公约数, 1 M H z = 80 ∗ 12.5 K H z 1MHz = 80*12.5KHz 1MHz=8012.5KHz 1.05 M H z = 84 ∗ 12.5 K H z 1.05MHz=84*12.5KHz 1.05MHz=8412.5KHz,所以谱线同时经过 1 M H z 1MHz 1MHz 1.05 M H z 1.05MHz 1.05MHz 这两个点。

从上图也可以看到效果也比较理想,将 1 M H z 1MHz 1MHz 1.05 M H z 1.05MHz 1.05MHz 的两个信号频率分开。

五、补零的好处

  • 使数据 N 为 2 的整次幂,便于使用 FFT
  • 补零后,其实是对 DFT 结果做了插值,克服“栅栏"效应,使谱外观平滑化。我把“栅栏"效应形象理解为,就像站在栅栏旁边透过栅栏看外面风景,栅栏会挡住比较多风景,此时就可能漏掉较大频域分量,但是补零以后,相当于你站远了,风景就看的越来越清楚了。
  • 由于对时域数据的截短必然造成频谱泄露,因此在频谱中可能出现难以辨认的谱峰,补零在一定程度上能消除这种现象。

对信号进行头补零或尾补零再得到的幅频响应相等,相频响应不同

补零会使频谱图中的频率点的数量增加,从而使得频谱图更加的光滑连续,但是补零不能对频谱图中的频率分辨率、频率值以及幅值有所改善。

  • 补零(Zero-padding)是在FFT计算中向输入信号序列的末尾添加零值,从而增加信号的长度。这样做的主要目的是在频域中插入更多的零频率样本,以获得更好的频谱分析图。
  • 补零可以在一定程度上改善频谱图的可视化效果,使频谱图在频率轴上呈现更平滑的外观。这是因为补零增加了离散傅里叶变换(DFT)点数,从而在频率轴上产生更多的插值点。然而,这并不意味着补零改善了频率分辨率或精确性。
  • 频率分辨率由采样率和FFT长度决定,而补零并不改变采样率。补零只是对现有的采样点进行插值,不会增加频率分辨率。实际上,补零只是在现有的频率分辨率上插入了更多的点,而不是提高了分辨率本身。
  • 频率值和幅值也不会因为补零而改变。补零只是在现有的频率轴上插入了更多的点,对原有的频率值和幅值进行了插值。这些插值点的值是通过对原始采样点进行插值计算得到的,而不是通过补零本身引入的信息。
  • 如果希望改善频率分辨率或精确性,需要增加采样率或使用更长的FFT长度。

六、资源自取

信号补零对信号频谱的影响
在这里插入图片描述


我的qq:2442391036,欢迎交流!


相关文章:

信号补零对信号频谱的影响

文章目录 前言一、 什么是补零二、案例三、补零前仿真及分析1、补零前 MATLAB 源码2、仿真及结果分析①、 x n x_n xn​ 时域图②、 x n x_n xn​ 频谱图 四、补零后仿真及分析1、补6000个零且1000采样点①、 MATLAB 源码②、仿真及结果分析 2、波形分辨率3、补6000个零且7000采…...

【Gan教程 】 什么是变分自动编码器VAE?

名词解释:Variational Autoencoder(VAE) 一、说明 为什么深度学习研究人员和概率机器学习人员在讨论变分自动编码器时会感到困惑?什么是变分自动编码器?为什么围绕这个术语存在不合理的混淆?本文从两个角度…...

T113-S3-buildroot文件系统tar解压缩gz文件

目录 前言 一、现象描述 二、解决方案 三、tar解压缩.gz文件 总结 前言 本文主要介绍全志T113-S3平台官方SDK,buildroot文件系统tar不支持.gz文件解压缩的问题以及如何配置buildroot文件系统解决该问题的方法介绍。 一、现象描述 在buildroot文件系统中&#xff…...

软件测试面试题:压测时,QPS一直上不去,如何排查?

在进行系统压测时,QPS(Queries Per Second)即每秒查询数,无法达到预期值是一个常见的问题,本文就来介绍下QPS一直上不去时应该如何排查。 一. 检查硬件资源 CPU使用率 使用top或nmon命令来查看CPU使用率。如果CPU使…...

探索JavaScript ES6+新特性

JavaScript是一门十分流行的编程语言,它不断发展演变以适应现代Web开发需求。ES6(也称为ECMAScript 2015)是JavaScript的第六个版本,引入了许多令人兴奋的新特性和语法糖。本文将介绍一些ES6中最有趣和实用的特性。 箭头函数 箭…...

Elasticsearch常见错误

一 read_only_allow_delete" : "true" 当我们在向某个索引添加一条数据的时候,可能(极少情况)会碰到下面的报错: {"error": { "root_cause": [ { "type": "cluster_block_exception", "r…...

mysql源码编译安装

下载地址:http://dev.mysql.com/downloads/mysql/5.1.html#downloads 免费版,只能下载mysql社区版。MySQL Community Server 选择合适的版本迚行下载: 安装前,如果不存在mysql 用户,则建立之 [rootlocalhost ~]# useradd mys…...

On Moving Object Segmentation from Monocular Video with Transformers 论文阅读

论文信息 标题:On Moving Object Segmentation from Monocular Video with Transformers 作者: 来源:ICCV 时间:2023 代码地址:暂无 Abstract 通过单个移动摄像机进行移动对象检测和分割是一项具有挑战性的任务&am…...

[AutoSar NVM] 存储架构

依AutoSAR及公开知识辛苦整理,禁止转载。 专栏 《深入浅出AutoSAR》, 全文 2900 字. 图片来源: 知乎 汽车的ECU内存中有很多不同类型的变量,这些变量包括了车辆各个系统和功能所需的数据。大部分变量在ECU掉电后就会丢失&#x…...

ES10 新特性

1. Object.fromEntries Object.fromEntries() 方法把可迭代对象的键值对列表转换为一个对象。 语法: Object.fromEntries(iterable)iterable:类似 Array 、 Map 或者其它实现了可迭代协议的可迭代对象。返回值:一个由该迭代对象条目提供对应属性的新对象。相当于 Object.e…...

宝塔安装脚本

Centos安装脚本 yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec Ubuntu/Deepin安装脚本 wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sud…...

gulp打包vue3+jsx+less插件

最终转换结果如下 在根目录下添加gulpfile.js文件,package.json添加命令npm run gulp var gulp require(gulp) var babel require(gulp-babel) var less require(gulp-less) var del require(del); var spawn require(child_process).spawn;const outDir &…...

华为ICT——第四章深度学习和积卷神经

接第三章的末尾: 目录 接第三章的末尾: 1:自适应阈值分割: 2:形态处理: 4:膨胀: 5:腐蚀 6:开运算 7:闭运算 8:特征描述子 9&#xf…...

MongoDB 学习笔记(基础)

概论 出现背景:MongoDB 是文档型数据库,由于传统的关系型数据库(如 MySQL),在数据操作的“三高”需求以及应对 web 的网站需求面前显得有些吃力,在此环境下 MongoDB 出世了 三高需求: (1) 对数…...

【TGRS 2023】RingMo: A Remote Sensing Foundation ModelWith Masked Image Modeling

RingMo: A Remote Sensing Foundation Model With Masked Image Modeling, TGRS 2023 论文:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp&arnumber9844015 代码:https://github.com/comeony/RingMo MindSpore/RingMo-Framework (gitee.com) …...

性能测试 —— 生成html测试报告、参数化、jvm监控

1.生成HTML的测试报告 1.1配置 (1)找到jmeter 的安装目录,下的bin中的jmeter.properties(jmeter配置文件) (2) ctrl f ,搜索jmeter.save.saveservice.output_format,取消井号 并且 把等号后的xml改为csv,…...

堆(二叉树,带图详解)

一.堆 1.堆的概念 2.堆的存储方式 逻辑结构 物理结构 2.堆的插入问题 3.堆的基本实现(代码)(以小堆为例) 1.堆的初始化 2. 向上调整 3.插入结点 4. 交换函数、堆的打印 5.向下调整 6.删除根节点并调整成小根堆 7.获取堆…...

vue3 code format bug

vue code format bug vue客户端代码格式化缺陷,为了方便阅读和维护,对代码格式化发现这个缺陷 vue.global.min.3.2.26.js var Vuefunction(r){"use strict";function e(e,t){const nObject.create(null);var re.split(",");for(le…...

7-3、S曲线生成器【51单片机控制步进电机-TB6600系列】

摘要:本节介绍步进电机S曲线生成器的计算以及使用 一.计算原理 根据上一节内容,已经计算了一条任意S曲线的函数。在步进电机S曲线加减速的控制中,需要的S曲线如图1所示,横轴为时间,纵轴为角速度,其中w0为起…...

CDC实时数据同步

一丶CDC实时数据同步介绍 CDC实时数据同步指的是Change Data Capture(数据变更捕获)技术在数据同步过程中的应用。CDC技术允许在数据源发生变化时,实时地捕获这些变化,并将其应用到目标系统中,从而保持数据的同步性。…...

XML Group端口详解

在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异&#xff…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...