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

17、matlab实现均值滤波、中值滤波、Butterworth滤波和线性相位FIR滤波

1、创建信号

1)创建正余弦信号、噪声信号和混合信号

原始正余弦信号公式:Signal1= sin(2*pi*20* t) + sin(2*pi*40* t) + sin(2*pi*60* t)

高斯分布的白噪声:NoiseGauss= [randn(1,2000)]

均匀分布的白噪声:[rand(1,2000)]

正余弦信号、噪声信号和混合信号代码:

N = 2000; %采样点数
Fs = 2000; %采样频率
t = 0:1 / Fs:1 - 1 / Fs; %时间序列
Signal1= sin(2*pi*20* t) + sin(2*pi*40* t) + sin(2*pi*60* t);
NoiseGauss= [randn(1,2000)]; %高斯分部白噪声
NoiseWhite= [rand(1,2000)]; %后100点均匀分布白噪声
NoiseSignal1= Signal1+NoiseGauss; %设计混合信号1
NoiseSignal2= Signal1+NoiseWhite; %设计混合信号2
subplot(5,1,1);
plot(Signal1);
title('正余弦信号');
subplot(5,1,2);
plot(NoiseGauss);
title('高斯噪声');
subplot(5,1,3);
plot(NoiseWhite);
title('白噪声');
subplot(5,1,4);
plot(NoiseSignal1);
title('混合高斯噪声信号');
subplot(5,1,5);
plot(NoiseSignal2);
title('混合白噪声信号');

试图效果:

2)创建方波信号、噪声及混合信号

原始方波信号公式:

Signal2=[2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),]

高斯分布的白噪声:NoiseGauss= [randn(1,2000)]

均匀分布的白噪声:[rand(1,2000)]

方波信号、噪声及混合信号代码

N = 2000; %采样点数
Fs = 2000; %采样频率
t = 0:1 / Fs:1 - 1 / Fs; %时间序列
NoiseGauss= [randn(1,2000)]; %高斯分部白噪声
NoiseWhite= [rand(1,2000)]; %后100点均匀分布白噪声
Signal2=[2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),];
NSignal1= Signal2+NoiseGauss; %设计混合信号1
NSignal2= Signal2+NoiseWhite; %设计混合信号2
subplot(5,1,1);
plot(Signal2);
title('方波信号');
subplot(5,1,2);
plot(NoiseGauss);
title('高斯噪声');
subplot(5,1,3);
plot(NoiseWhite);
title('白噪声');
subplot(5,1,4);
plot(NSignal1);
title('方波混合高斯噪声信号');
subplot(5,1,5);
plot(NSignal2);
title('方波混合白噪声信号');

试图效果:

2、均值滤波filter()函数

语法:y = filter(b,a,x) 使用由分子和分母系数 b 和 a 定义的有理传递函数 对输入数据 x 进行滤波。

1)正余弦混合噪声信号均值滤波

代码:

N = 2000; %采样点数
Fs = 2000; %采样频率
t = 0:1 / Fs:1 - 1 / Fs; %时间序列
Signal1= sin(2*pi*20* t) + sin(2*pi*40* t) + sin(2*pi*60* t);
NoiseGauss= [randn(1,2000)]; %高斯分部白噪声
NoiseWhite= [rand(1,2000)]; %后100点均匀分布白噪声
NoiseSignal1= Signal1+NoiseGauss; %设计混合信号1
NoiseSignal2= Signal1+NoiseWhite; %设计混合信号2
b=[1 1 1 1 1 1]/6;
Signal_Filter1 = filter(b,1,NoiseSignal1);
Signal_Filter2 = filter(b,1,NoiseSignal2);
figure(1);
subplot(3,2,1);               
plot(Signal1);
title('原始信号1');
subplot(3,2,3);               
plot(NoiseSignal1);
title('高斯混合信号1');
subplot(3,2,5);  
plot(Signal_Filter1);
title('均值滤波后高斯混合信号1');
subplot(3,2,2);               
plot(Signal1);
title('原始信号1');
subplot(3,2,4);               
plot(NoiseSignal2);
title('白噪声混合信号1');
subplot(3,2,6);  
plot(Signal_Filter2);
title('均值滤波后白噪声混合信号1');

 视图效果:竖直方向三幅图进行对比

 2)方波混合噪声信号均值滤波

 代码

N = 2000; %采样点数
Fs = 2000; %采样频率
t = 0:1 / Fs:1 - 1 / Fs; %时间序列
NoiseGauss= [randn(1,2000)]; %高斯分部白噪声
NoiseWhite= [rand(1,2000)]; %后100点均匀分布白噪声
Signal2=[2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),];
NSignal1= Signal2+NoiseGauss; %设计混合信号1
NSignal2= Signal2+NoiseWhite; %设计混合信号2
b=[1 1 1 1 1 1]/6;
Signal_Filter3 = filter(b,1,NSignal1);
Signal_Filter4 = filter(b,1,NSignal2);
figure(2);
subplot(3,2,1);               
plot(Signal2);
title('原始信号2');
subplot(3,2,3);               
plot(NSignal1);
title('高斯混合信号2');
subplot(3,2,5);  
plot(Signal_Filter3);
title('均值滤波后高斯混合信号2');
subplot(3,2,2);               
plot(Signal2);
title('原始信号2');
subplot(3,2,4);               
plot(NSignal2);
title('白噪声混合信号2');
subplot(3,2,6);  
plot(Signal_Filter4);
title('均值滤波后白噪声混合信号2');

视图效果:

 3、中值滤波:medfilt1()函数

语法:medfilt1(x,n)对x应用一个n阶一维中值滤波器


1)正余弦混合噪声信号中值滤波

代码

N = 2000; %采样点数
Fs = 2000; %采样频率
t = 0:1 / Fs:1 - 1 / Fs; %时间序列
Signal1= sin(2*pi*20* t) + sin(2*pi*40* t) + sin(2*pi*60* t);
NoiseGauss= [randn(1,2000)]; %高斯分部白噪声
NoiseWhite= [rand(1,2000)]; %后100点均匀分布白噪声
NoiseSignal1= Signal1+NoiseGauss; %设计混合信号1
NoiseSignal2= Signal1+NoiseWhite; %设计混合信号2
Signal_Filter1=medfilt1(NoiseSignal1,11);
Signal_Filter2=medfilt1(NoiseSignal2,11);
figure(1);
subplot(3,2,1);               
plot(Signal1);
title('原始信号1');
subplot(3,2,3);               
plot(NoiseSignal1);
title('高斯混合信号1');
subplot(3,2,5);  
plot(Signal_Filter1);
title('中值滤波后高斯混合信号1');
subplot(3,2,2);               
plot(Signal1);
title('原始信号1');
subplot(3,2,4);               
plot(NoiseSignal2);
title('白噪声混合信号1');
subplot(3,2,6);  
plot(Signal_Filter2);
title('中值滤波后白噪声混合信号1');

视图效果

2)方波混合噪声信号中值滤波 

代码

N = 2000; %采样点数
Fs = 2000; %采样频率
t = 0:1 / Fs:1 - 1 / Fs; %时间序列
NoiseGauss= [randn(1,2000)]; %高斯分部白噪声
NoiseWhite= [rand(1,2000)]; %后100点均匀分布白噪声
Signal2=[2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),];
NSignal1= Signal2+NoiseGauss; %设计混合信号1
NSignal2= Signal2+NoiseWhite; %设计混合信号2
Signal_Filter3=medfilt1(NSignal1,11);
Signal_Filter4=medfilt1(NSignal2,11);
figure(2);
subplot(3,2,1);               
plot(Signal2);
title('原始信号2');
subplot(3,2,3);               
plot(NSignal1);
title('高斯混合信号2');
subplot(3,2,5);  
plot(Signal_Filter3);
title('中值滤波后高斯混合信号2');
subplot(3,2,2);               
plot(Signal2);
title('原始信号2');
subplot(3,2,4);               
plot(NSignal2);
title('白噪声混合信号2');
subplot(3,2,6);  
plot(Signal_Filter4);
title('中值滤波后白噪声混合信号2');

视图效果

4、 Butterworth低通滤波:巴特沃斯滤波butter()函数

语法:[b,a] = butter(n,Wn) 返回归一化截止频率为 Wn 的 n 阶低通数字巴特沃斯滤波器的传递函数系数。

1)正余弦混合噪声信号Butterworth低通滤波
代码

N = 2000; %采样点数
Fs = 2000; %采样频率
t = 0:1 / Fs:1 - 1 / Fs; %时间序列
Signal1= sin(2*pi*20* t) + sin(2*pi*40* t) + sin(2*pi*60* t);
NoiseGauss= [randn(1,2000)]; %高斯分部白噪声
NoiseWhite= [rand(1,2000)]; %后100点均匀分布白噪声
NoiseSignal1= Signal1+NoiseGauss; %设计混合信号1
NoiseSignal2= Signal1+NoiseWhite; %设计混合信号2
Wc=2*250/Fs;%截止频率 50Hz
[b,a]=butter(4,Wc);%Butterworth滤波
Signal_Filter1=filter(b,a,NoiseSignal1);
Signal_Filter2=filter(b,a,NoiseSignal2);
figure(1);
subplot(3,2,1);               
plot(Signal1);
title('原始信号1');
subplot(3,2,3);               
plot(NoiseSignal1);
title('高斯混合信号1');
subplot(3,2,5);  
plot(Signal_Filter1);
title('巴特沃斯低通滤波后高斯混合信号1');
subplot(3,2,2);               
plot(Signal1);
title('原始信号1');
subplot(3,2,4);               
plot(NoiseSignal2);
title('白噪声混合信号1');
subplot(3,2,6);  
plot(Signal_Filter2);
title('巴特沃斯低通滤波后白噪声混合信号1');

视图效果

 2)方波混合噪声信号Butterworth低通滤波

代码

N = 2000; %采样点数
Fs = 2000; %采样频率
t = 0:1 / Fs:1 - 1 / Fs; %时间序列
NoiseGauss= [randn(1,2000)]; %高斯分部白噪声
NoiseWhite= [rand(1,2000)]; %后100点均匀分布白噪声
Signal2=[2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),];
NSignal1= Signal2+NoiseGauss; %设计混合信号1
NSignal2= Signal2+NoiseWhite; %设计混合信号2
Wc=2*250/Fs;%截止频率 50Hz
[b,a]=butter(4,Wc);%Butterworth滤波
Signal_Filter3=filter(b,a,NSignal1);
Signal_Filter4=filter(b,a,NSignal2);
figure(2);
subplot(3,2,1);               
plot(Signal2);
title('原始信号2');
subplot(3,2,3);               
plot(NSignal1);
title('高斯混合信号2');
subplot(3,2,5);  
plot(Signal_Filter3);
title('巴特沃斯低通滤波后高斯混合信号2');
subplot(3,2,2);               
plot(Signal2);
title('原始信号2');
subplot(3,2,4);               
plot(NSignal2);
title('白噪声混合信号2');
subplot(3,2,6);  
plot(Signal_Filter4);
title('巴特沃斯低通滤波后白噪声混合信号2');

视图效果

4、线性相位FIR滤波:firls()函数

语法:firls(n,f,a):返回包含n阶FIR滤波器的n+1个系数的行向量b。所得滤波器的频率和幅度特性与向量f和a给出的特性相匹配。

 1)正余弦混合噪声信号线性相位FIR滤波

代码

N = 2000; %采样点数
Fs = 2000; %采样频率
t = 0:1 / Fs:1 - 1 / Fs; %时间序列
Signal1= sin(2*pi*20* t) + sin(2*pi*40* t) + sin(2*pi*60* t);
NoiseGauss= [randn(1,2000)]; %高斯分部白噪声
NoiseWhite= [rand(1,2000)]; %后100点均匀分布白噪声
NoiseSignal1= Signal1+NoiseGauss; %设计混合信号1
NoiseSignal2= Signal1+NoiseWhite; %设计混合信号2
F  =  0:0.05:0.95;%频率点对的向量
A  =  [1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];%与F的参数对应
b  =  firls(2,F,A);%20为阶次
Signal_Filter1 = filter(b,1,NoiseSignal1);
Signal_Filter2 = filter(b,1,NoiseSignal2);
figure(1);
subplot(3,2,1);               
plot(Signal1);
title('原始信号1');
subplot(3,2,3);               
plot(NoiseSignal1);
title('高斯混合信号1');
subplot(3,2,5);  
plot(Signal_Filter1);
title('FIR滤波后高斯混合信号1');
subplot(3,2,2);               
plot(Signal1);
title('原始信号1');
subplot(3,2,4);               
plot(NoiseSignal2);
title('白噪声混合信号1');
subplot(3,2,6);  
plot(Signal_Filter2);
title('FIR滤波后白噪声混合信号1');

视图效果 

 2)方波混合噪声信号线性相位FIR滤波

代码

N = 2000; %采样点数
Fs = 2000; %采样频率
t = 0:1 / Fs:1 - 1 / Fs; %时间序列
NoiseGauss= [randn(1,2000)]; %高斯分部白噪声
NoiseWhite= [rand(1,2000)]; %后100点均匀分布白噪声
Signal2=[2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),];
NSignal1= Signal2+NoiseGauss; %设计混合信号1
NSignal2= Signal2+NoiseWhite; %设计混合信号2
F  =  0:0.05:0.95;%频率点对的向量
A  =  [1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];%与F的参数对应
b  =  firls(2,F,A);%20为阶次
Signal_Filter3 = filter(b,1,NSignal1);
Signal_Filter4 = filter(b,1,NSignal2);
figure(2);
subplot(3,2,1);               
plot(Signal2);
title('原始信号2');
subplot(3,2,3);               
plot(NSignal1);
title('高斯混合信号2');
subplot(3,2,5);  
plot(Signal_Filter3);
title('FIR滤波后高斯混合信号2');
subplot(3,2,2);               
plot(Signal2);
title('原始信号2');
subplot(3,2,4);               
plot(NSignal2);
title('白噪声混合信号2');
subplot(3,2,6);  
plot(Signal_Filter4);
title('FIR滤波后白噪声混合信号2');

视图效果

相关文章:

17、matlab实现均值滤波、中值滤波、Butterworth滤波和线性相位FIR滤波

1、创建信号 1)创建正余弦信号、噪声信号和混合信号 原始正余弦信号公式:Signal1 sin(2*pi*20* t) sin(2*pi*40* t) sin(2*pi*60* t) 高斯分布的白噪声:NoiseGauss [randn(1,2000)] 均匀分布的白噪声:[rand(1,2000)] 正余弦…...

【Autopilot】没有自动添加本地管理员的问题处理

【问题】某公司选用了D记的笔记本电脑,约定出厂就预配置好Autopilot,当时向D记提供了三个信息: 1. M365的租户ID 2. 公司域名信息 3. Group Tag (某公司为跨国公司,通过Group Tag来区分国家,比如CHN-中国,L…...

【C#学习笔记】属性和字段

文章目录 前言属性和字段的区别字段访问修饰符和关键字定义变量类型的定义变量命名变量的赋值 属性 不同的使用情况 前言 最近在工作的过程中常常会觉得自己在程序设计方面的能力还是有欠缺。例如一直对于变量的声明感到不足,在工作中为了图方便总是直接public定义…...

最佳实践的实践 - API 不应将 HTTP 重定向到 HTTPS

原文:jviide - 2024.05.23 TL;DR: 与其将 API 调用从 HTTP 重定向到 HTTPS,不如让失败显而易见。要么完全禁用 HTTP 接口,要么返回明确的 HTTP 错误响应,并撤销通过未加密连接发送的 API 密钥。遗憾的是,许多知名的 A…...

四种跨域解决方案

文章目录 1.引出跨域1.基本介绍2.具体演示1.启动之前学习过的springboot-furn项目2.浏览器直接访问 [localhost:8081/furns](http://localhost:8081/furns) 可以显示信息3.启动前端项目,取消请求拦截器,这样设置,就会出现跨域4.跨域原因 2.跨…...

移动端投屏到大屏幕的操作详解

如果你懒得折腾电脑、电视或其他大屏设备上的影视软件安装及配置,可以选择直接在手机端上将影片投屏到电脑、电视或其他大屏设备上,这里给大家分享三种手机投屏的方法。 系统自带的投屏功能 不管是安卓、鸿蒙还是苹果操作系统,都自带了无线…...

【环境搭建】3.阿里云ECS服务器 安装Redis

在阿里云的 Alibaba Cloud Linux 3.2104 LTS 64位系统上安装 Redis 可以通过以下步骤完成: 1.更新系统软件包: 首先,更新系统软件包以确保所有软件包都是最新的: sudo yum update -y2.安装编译工具和依赖项: Redis…...

动态语言的开源编译器汇总

对于动态语言而言,我们通常不会使用传统意义上的“编译器”,因为动态语言往往是在运行时解释执行的,或者被转换为中间形式(如字节码),再由虚拟机执行。不过,为了性能考虑,现代动态语…...

Linux防火墙配置001

Linux防火墙主要用于控制网络流量,保护系统安全。在Linux中,有几种不同的防火墙管理工具,其中最常见的是iptables和firewalld。本章主要讲述如何关闭防火墙。 操作系统: CentOS Stream 9 操作步骤: 关闭防火墙&…...

Tomcat概述及部署

目录 一.Tomcat概述 1.介绍 2.使用场景 3.组件构成 4.组件结构 5.请求过程 二.Tomcat部署 1.关闭防火墙 2.下载安装JDK 3.安装启动tomcat 4.部署虚拟主机 4.1.创建 xy101 和 xy102 项目目录和文件 4.2.修改 Tomcat 主配置文件 server.xml 一.Tomcat概述 1.介绍 …...

[Vue3:Vite构建项目]:安装router实现登录页面路由跳转

文章目录 一:前置依赖查看依赖安装vite npm create vitelatest sys-instruction-0607 --template vue-ts安装路由:npm install vue-router4安装elementUI:npm install element-plus --save 二:配置文件:views&#xff…...

概率论与数理统计,重要知识点——全部公式总结

二、一维随机变量及其分布 五个分布参考另外一篇文章 四、随机变量的数字特征 大数定理以及中心极限定理 六、数理统计...

Spring系列-SpringMvc父子容器启动原理解析

1、Spring整合SpringMVC 特性: 说到Spring整合SpringMVC唯一的体现就是父子容器: 通常我们会设置父容器(Spring)管理Service、Dao层的Bean, 子容器(SpringMVC)管理Controller的Bean .子容器可以访问父容器的Bean, 父容器无法访…...

[ssi-uploader插件]解决如何接收服务器返回数据+修改参数名称

前言 ssi-uploader是一款非常好用的多文件上传插件,源码是开源的,在github上面即可下载: https://github.com/ssbeefeater/ssi-uploader 但是源码有些微小的不足,今天我们解决两点问题: 上传文件完成后&#xff0c…...

InfiniGate自研网关实现思路七

25.网关Nginx负载模型配置 通过模拟多个HTTP服务配置到 Nginx 做负载均衡,以学习API网关负载的配置和使用 API 网关是用于支撑分布式 RPC 接口协议转换提供 HTTP 调用的一套服务,那么 API 网关系统就需要可横向扩展来满足系统的吞吐量诉求。所以这里需…...

277 基于MATLAB GUI火灾检测系统

基于MATLAB GUI火灾检测系统,可以实现图片和视频的火苗检测。火焰识别的三个特征:1个颜色特征,2个几何特征颜色特征:HSV颜色空间下,对三个通道值进行阈值滤波,几何特征1:长宽比,几何…...

【西瓜书】4.决策树

1 递归返回情况 (1)结点包含样本全为同一类别 (2)属性集为空,没有属性可供划分了 或 有属性,但是在属性上划分的结果都一样 (3)结点为空结点 **结束时判定该结点的类别遵循如下规则&…...

区块链--Ubuntu上搭建以太坊私有链

1、搭建私链所需环境 操作系统:ubuntu16.04,开虚拟机的话要至少4G,否则会影响测试挖矿时的速度 软件: geth客户端 Mist和Ethereum Wallet:Releases ethereum/mist GitHub 2、安装geth客户端 sudo apt-get update …...

菜品信息分页查询——后端SpringBoot

1.分页查询的逻辑: 页面发送ajax请求,将分页查询参数(page,pageSize, name)提交到服务端,获取分页数据; 页面发送请求,请求服务端进行图片下载,用于页面图片展示。 开发菜品信息分页查询功能&a…...

利用GPT和PlantUML快速生成UML图用于设计

在软件开发中,设计阶段可是关键的一步。UML(统一建模语言)图能帮我们更清晰地理解和规划系统结构,但手动画UML图有时会很费时费力。好消息是,通过结合使用ChatGPT和PlantUML,我们可以高效地生成UML图&#…...

PHP和Node.js哪个更爽?

先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...