自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 资源 (4)
  • 收藏
  • 关注

原创 对于傅里叶变换的小结

原本写在word中,含有一些公式不容易搬移,因此输出长图发布在博客中。

2020-09-28 11:45:10 422

原创 功率时延谱(PDP)与三种选择性衰落

衰落与弥散是无线信道的基本特性,电磁波经过无线信道传输后会使原本的信号在时域,频域,空域(角度)上产生弥散现象,导致波形在时间,频谱,空间上产生交叠,引起信号的失真。多径效应在时域上引起信号时延扩展,在频域上定义了相关带宽指标,当信号带宽大于相关带宽时会发生频率选择性衰落。多普勒效应会引起频谱扩展,在时域上定义了相关时间指标,当基带信号符号周期大于信道相关时间时可能会发生时间选择性衰落。散射效应会引起角度扩展,在空域定义了相关距离指标。空域上波束角度扩散会造成同一时间,不同地点信号的衰落起伏不一样,即

2020-07-13 16:52:09 18304 1

原创 两层全连接神经网络实现手写数字识别

一,思路:分为两步,第一步是训练模型然后把模型保存到磁盘,第二步是复现模型结构然后读取模型权重系数,输入手写数字图片验证模型识别能力。二,模型训练在这部分使用mnist数据集,该数据集含有七万张28*28的灰度化的手写数字图片,其中六万张用于训练,一万张用于训练阶段的测试。过程分为六步:(1.)import 相关模块 (2.)读入训练集与测试集 (3.)用Sequential模型(或者有的人叫它神经网络容器)搭建神经网络 (4.)定义神经网络训练时的优化器(或者叫参数更新的方法,例如随机梯度下降法

2020-07-01 18:07:27 4965

原创 Burg法参数化功率谱估计(Python实现版)

Burg法参数化功率谱估计是在Yule-Walker方程法和Levinson-Durbin快速递推法之上建立的,如果对于Yule-Walker方程法和Levinson-Durbin快速递推法不熟悉的话可以参考我的其他博客:Levinson-Durbin快速递推法功率谱估计(Python实现版)Yule-Walker方程法参数化谱估计(Python实现版)声明:博客原本在word写的,有大量公式和符号是用mathtype敲出来的(可惜CSDN不支持mathtype),格式转换后排版太乱,就直接输出

2020-06-29 10:22:17 3296

原创 Levinson-Durbin快速递推法功率谱估计(Python实现版)

Levinson-Durbin快速递推法功率谱估计是在Yule-Walker方程法之上建立的,如果对于Yule-Walker方程法不熟悉的话可以参考我的一篇博客:Yule-Walker方程法参数化谱估计(Python实现版)声明:博客原本在word中写的,有大量公式和符号是用mathtype敲出来的(可惜CSDN不支持mathtype),格式转换后排版太乱,就直接输出长图放入博客了。(按住CTRL键滑动鼠标滑轮可以缩放)...

2020-06-29 09:57:47 2173

原创 Yule-Walker方程法参数化谱估计(Python实现版)

声明:博客原本在word写的,有大量公式和符号是用mathtype敲出来的(可惜CSDN不支持mathtype),格式转换后排版太乱,就直接输出长图放入博客了。(按住CTRL键滑动鼠标滑轮可以缩放)

2020-06-29 09:14:18 2990 2

原创 利用Python实现图像高斯滤波(模糊)

声明:原本是在word中写的本篇博客,里面有mathtype敲出来的公式(CSDN不支持mathtype),转换为LaTex公式后放到博客里排版太乱了,所以就导出了PDF,分页输出图片,把图片放到博客里,这样排版效果更好一些。如果觉得大小不太合适可以按住CTRL键滑动鼠标滑轮缩放。本博客所用代码附在最后import cv2 as cvimport numpy as np#传入灰度图像#sigma是高斯分布的标准差,avr是均值def makeNoise(img,sigma,avr

2020-06-28 20:49:24 5432

原创 随机信号的功率谱及参数估计与python仿真

1.概要:本文以 x(n)=sin(2*π*f1*n+π/3)+10*\sin(6*π*f2*n+π/4)+wgn(0,sigma)为例进行其功率谱的估计及观察sigma参数对f1,f2估计的影响,影响情况以MSE为衡量标准(注:f1规定为0.1,f2规定为0.3。n的取值为[1,256],wgn(0,sigma)是0均值,标准差为sigma的高斯分布的随机数)2.随机信号功率谱的估计方法:...

2020-06-28 16:07:16 3066 3

原创 最简单的单层神经网络实现鸢尾花分类

一,知识背景鸢尾花的分类由四个数据定义,分别是花萼长、花萼宽、花瓣长、花瓣宽。我们把这样的一组数据称为是一组特征,根据特征可以分为三类鸢尾花。二,神经元模型神经元采用最简单的简化MP(麦卡洛克-皮茨)模型,模型表示如下:在鸢尾花分类的例子里,输入为x0,x1,x2,x3以及偏置项b。我们可以定义鸢尾花特征有四个维度,每个维度分别对应一个输入x。简化模型可以表示为y=x0* w0+x1* w1+x2* w2+x3* w3+b。该形式是很经典的加权求和式,即每个特征维度都对输出结果起到一定的贡献,

2020-06-19 11:08:46 4723 1

原创 numpy.mgrid函数的使用

先来尝试使用,然后再总结规律x, y= np.mgrid[1:4:0.5, 2:4:0.5]print(x)print(y)输出为:这里,x,y都是二维数组,行数由第一个参数1:4:0.5决定,为6行,列数由第二个参数2:4:0.5决定,为4列。排布规律为:x跨行方向即列方向与第一个参数一致,y为跨列方向即行方向与第二个参数一致。x, y, z= np.mgrid[1:2:0.5, 2:4:0.5, 3:6:1]print(x)print(y)print(z)有三个参数时,x,y

2020-06-18 10:18:33 6366 4

原创 anaconda3+tensorflow(配置GPU加速)2.1+oencv环境搭建

安装过程中遇到了不少坑比如更换源与不更换源,conda install与pip install的区别,如何下载更快,如何配置GPU加速等,在下面的文章中我会指明。一 :anaconda以及各种库的安装anaconda是一个安装包管理器,但是它还具有环境隔离的作用,就比如我安装了python3.5以及配套的各种库,过了一段时间我想要更换python3.7和对应版本的库但是又不想卸载原有的库,此时anaconda的环境隔离就很有用了,因为在anaconda的各个环境内可以任意安装各种库,并且环境之间互相不影

2020-06-13 19:26:10 1207

原创 树莓派4b串口通信配置

树莓派4b本身是两个串口,运行ls /dev -al如下:请注意:在默认状态下,serial0(就是GPIO14,15)是映射到ttyS0的(就是MINI串口:/dev/ttyS0),ttyS0的特点是其工作时钟来自于CPU,CPU的时钟呢又是从600MHZ到1.5Ghz动态变化的,所以这个串口经常会因为时钟频率发生变化而发生错误,因此我们不用这个串口。默认状态下,serial1(跟板载蓝牙...

2020-04-03 21:10:24 17428 16

原创 如何在树莓派4b上安装opencv环境

准备工作:给树莓派4b烧录进去操作系统,我使用的是2019-7-10代号buster的版本,该版本已经自带了python2.7和python3.7,首先要把2.7的去掉,把3.7的设置为默认版本,这点请百度如何切换树莓派自带的python版本!!!要求在命令行输入python就能输出3.7的版本信息。下面我们来进行环境安装,网上这方面信息很多,好使的根本就不多,这些坑我会指出方法1:使用pi...

2020-03-31 21:09:42 5702 2

原创 什么是图像卷积

本文章内容1 连续时间信号的卷积2 离散时间信号的卷积3 图像卷积是什么4 图像卷积的一些应用文章由我们熟悉的一维连续时间信号的卷积逐渐过渡到图像卷积。文章是循序渐进的,希望想要了解的朋友们可以耐心读一读。本人理解有限,如有错误还请指出(1)先看连续时间信号的卷积:可以看到对与连续时间信号而言,卷积是一种特殊的积分运算,它的过程就是一个函数固定不动,另一个函数先以y轴为对称轴反...

2020-03-08 12:26:44 25319 6

原创 sobel算子,scharr算子,Laplacian算子

1.sobel算子:sobel算子可以计算图像梯度,计算图像梯度的作用是提取边界,一般我们用一个3x3的卷积核去指示sobel算子是如何运算的:图中左边就是计算水平梯度时的卷积核,简单来说就是右边减左边,权重由卷积核规定。这里我们可以联想一下高中生物,那时候我们常考的一种题目就是细胞膜两边的浓度梯度差的问题。细胞膜就是边界,它两边浓度不一样形成了梯度差,同样在图像里面我们也借用了这样一个形象...

2020-03-07 11:22:34 9278

原创 用相关性的角度看待傅里叶变换

傅里叶变换的公式:互相关的公式:我们知道,对于一个正弦函数来说,其傅里叶变换的频谱出现一个峰,出现这个峰的原因是什么?下面用一个例子来说明请注意,我在X(k),R(m)上面加了一条横线表示这并不是原公式,而是一种近似估计。从图中可以看出,傅里叶变换与相关运算很像。我们把傅里叶变换里的旋转因子项称为一系列的复正弦基函数,那么此时傅里叶变换就是在拿原序列和这一系列的基做类似于相关的运算。打...

2020-03-06 17:21:09 1659

原创 opencv阈值分割

基本的阈值分割有下面这几种:按图中由上到下的顺序是:1.二进制阈值化(准确说是二值阈值化,因为这种情况下像素灰度取值只有两种,但并不是只能为0和1,实际上最大值是调用函数时自行规定的)。这种情况下如果两个取值是0和255那么就是当像素灰度大于阈值时变为255(白色),小于等于阈值都会变成0(黑色),对应的正是二值图像。2.反二进制阈值化(是上面那种情况的反例)3.截断阈值化当大于阈值...

2020-03-01 15:01:59 1726

原创 Python opencv环境搭建

第一步:下载文件https://pypi.org/project/opencv-python/#fileshttps://pypi.org/project/opencv-contrib-python/#files安装跟你电脑上python版本对应的文件放到Scripts文件夹下。比如我电脑上安装了3.7版本32位的python,那么我下载的文件对应的版本号就是cp37并且是32位的。第二步...

2020-02-28 20:52:09 776

原创 用Python实现DFT并绘制功率谱

用Python实现DFT算法并绘制其幅度谱与功率谱

2020-02-28 09:41:15 5523

原创 Python3安装Numpy和matplotlib模块

python3安装Numpy模块与matplotlib模块

2020-02-28 08:32:37 3937

原创 当外设连接在下载复位引脚时的处理方法

本文介绍一种当外设连接在下载复位引脚时在不影响下载功能的前提下正常使用外设的一种方法。在使用STM32的时候可能会遇到这样一种情况:比如你是用的是STM32RBT6这款芯片,你想使用板载的某个外设,当你查看电原理图后发现这个外设连接在PB4,然后你又去查看芯片数据手册发现:PB4在上电后默认是JNTRST,这是啥意思呢?意思就是PB4上电后并不是普通IO,而是下载复位引脚,PB4的分时复用功...

2020-02-25 10:50:21 1970

原创 STM32 ADC

1.什么是ADCADC指模数转换,模拟信号是指时间幅值均连续的信号,对其采样后得到的信号称之为离散时间信号,若再对其进行量化处理则得到数字信号。请注意对模拟信号采样得到的信号不是数字信号,仅仅是离散时间信号。(详情请见数字电子电路,信号与系统,数字信号处理等教材)2.分辨率当前的STM32的ADC芯片是12位的,如果参考电压是3.3v那就是说最小量化间隔就是3.3的4096分之一,如果变化量...

2020-02-11 15:18:52 4171

原创 自建基于STM32与ESP8266的物联网服务器

stm32通过ESP8266连接到云服务器进行TCP通信,在这篇文章中我将从头教大家如何自己做一个物联网的demo出来,通过使用TCP协议自己搭建一个基于STM32与ESP8266的物联网服务器

2020-02-10 10:29:33 10594 3

原创 STM32通过ESP8266与云服务器的通信

stm32通过ESP8266连接到云服务器进行TCP通信

2020-02-07 17:03:35 18349 20

原创 阿里云服务器与个人电脑TCP通信的调试

最近做大创项目需要硬件端入网与云服务器上运行的后台程序以及数据库对接,在初期尝试过程中由于对计算机网络理解甚少搞得我天天卡壳。这里我将介绍如何通过网络调试助手和SocketTool这两个小工具实现个人电脑联网与阿里云服务器的TCP通信调试1.使用网络调试助手准备工作:去阿里云官网租用一台轻量应用服务器(学生价9.5元每月),我选用的配置是Windows server2012R2镜像。然后进入轻...

2020-02-07 14:49:00 10739 1

原创 STM32的RTC时钟及其相关寄存器

1.什么是RTC时钟:RTC时钟本质上上一个定时器系统,但是其定时器的计数值最终是以2020-1-30 16-27 类似这样的形式呈现的,说白了就是它就是实时时钟。并且这个时钟不怕断电,断电后它在后备区继续计时,而后备区是有电池供电的。2.RTC(Real Time Clock)的框图:个人见解描述:从最左面开始是RTCCLK,这货可以选择时钟源配置,在STM32的时钟系统里有这一部分:...

2020-01-31 10:50:14 3429 2

原创 使用STM32测量脉宽可变的PWM波的脉冲宽度

通过STM32的定时器产生一个PWM波,并且该PWM波的占空比可以通过串口收到的数据调节。该PWM波输入定时器的输入捕获通道进而实现脉冲宽度测定,单位为微秒

2020-01-30 09:31:45 7890 4

原创 stm32外部中断

外部中断与内部中断(例如定时器产生中断,串口接收中断等)不同的是:外部中断由外部条件触发,比如按键触发。STM32的每个IO都可以作为外部中断输入。STM32的中断控制器支持19个外部中断/事件请求:线0~15:对应外部IO口的输入中断。线16:连接到PVD输出。线17:连接到RTC闹钟事件。线18:连接到USB唤醒事件。每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿...

2019-08-26 17:12:15 5364 3

原创 stm32串口通信

1.基础知识并行通信可以比作多车道,串行通信可以理解为单通道。2.应用举例++(1.)常用寄存器USART_SR状态寄存器USART_DR数据寄存器USART_BRR波特率寄存器 ++(2.)串口相关库函数void USART_Init(); //串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能void USART_Cmd();//使能串口voi...

2019-08-13 20:50:16 390

原创 stm32 NVIC中断优先级管理

对于中断这个概念,我喜欢用经常发生在CPU中的多线程抢占执行现象来类比,每个中断(或者说中断服务)就像是一个线程,它们根据事先定义好的运行规则运作着,所以这就引出了如何管理中断,我们应如何确定哪个中断先执行,哪个后执行。1.NVIC中断优先级分CM3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。STM32并没有使用CM3内核的全部东西,...

2019-08-11 16:08:56 1059

原创 ssm框架dao层接口无法自动注入问题

这个问题实在奇葩,我也没看过框架源码,估计就算看了也看不懂,目前发现在dao层接口上不能使用@Component注解,但是可以使用@Repository,也可以啥注解都不加。根据目前的情况观察只要加上了@Component注解在容器里就无法自动创建动态代理对象。...

2019-08-01 11:02:53 2988 2

原创 stm32 端口复用与重映射的基本知识

1.什么是端口复用复用就是多用,也就是除了能用作普通的IO功能外还可以驱动其他外设。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。例如串口1 的发送接收引脚是PA9,PA10,当我们把PA9,PA10不用作GPIO,而用做复用功能串口1的发送接收引脚的时候,叫端口复用。2.端口复用配置过程-以PA9,PA10配置为串口1为例...

2019-07-30 16:14:30 1877

原创 stm32 Systick定时器

Systick定时器属于是简单定时器,是为了节省定时器资源而存在的一个一般用于延时和用作实时系统的心跳时钟的一个定时器。Systick定时器就是系统滴答定时器,一个24 位的倒计数定时器,计到0 时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息,即使在睡眠模式下也能工作。并且SysTick定时器被捆绑在NVIC中,用于产生...

2019-07-30 11:03:51 2680

原创 stm32 SystemInit函数详解

官方固件库中的对应函数为:void SystemInit (void){ /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ /* Set HSION bit */ RCC->CR |= (uint32_t)0x00000001; /* Reset S...

2019-07-29 17:24:19 10110 1

原创 stm32 时钟系统

1.时钟系统框图(1.)以SYSCLK系统时钟为分界线,左端是内部系统时钟的产生与选择,右边是外设时钟的产生。首先我们先看SYSCLK系统时钟,这是系统的工作根本,它左端连有三输入选择器,故其直接来源有三个(间接的来源就比较多了):一是HSI RC(高速内部RC振荡器,大约8MHZ)而是PLL锁相环的输出,三是HSE OSC(高速外部晶振)。(2.)PLL(可以认为是倍频器件,跟分频相对)锁...

2019-07-29 15:33:57 543

原创 stm32 GPIO输入检测

以检测按键输入为例:如图一共有三个按键,WK-UP按键被按下会被拉到高电平,其它两个被按下会被拉到低电平。下面例子中如果key0被按下那就让led0状态反转,如果是key1被按下那就让led1状态反转,如果是wk-up被按下那就让蜂鸣器状态反转。首先要说明的是按键有两种模式,一种就像是快进键,持续被按下就持续快进,就像是可重复触发的单稳态触发器,另外一种就是像关机一样的键,就算被持续按下也只...

2019-07-27 17:23:53 6805 1

原创 stm32 IO输出举例

以控制有源蜂鸣器为例(有源蜂鸣器是自带震动源的器件,无源蜂鸣器则需要方波来模拟震动源)1.硬件连接我们可以看到蜂鸣器接在PB8,而且不是直接使用IO驱动蜂鸣器,蜂鸣器功率比较大,一般都会使用三极管作为输出控制。我们可以看到黄色部分说明了PB8跟三极管基极连接在一起,三极管使用共射极配置,IO输出的基极电流经放大(β倍)在射极可以达到毫安级(IO输出的基极电流为数十微安),而集电极电流约等于射...

2019-07-27 10:39:24 915

原创 stm32设置IO输出

举一个最简单的例子,用推挽模式下的IO控制led首先我们先找一个新建工程模板放置于你的常用work_place文件夹。然后打开模板的user文件夹双击图标:进入之后选中工程然后右键(如下图):选择Manage project Items新建一个文件分组叫HARDWARE用来存放初始化硬件外设的.c和.h文件。然后此时我们要到工程根目录下创建一个同名文件夹(因为虽然在软件中新建了一个分组...

2019-07-26 17:55:20 5496

原创 mybatis与Spring框架整合

首先,两个框架要整合到一起的话,需要配置好各自所需要的jar包但实际上可能不需要这么多jar包,比如接下来的例子里aop,aspects,就不会用到。实际上,我们可以首先搭建一个mybatis环境,然后再进行修改。大体结构如下:首先web.xml里配置Spring:<?xml version="1.0" encoding="UTF-8"?><web-app xml...

2019-07-23 22:45:30 164

原创 mybatis初步运用

为了和数据库进行交互,通常的做法是将SQL语句写在Java代码中,SQL语句和Java代码耦合在一起不利于后期维护修改,而MyBatis能够帮助我们将SQL语句和Java代码分离,方便了后期因需求变动而对SQL语句进行修改。下面举个例子说明mybatis的最简单的用法1.建立工程,引入jar包2.在com.lq.userinfo包创建一个接口例如```public interface I...

2019-07-23 20:29:43 167

第七届蓝桥杯嵌入式省赛模拟题任务书加完整工程,电压测量监控设备

该资源包含任务书和完整的工程文件,工程是Keil4 MDK工程,与考场使用的都是一样的版本。工程已经完全调试完成并实现了任务书的所有要求,内有大量的注释方便他人阅读

2020-03-28

服务器与STM32完整代码.zip

该资源包含STM32端与服务器端两个工程,实现了服务器与STM32的数据交换以及数据在云端数据库的存储

2020-02-09

ATK-ESP8266 WIFI模块.zip

该工程实现了STM32通过ESP8266连接无线路由器访问阿里云服务器的功能,并通过透传方式实现字符串数据传输

2020-02-09

PWM输出_输入捕获.zip

该资源为MDK5版本的STM32项目,能够通过串口实时调整pwm波的占空比并且通过输入捕获的方式测定输入的pwm波的脉冲宽度并将数据显示到电脑显示器上

2020-01-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除