信号处理——基础知识及常用算法-程序员宅基地

技术标签: 算法  信号处理  


一、FFT与IFFT

1. FFT

定义:
傅里叶变换是一种线性积分变换,用于信号在时域和频域之间的变换。而为什么要把信号从时域转换到频域?因为很多信号在时域中的组成及操作是十分复杂的,但是转换到频域之后就会变得十分简单,如:时域相乘就是频域上的相加。

公式:
在这里插入图片描述

个人理解:
傅里叶变化主要利用了标准正交基的概念,将时域信号与一个频域分量进行内积(也就是积分),这样可以将时域信号中带有ω的分量提取出来,不带有ω的分量就会被过滤。经过这一操作以后就能将频域上的信息保留下来。

2. IFFT

定义:
傅里叶变换是可逆的,傅里叶逆变换就是将信号从频域转换到时域上的操作。因为在现实生活中主要接触到的信号都是时域信号,因此需要在频域上对信号进行处理之后要转换成时域信号进行输出。

公式:
在这里插入图片描述


二、最小二乘法

定义:
最小二乘法通过最小化误差的平方和寻找数据的最佳函数,利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。

公式:
在这里插入图片描述

个人理解:
最小二乘法是利用已知参数去拟合出一个最优的线性函数,再利用这个函数方程去预测一个未知的目标值。而这个最优就体现在实际值与预测值的最小误差平方上

为什么是最小误差的平方而不是最小误差呢?

  1. 最小误差的平方是随时可导的,而最小误差不是,这在深度学习神经网络领域中有重大意义;
  2. 在矢量中,平方表示值的大小,取消了方向的定义,在最小二乘法中,方向没有什么作用;
  3. 平方可放大两两之间的误差,对于择优问题有提升精度的作用。

三、卷积

定义:
卷积就是矩阵上对应元素相乘,然后再把乘积加起来。

意义:
卷积是特征提取的一个过程。卷积核反映了特征规律,利用具有该特征规律的卷积核对目标矩阵进行卷积,就会放大目标矩阵中的这个特征,减小其他特征。

公式:
在这里插入图片描述

应用:
比较经典的卷积实用例子就是图像处理中的边缘检测和滤波。

  1. sobel边检算子就是利用了水平方向的卷积核与垂直方向的卷积核来保存图像中的垂直分量和水平分量,达到一个保存边缘信息的目的。
  2. 平滑滤波则是利用卷积核将原矩阵中的不同值尽量拉到同一值,高的值变低,低的值变高。使得原矩阵呈现出平滑的效果。

四、Z变换

定义:
Z变换(Z-transformation)是对离散序列进行的一种数学变换,常用于求线性时不变差分方程的解。它在离散系统中的地位如同拉普拉斯变换在连续系统中的地位。

公式:
在这里插入图片描述
Z变换收敛的充要条件是它满足绝对可和条件。

主要性质:

  1. Z变换X(z)的收敛域是z平面上以原点为中心的同心圆环;
  2. Z变换X(z)的收敛域内不能包含任何极点。

五、拉普拉斯变换

定义:
拉普拉斯变换是对连续时域序列转换到复频域上的一种数学变换。

公式:
在这里插入图片描述
意义:
为简化计算而建立在实变量函数和复变量函数间的一种函数变换。对一个实变量函数作拉普拉斯变换,并在复数域中作各种运算,再将运算结果作拉普拉斯反变换来求得实数域中的相应结果,往往比直接在实数域中求出同样的结果在计算上容易得多。


六、常用滤波算法

1. 中值滤波

定义:
中值滤波是一种非线性滤波方式,主要目的就是去除图像上的尖锐噪声,平滑图像。

原理:
以目标像素周围3 × 3的邻域为例,就是将3 × 3邻域中九个像素灰度值进行排序,将中间灰度值作为目标像素的灰度值。椒盐噪声影响的像素灰度值通常都非常大或者非常小,因此通过排序会被消除掉。

2. 均值滤波

定义:
均值滤波是一种线性滤波方式,用当前像素点周围 n × n 个像素值的均值来代替当前像素值。使用该方法遍历处理图像内的每一个像素点,可完成整幅图像的均值滤波。

原理:
同样以目标像素周围 3 × 3 的邻域为例,就是将 3 × 3 邻域中九个像素灰度值的平均值作为目标像素的灰度值。

3. 高斯滤波

定义:
高斯滤波就是将均值滤波中的平局值改为高斯加权平均值,邻域中年距离目标像素越远的像素灰度值权重越小,通常通过生成一个高斯模板实现,适用于消除高斯噪声。

特性:

  • 核大小固定,sigma值越大,权值分布越平缓。因此邻域各点值对输出值的影响越大,最终结果造成图像越模糊;
  • 核大小固定,sigma值越小,权值分布越突起。因此邻域各点值对输出值的影响越小,图像变化越小。假如中心点权值为1,其他点权值为0,最终结果是图像没有任何变化;
  • sigma固定时,核越大图像越模糊;
  • sigma固定时,核越小图像变化越小。

4. 卡尔曼滤波

定义:
严格来说,卡尔曼滤波不是一种滤除噪声的滤波算法,而是一种结合先验经验、测量更新的状态估计的算法,相当于一个状态估计算子。其基本思想是综合利用上一次的状态和测量值来对物理量的状态进行预测估计。

算法流程:

  1. 预测过程:
    时间更新方程(即预测阶段)根据前一时刻的状态估计值推算当前时刻的状态变量先验估计值和误差协方差先验估计值。
    在这里插入图片描述

  2. 更新过程:
    测量更新方程(即更新阶段)负责将先验估计和新的测量变量结合起来构造改进的后验估计。
    在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Fredzj/article/details/127565089

智能推荐

30道python自动化测试面试题-程序员宅基地

文章浏览阅读1.4w次,点赞28次,收藏405次。30道python自动化测试面试题,让你的面试过程比德芙还丝滑~_python自动化测试面试题

vi光标移动_vi移动光标-程序员宅基地

文章浏览阅读3.4k次。hjkl,前后左右,加数字代表重复执行,如3j表示下移3行^:移动光标到行首;$:移动光标到行尾;ctrl-b: 上翻一页ctrl-f:下翻一页_vi移动光标

一文带你通俗理解23种软件设计模式(推荐收藏,适合小白学习,附带C++例程完整源码)-程序员宅基地

文章浏览阅读4.3w次,点赞33次,收藏236次。一文带你通俗理解23种软件设计模式(推荐收藏,适合小白学习,附带C++例程完整源码)_软件设计模式

关于F5负载均衡你认识多少?-程序员宅基地

文章浏览阅读8.3w次,点赞41次,收藏347次。负载均衡知多少网络负载均衡(load balance),就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,例如web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。实际上就是,负载均衡会对外部展现一个虚拟的服务器地址,当用户试图连接时,它会将连接通过双向网络地址转换(NAT)转到最适合的真实服务器上,以完成用户的请求。下面我们就了解一下F5负载均衡..._f5负载均衡

建信金科在中国建设银行物联网平台项目的实践-程序员宅基地

文章浏览阅读744次。前言物联网技术日趋成熟,正在金融行业发挥着愈发重要的作用。从传统银行网点升级至智慧银行,到线上金融服务 APP 的应用,金融服务企业也开始不断利用物联网技术开拓新的应用场景,探索其对于行业的更多价值。和其他众多行业一样,金融服务业所面对的客户需求也在走向个性化、多样化。随着线上银行、太空舱银行等新型业务方式涌现,万物互联正在逐渐走向万物智联。2019 年起,中国建设银行紧..._建信金科 边缘计算

Red Hat Linux7 安装Nginx教程(超详细加注解版)_红帽七安装nginx-程序员宅基地

文章浏览阅读4.3k次。1、Nginx说明:Nginx是一款高性能的HTTP服务器,以及反向代理服务器,其由俄罗斯Igor Sysoev创始,经过各种变迁得来。在2008年,Igor Sysoev所在的公司打算将其公司的wordpress博客平台搬到软件上去,当时使用的是Apache,但是当其公司工程师修改安装设置的时候,Apache竟然死机了,于是其发现此Apache在流量比较大的时候,根本不稳定,于是其公司撤除了Ap..._红帽七安装nginx

随便推点

如何在linux搭建airtest+chromeweb测试环境--(用命令行运行.air脚本)-程序员宅基地

文章浏览阅读806次。大前堤:如果你需要airtest提供的可视化测试报告,那你的操作系统,一定要有图形化界面.否则运行你的airtest脚本 会遇到这样的问题Xlib.error.DisplayNameError: Bad display name ""你可能百度之后 遇到了xhost +命令执行这个命令后,再运行测试脚本,又遇到这个问题然后再百度,原来.Xauthority X..._linux +airtest

ros介绍-程序员宅基地

文章浏览阅读1.5k次。ROS是什么?ROS 历史起源ROS 发展背景问题:机器人跨学科特点,系统庞大,工程应用涉及面广,硬件繁多,软件开发困难、低级重复基础:机器人研究相关领域发展迅速:计算机视觉,异构计算加速,室内移动机器人算法的成熟等等需求:机器人研究过程中需要统一开发/测试平台解决方法:机器人软件中间件ROS总体设计一个目标提高机器人开发中的代码复用率五个特点免费且开源BSD许..._ros

Faster R-CNN roi_pooling_layer 浅析_psroi_pooling_layer not implemented yet-程序员宅基地

文章浏览阅读3.3k次。阅读完 R-CNN一系列论文之后,开始看源代码。本文简要记录自己对roi_pooling_layer源码的理解。作者首先在caffe.proto中添加该层参数说明,主要是三个变量 optional ROIPoolingParameter roi_pooling_param = 43; message ROIPoolingParameter {// Pad, kernel size, and str_psroi_pooling_layer not implemented yet

刷题笔记7——输出斐波那契数列的第n项_输出斐波拉契数列第n项r语言-程序员宅基地

文章浏览阅读793次。题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=391、递归class Solution {public: int Fibonacci(int n) { int num[39]; num[0] = 0; num[1] = 1; int cnt..._输出斐波拉契数列第n项r语言

查看docker容器的日志_docker logs查询倒数200行日志-程序员宅基地

文章浏览阅读1.1w次。命令行docker logs -f -t --since="2018-03-31" --tail=100 elastic_raman–since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。 -f : 表示查看实时日志 -t : 查看日志产生的日期 -tail=200 : 查看最后的200条日志。 sleepy_snyder 容器的名称,并不是镜像的名字注..._docker logs查询倒数200行日志

SpringBoot整合RabbitMQ 实现五种消息模型 详细教程_rabbspringbootitmq五种消息模型-程序员宅基地

文章浏览阅读8.1k次,点赞17次,收藏38次。今天说下了消息队列中间件,各种队列性能对比,RabbitMQ队列,交换机(Exchange)以及消息中间件的应用场景,然后带着大家一起实现RabbitMQ的五种消息模型。消息队列中间件消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和终一致性[架构] 使用较多的消息队列有 ActiveMQ,RabbitMQ,ZeroMQ,K..._rabbspringbootitmq五种消息模型