自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

逝年的博客

但知行好事,莫要问前程。

  • 博客(76)
  • 收藏
  • 关注

原创 Python3 面向对象

类对象类对象支持两种操作:属性引用和实例化。属性引用使用和 Python 中所有的属性引用一样的标准语法:obj.name。类对象创建后,类命名空间中所有的命名都是有效属性名。所以如果类定义是这样:语法格式如下:class ClassName: <statement-1> . . . <statement-N>class MyClass: """一个简单的类实例""" i = 12345 def f(sel

2022-01-09 15:26:44 224

原创 Python3 迭代器与生成器

迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。字符串,列表或元组对象都可用于创建迭代器:list=[1,2,3,4]it = iter(list) # 创建迭代器对象print(next(it)) # 输出迭代器的下一个元素print(next(it)) # 输出迭代器的下一

2022-01-07 17:44:03 208

原创 字符串相关知识

Python转义字符在需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符。如下表:Python字符串运算符下表实例变量 a 值为字符串 “Hello”,b 变量值为 “Python”:python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。para_str = """这是一个多行字符串的实例多行字符串可以使用制表符TAB ( \t )。也可以使用换行符 [ \n ]。"""print (para_str)以上实例执行结果为:这是一

2022-01-07 15:27:51 736

原创 数学函数,随机数函数,三角函数

整理下小知识点数学函数随机数函数随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。三角函数

2022-01-07 15:03:28 2192

原创 Python成员运算符

这里是个容易忘记的知识,但是很重要Python成员运算符除了一些常见的算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。a = 10b = 20list = [1, 2, 3, 4, 5 ] if ( a in list ): print ("1 - 变量 a 在给定的列表中 list 中")else: print ("1 - 变量 a 不在给定的列表中 list 中") if ( b not in list ): prin

2022-01-07 14:48:31 1105

原创 Python数据类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。https://www.runoob.com/python3/python3-data-type.html...

2022-01-07 12:38:56 442

原创 单光子类协议——SARG04协议

1.1.3 SARG04协议SARG04协议, 它可以看做是BB84协议的一种改进.可以更好地抵御BB84协议在实际应用中遇到的“光子数分离(Photon Mumber Splitting,PNS)攻击”问题。为更好地理解SARG04协议,先理解PNS攻击的含义:对于BB84协议而言,理想情况是Alice拥有单光子源,这样当Alice 制备量子态时,可以得到协议中要求的单光子态。但实际情况是.理想的单光子源制备很困难.而且使用起来效率较低,对环境要求也很苛刻,因此,通常采取微弱激光源来代替单光子源作为Q

2021-09-22 17:05:01 1828

原创 单光子类协议——六态协议

1.1.2 六态协议六态协议最早出现在1984 年,在提出BB84协议后,Bennett即提出六态协议可以作为BB84协议的一种扩展,但并没有深人讨论。1998年,D. BruB重新提出研究六态协议,其采用6个不同的量子态进行编码,因此得名。六态协议的量子态制备相比BB84协议更为复杂,BB84协议所使用的4个态分别是Z基和X基的本征态。六态协议在此四者之外,还增加了一对Y基的本征态,因此其对称性也更高。即六态协议使用如下6个量子态进行编码:式中: |0>,|1>.|0-),|1->

2021-09-17 14:30:18 657

原创 QKD常见协议简介

QKD的核心思想是利用非正交单量子态的不可克隆性来完成密钥的安全分发。自1984 年第一个QKD协议提出至今,已经提出了许多具体可执行的QKD协议,且针对同种协议也有许多不同的改进版。下面学习最为常见的若干协议,其他协议或多或少都与这些协议相关。在常见的QKD协议中,按照信源端编码空间的维度可以分为离散变量(DiscreteVariable,DV)类协议和连续变量(Continuous Variable. CV)类协议:按照光源是否存在纠缠,还可以分为制备测量(Prepare-and- Measure. P

2021-09-17 13:40:29 4342

原创 切比雪夫 II 型滤波器设计

切比雪夫II型滤波器的振幅平方函数为在MATLAB中,cheb2ap函数用于设计切比雪夫II型低通滤波器。Cheb2ap的语法为[z,p,k] = cheb2ap(n, rp)其中,n为滤波器的阶数,rp为通带的波动。返回值z,p,k分别为滤波器的零点、极点和增益。例 设计切比雪夫II型低通滤波器示例。程序如下:Wp=3pi412^3;Ws=3¥pi12¥10^3;rp=1;rs= 30;各设计滤波器的参数wp= 1;ws= Ws/wp;暑对参数归一化[N, wc] = ch

2021-07-18 14:03:18 7295 1

原创 切比雪夫 I 型滤波器设计

切比雪夫I型滤波器的振幅平方函数为在MATLAB中,cheblap函数用于设计切比雪夫 I 型低通滤波器。该函数的调用方法为[z, p,k] = cheb1ap(n, rp)其中,n为滤波器的阶数,rp为通带的幅度误差。返回值分别为滤波器的零点、极点和增益。例 设计切比雪夫I型低通滤波器示例。程序如下:Wp=3*pi*4*12^3;Ws=3*pi*12*10^3;rp=1;rs= 30; %设计滤波器的参数wp= 1;ws= Ws/Wp; %对参数归一

2021-07-17 19:35:34 6493 4

原创 巴特沃斯滤波器设计

巴特沃斯滤波器振幅平方函数为式中,N为整数,称为滤波器的阶数,N越大,通带和阻带的近似性越好,过渡带也越陡。在MATLAB中,buttap函数用于计算N阶巴特沃斯归一化(3dB截止频率=1)模拟低通原型滤波器系统函数的零、极点和增益因子。其调用格式为[z,p,k] = buttap(N)其中,N是欲设计的低通原型滤波器的阶次,z、p和k分别是设计出的G§的极点、零点及增益。例 产生一个 20阶低通模拟滤波器原型,表示为零极点增益形式,并绘制频率特性图。程序如下:clear all;[Z,P

2021-07-17 19:10:43 6281 9

原创 模拟滤波器的基础知识与原型设计

滤波器是具有频率选择作用的电路或运算处理系统,具有滤除噪声和分离各种不同信号的功能。模拟滤波器的设计就是根据一组设计规范来设计模拟系统函数H(s),使其逼近某个理想滤波器特性。考虑因果系统,有式中,ha(t)为系统的单位冲激响应,是实函数因此有不难得出模拟滤波器振幅平方函数定义为如果系统稳定,则为了保证Ha(s)稳定,应选用A(-s2)在s平面的左半平面的极点作为Ha(s)的极点。模拟滤波器的设计以几种典型的低通滤波器的原型函数为基础。如巴特沃斯滤波器、切比雪夫滤波器和椭圆滤波器等。滤

2021-07-17 17:15:50 1744

原创 IIR滤波器设计

1.直接型求单位冲激响应和单位阶跃响应的输出实现代码:clc;close all;b = [1,-3,11,27,18];a = [16,12,2,-4,-2];N = 30;delta = impz(b,a,N);x = [ones(1,5),zeros(1,N-5)];h = filter(b,a,delta);y = filter(b,a,x);subplot(211);stem(h);title('直接型h(n)');subplot(212);stem(y);titl

2021-07-17 16:33:41 1862 1

原创 MATLAB与Excel文件的交换

前言Excel是一款非常优秀的通用表格软件,在学习、工作与科研中大量的数据可能都是以Excel表格的方式存储的。利用MATLAB强大的数值计算功能处理Excel中的数据,首要解决的问题就是如何将Excel中的数据导人到MATLAB中或将MATLAB数值计算的结果转存人Excel中。1.调用xlsfinfo函数获取文件信息在读取Excel目标数据文件前,可以通过xlsfinfo函数获取该文件的相关信息,为后续操作获得有效信息(例如文件类型、文件内部结构,相关的软件版本等)。xlsfinfo函数的调

2021-07-15 22:08:06 707 4

原创 uimenu 菜单及设计

uimenu 菜单及设计菜单是动态呈现的选择列表,它对应于相关方法(常称为命令)或GUI状态。菜单可以包含其他菜单或者菜单项,也可以包含菜单(即分层的菜单),表示可以执行的命令或所选择的GUI状态。菜单可以与应用程序的菜单栏相关,也可以漂浮在应用程序窗口之上,形成弹出式菜单。1. 建立用户菜单MATLAB的各个图形窗口有自己的菜单栏,包括File,Edit,Windows和Help等菜单项。为了建立用户自己的菜单系统,可以先将图形窗口的MenuBar属性事先设置为none,以取消图形窗口默认的菜单,然

2021-07-14 22:43:03 1673 1

原创 基于MATLAB的日历设计

本设计主要是制作一个时钟软件,包括一个时钟表和一个日历。程序自动运行时,显示系统当前日期和时间,日期和时间可以由用户自行更改。本软件由一个主程序myclcok及两个子函数rili 和ck组成。主程序myclcok主要用于建立主窗口的菜单及相关的功能编辑,rili函数用于建立日历界面,ck函数用于建立时钟界面。主程序如下:...

2021-07-13 21:36:44 3030 15

原创 基于MATLAB实现进制数转换

实现功能建立数制转换对话框,在左边输入一个十进制整数和一个二到十六之间的转换后进制数,单击“转换”按钮能在右边得到十进制数转换后字符串,单击“退出”按钮退出对话框。程序调用了trdec. m函数文件,该函数的作用是将任意十进制整数转换为二到十六进字符串。trdec. m函数文件如下:function dec = trdec(n, b) ch1 = '0123456789ABCDEF'; %十六进制的16个符号 k= 1; while n~= 0

2021-07-12 22:48:59 3278 7

原创 GUI控件——切换按钮,面板,按钮组,轴

2.9 切换按钮切换按钮,它由标志和标志左边的一个小方框所组成。激活时,uicontrol在检查清除状态之间切换。在检查状态时,根据平台的不同,方框被填充,或在框内含X, Value属性值设为1;若为清除状态,则方框变空,Value属性值设为0。示例%%hf= figure( 'Position',[200 200 600 400],... 'Name', 'Uicontroll',... 'NumberTitle', 'off');ha = ax

2021-07-12 21:26:35 3002 1

原创 GUI控件——弹出式菜单,列表框

弹出式菜单(Pop-up Menu),向用户提出互斥的一系列选项清单,用户可以选择其中的某一项。弹出式菜单不受菜单条的限制,可以位于图形窗口内的任何位置。通常状态下,弹出式菜单以矩形的形式出现,矩形中含有当前选择的选项,在选项右侧有一个向下的箭头来表明该对象是一个弹出式菜单。当指针处在弹出式菜单的箭头之上并按下鼠标时,出现所有选项。移动指针到不同的选项,单击鼠标左键就选中了该选项,同时关闭弹出式菜单,显示新的选项。选择一个选项后,弹出式菜单的Value属性值为该选项的序号。弹出式菜单的Style属性的

2021-07-11 22:41:37 3058 7

原创 GUI控件——静态文本,可编辑文本框

2.5 静态文本静态文本是仅仅显示一个文本字符串的uicontrol, 该字符串是由string 属性所确定的。静态文本框的Style属性值是text。静态文本框典型地用于显示标志、用户信息及当前值。静态文本框之所以称之为“静态”,是因为用户不能动态地修改所显示的文本。文本只能通过改变String属性来更改。示例hf = figure( 'Position',[200 200 600 400],... 'Name', 'Uicontrol1',...

2021-07-11 18:17:38 5712 1

原创 GUI控件——复选框

2.4 复选框复选框,又称检查框,它由一个标注字符串(在String 属性中设置)和字符串左侧的个小方框所组成。选中时在方框内添加“√”符号,Value属性值设为1;未选中时方框变空,Value属性值设为0。复选框一般用于表明选项的状态或属性。实例clc;clearhf = figure( 'Position', [200 200 600 400],... 'Name', 'Uicontrol1',... 'NumberTitle', 'off')

2021-07-11 17:18:48 1022 2

原创 GUI控件——单选按钮

2.3 单选按钮单选按钮,又称无线按钮,它由一个标注字符串(在String 属性中设置)和字符串左侧的一个小圆圈组成。当它被选择时,圆圈被填充为一个黑点,且属性Value的值为1;若未被选择,圆圈为空,属性的Value值为0。单选按钮一般用于在一组互斥的选项中选择一项。为了确保互斥性,各单选按钮的回调程序需要将其他各项的Value值设为0。单选按钮style的属性的默认值是RadioButton。单选按钮实例clc;clearhf = figure( 'Position', [200 200 60

2021-07-11 17:00:57 1743

原创 GUI控件及uimenu菜单——按钮,滑块

2.控件及属性GUI是由各种图形对象组成的用户界面,在这种用户界面下,用户的命令和对程序的控制是通过“选择”各种图形对象来实现的。基本图形对象分为控件对象和用户界面菜单对象,简称控件和菜单。下图列出了MATLAB中常用的控件。每一个控件都不可能是完全符合界面设计要求的,需要对其属性进行设置,以获得所需的界面显示效果。可以通过双击该控件,打开控件属性对话框。属性对话框具有良好的交互界面,以列表的形式给出该控件的每一项属性。下图介绍了控件对象的公共属性。在MATLAB中的对话框上有各种各样的控

2021-07-11 16:32:46 1037

原创 GUI控件及uimenu菜单

控件对象是事件响应的图形界面对象。当某一事件发生时,应用.程序会做出响应并执行某些预定的功能子程序。1.GUIDE 界面由窗口、菜单、图标、光标、按键、对话框和文本等各种图形对象组成的用户界面叫作图形用户界面(GUI)。它可以允许用户定制与MATLAB的交互方式,从而命令窗口不再是唯一与MATLAB的交互方式。用户通过鼠标或键盘选择、激活这些图形对象,使计算机产生某种动作或变化。GUIDE( graphical user interfaces development environment)是由窗口、

2021-07-11 14:10:04 579 1

原创 图形的对象属性——块,图像,方,光对象

承接上文,下面学习到GUI程序设计的块对象。前文链接https://blog.csdn.net/weixin_42129435/article/details/118637744上文链接https://blog.csdn.net/weixin_42129435/article/details/118651476都是关于图形的对象属性1.7 块对象...

2021-07-11 13:21:45 473 1

原创 图形的对象属性——文字,曲面对象

承接上文,下面学习到GUI程序设计的文字对象。上文链接https://blog.csdn.net/weixin_42129435/article/details/1186377441.5 文字对象使用text函数可以根据指定位置和属性值添加文字说明,并保存句柄。该函数的调用格式为句柄变量= text(x,y,z,说明文字,属性名1,属性值1,属性名2,属性值2,…)其中说明文字中除使用标准的ASCII字符外,还可使用LaTeX格式的控制字符。文字对象的常用属性如下图所示。例 文字对象

2021-07-11 11:32:52 246

原创 图形对象属性——根,图形窗口,坐标轴,曲线对象

1.图形对象属性MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值称为属性值。图形对象的属性控制图形的外观和显示特点。图形对象的共有属性如下图所示:例 在同一坐标下绘制红、绿两根不同 曲线,获得绿色曲线的句柄,并对其进行设置。程序命令如下:clc;clear;close all;x= 0:pi/50:2* pi;y= sin(x+ 1);z= cos(x+ 1);plot(x,y ,'r',x,z,'g'); %绘制两条不同的曲线H1 = get(gc

2021-07-10 22:40:42 1206 5

原创 图形对象及句柄

前言绘图函数将不同的曲线或曲面绘制在图形窗口中,而图形窗口是由不同的对象(如坐标轴、曲线、曲面或文字等)组成的图形界面。MATLAB给每个图形对象分配一个标识符,称为句柄。以后可以通过句柄对该图形对象的属性进行设置,也可以获取有关的属性值,从而能够更加自主地绘制各种图形。1.图形对象及其句柄MATLAB的图形对象包括计算机屏幕、图形窗口、坐标轴、用户菜单、用户控件、曲线、曲面、文字、图像、光源、区域块和方框等。系统将每一个对象按树型结构组织起来。每个具体图形不必包含每个对象,但每个图形必须具备根对

2021-07-10 17:02:11 1129 3

原创 无约束一维极值——坐标轮换法

坐标轮换法是将多维问题转化为一系列一维问题的求解方法,它将多变量的优化问题轮流转化为单变量的优化问题,因此又称为变量轮换法。这种方法在搜索过程中只需要目标函数的信息,而不需要求解目标函数的导数。坐标轮换法轮流沿坐标方向搜索,每次只允许一个变量变化,其余变量保持不变。以二元函数f(x1,x2)为例,说明坐标轮换法的迭代过程。如下图所示,选定的初始点X(0)作为第一轮的始点X0(1),保持X2不变而沿X1方向e1=[1,0]T作一维搜索,确定其最优步长a1(1) ,即可获得第一轮的第一 个 迭代点X1(1)

2021-07-10 13:51:38 3742 11

原创 无约束一维极值——三次插值法

在许多问题中,通常根据实验、观测或经验得到的函数表或离散点上的信息,去研究分析函数的有关特性。其中插值法是一种最基本的方法,以下给出最基本的插值问题一三次样条插值的基本方法:对插值区间[a,b]进行划分,a<x0<x1<…<xn≤b.函数y=f(x)在节点xi上的值yi=f(xi)(i=0.,1.2…n),并且如果函数S(x)在每个小区间[xi,x(i+1)]上是三次多项式,在[a,b]上有二阶连续导数,则称S(x)是[a,b]上的三次样条函数,如果S(x)在节点xi上还满足条件S

2021-07-10 12:35:47 851 1

原创 无约束一维极值——抛物线法

抛物线法是求无约束一维极值问题的一种方法,也叫二次插值法,其理论依据为二次多项式可以在最优点附近较好地逼近函数的形状,做法是在函数的最优点附近取三个构造点,然后用这三个点构造一条抛物线,把这条抛物线的极值点作为函数的极值点的近似。每次构造 一条抛物线后,抛物线的极值点就可作为一个新的构造点,新的构造点与原来的三个构造点经过某种算法,得到下一步抛物线逼近的三个构造点,这就是抛物线法的算法过程。编写抛物线法的MATLAB代码如下:...

2021-07-10 12:18:34 1124 1

原创 无约束一维极值——牛顿型法

牛顿型法包括牛顿法和阻尼牛顿法。这类方法的最大优点是收敛速度快,即它的迭代次数相对于其他方法来说少得多。特别是对于一些性态较好的目标函数,例如二次函数,只需保证求梯度和二阶偏导数矩阵时的精度,不管初始点在何处,均可一步就找出最优点。可是这类方法也有很大的缺点,在每次迭代决定牛顿方向时,都要计算目标函数的一阶导数和二阶导数矩阵及其逆矩阵。这就使计算度较为复杂,增加了每次迭代的计算工作量和计算机存储量。1.牛顿法牛顿法是根据目标函数的等值线在极值点附近是同心椭圆族的特点,在极值点X’邻域内用一个二次函数φ(

2021-07-07 23:58:11 1042

原创 无约束一维极值——斐波那契法

斐波那契法(FibonaceiMethod)又称斐波那契分数法,是一种一维搜索区间消去法。斐波那契法通过取代试探点和进行函数值的比较,使包含极小值点的搜索区间不断缩短,当区间长度缩短到一定程度时,区间上各点的函数值均接近极小值点的近似。该算法要求所考虑的区间上的目标函数是单峰函数,即在这个区间上只有一个局部极小值点的函数。斐波那契算法的具体步骤如下:(1)选取初始数据,确定单峰区间[a0,b0],给出搜索精度 δ>0,由步骤(4)确定搜索次数n。(2) k=1,a = a0,b = b0,计算

2021-07-06 22:22:51 3169 6

原创 python数据类型——文件

文件也可以看作是Python中的数据类型。当使用Python的内置函数open打开一个文件时,返回一个文件对象。其原型如下所示。open (filename,mode, bufsize)其参数含义如下。flename:要打开的文件名。mode:可选参数,文件打开模式。bufsize:可选参数,缓冲区大小。其中mode可以是“r” 表示以读方式打开文件,“w”表示以写方式打开文件,“b"表示以二进制方式打开文件常用的文件操作如下图所示。...

2021-07-05 21:20:11 276

原创 Python数据类型——字典

字典是Python中比较特别的一类数据类型,以大括号“{}” 包围的数据集合。字典与列表的最大不同在于字典是无序的,在字典中是通过键来访问成员的。字典也是可变的,可以包含任何其他类型,字典中的成员位置只是象征性的,并不能通过其位置来访问该成员。字典中的成员是以“键:值”的形式来声明的。常用的字典操作如下图 所示。实际操作...

2021-07-05 21:15:11 433

原创 python数据类型——列表和元组

列表是以方括号“[]“包围的数据集合,不同成员间以”,"分隔。列表中可以包含任何数据类型,也可以包括另一个列表。列表也可以通过序号来访问其中的成员。在脚本中可以对列表进行排序、添加、删除等操作,改变列表中的某一成员的值。元组的特性与列表基本相同,元组是以圆括号“()"包围的数据集合。与列表不同的是,元组中的数据一旦确立就不能被改变。元组可以使用在不希望数据被其他操作改变的场合。Python 提供了对列表操作的强大支持,常用的操作如下图所示。除此以外,在Python中也可以使用类似于字符串的分片和索

2021-07-05 21:11:12 366

原创 python常用字符串操作

2021-07-05 21:04:23 114

原创 Python 的 math模块的一些基本数学函数

sin(x): 求x的正弦。cos(x):求x的余弦。asin(x);求x的反正弦。acos(x):求x的反余弦。tan(x); 求x的正切。atan(x):求x的反正切。hypot(x, y); 求直角三角形的斜边长度。fmod(x,y): 求x/y的余数。ceil(x); 取不小于x的最小整数。floor(x);取不大于x的最大整数。fabs(x):求绝对值。exp(x): 求e的x次幂。.pow(x,y): 求x的y次幂。log10(x): 求x的以10为底的对数。sqr.

2021-07-05 20:54:27 164

原创 无约束一维极值——黄金分割法

黄金分割法适用于已知极值区间的前提下,利用不断缩小区间的思想,最终得出极值的近似值。该方法只是要求函数单峰,可以不连续。因此,这种方法的适应面非常广泛。黄金分割法也是建立在区间消去法原理基础上的试探方法,即在搜索区间[a,b]内适当插入两点a1,a2,并计算其函数值。a1,a2 将原来区间分成三段,再应用函数的单峰性质,通过函数值大小的比较,删除其中一段,使搜索区间得以缩小。然后在保留下来的区间上作同样的处理,如此迭代下去,使搜索区间无限缩小,从而得到极小值点的数值近似解黄金分割法是用于一元函数f(x)

2021-07-03 16:05:02 1558 1

空空如也

空空如也

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

TA关注的人

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