算法程序

合集下载

算法与程序的区别

算法与程序的区别

算法与程序的区别
算法就是计算或者解决问题的步骤。

可以想象成⾷谱,要做出特定的料理,就需要遵循上⾯的⾷谱步骤。

同样,如果想⽤计算机解决特定问题,就需要遵循算法。

特定的问题很多,⽐如“将随意排列的数字按从⼩到⼤的排序重新排列”、“寻找出发点到⽬的地的最短路径”等等。

⾷谱和算法的最⼤区别就是算法是严密的。

⾷谱上经常会出现描述得⽐较模糊的部分,⽽算法是⽤数学形式来描述的,所以⼗分明确。

算法和程序有相似的,区别在于程序是以计算机能够理解的编程语⾔编写⽽成的,可以在计算机上运⾏,⽽算法是以⼈类能够理解的⽅法描述的,⽤于编写程序之前。

不过在这个过程中到哪⾥为⽌是算法,从哪⾥开始是程序,并没有明确的界限。

就算使⽤同⼀个算法、编程语⾔不同,写出来的程序也不同;即便使⽤相同的编程语⾔,写程序的⼈不同,写出来的程序也不同。

计算机算法与程序设计PPT课件

计算机算法与程序设计PPT课件
Bellman-Ford算法
适用于有负权边的有向图,通过对所有边进行松弛操作,逐步更新 起点到其它顶点的距离。
最小生成树问题求解方法
Prim算法
适用于无向连通图,通过贪心策略每次选择连接已选顶点和未选顶点中权值最小 的边,逐步构建最小生成树。
Kruskal算法
适用于无向连通图,通过并查集数据结构维护图的连通性,每次选择权值最小的 边加入最小生成树,并保证不形成环。

后进先出(LIFO)的数据结构,支 持压栈和弹栈操作
03
02
链表
非连续内存空间,通过指针连接元 素,插入和删除操作较为方便
队列
先进先出(FIFO)的数据结构,支 持入队和出队操作
04
树和图数据结构简介

具有层次结构的数据结构,包括二叉树、红黑树等,用于表示具有父子关系的 数据

由节点和边组成的数据结构,用于表示复杂的关系网络,如社交网络、交通网 络等
评估算法执行过程中所需额外空间的数量级,也常 用大O表示法。
评估方法
最坏情况分析、平均情况分析、最好情况分 析等。
02
程序设计基础
编程语言选择与特点
1 2
高级语言与低级语言
解释型与编译型语言的区别,如Python、Java 与C、C等。
面向对象与面向过程
如Java、C与C语言的编程范式对比。
3
动态类型与静态类型
计算机算法与程序设 计PPT课件
目录
• 计算机算法概述 • 程序设计基础 • 基本数据结构及其应用 • 排序与查找算法研究 • 图论相关算法探讨 • 动态规划思想在程序设计中的应用 • 计算机算法与程序设计实践案例分析
01
计算机算法概述

C语言常用算法程序汇总

C语言常用算法程序汇总

C语言常用算法程序汇总C语言是一门广泛应用于计算机编程的语言,具有较高的效率和灵活性。

在C语言中,常见的算法程序包括排序算法、查找算法、递归算法等等。

以下是一些常用的C语言算法程序的汇总:1.排序算法:-冒泡排序:通过多次迭代比较相邻元素并交换位置,将最大的元素逐渐移动到正确的位置。

-插入排序:将待排序的元素与已排序的部分依次比较并插入到正确的位置。

-选择排序:每次从待排序的元素中选择最小的元素并与已排序的部分交换位置。

-快速排序:通过选择一个基准元素,将数组划分为两个子数组进行递归排序。

2.查找算法:-顺序查找:逐个比较数组中的元素,直到找到目标元素或到数组末尾。

-二分查找:通过比较目标元素与数组中间元素的大小,逐步缩小范围,直到找到目标元素。

-哈希查找:通过散列函数将目标元素映射到哈希表的索引位置进行查找。

3.递归算法:-阶乘:通过递归调用自身计算一个正整数的阶乘。

-斐波那契数列:通过递归调用自身计算斐波那契数列的第n个数。

-二叉树遍历:通过递归调用自身遍历二叉树的各个节点。

4.图算法:- 最短路径算法:如Dijkstra算法和Floyd算法,用于计算图中两个节点之间的最短路径。

-拓扑排序:通过对有向无环图进行排序,使得所有的边从排在前面的节点指向排在后面的节点。

- 最小生成树:如Prim算法和Kruskal算法,用于找到图中连接所有节点的最小子树。

5.动态规划:-最长公共子序列:通过寻找两个字符串中的最长公共子序列,解决字符串匹配问题。

-背包问题:通过动态规划解决在给定容量下选取物品使得总价值最大的问题。

-最大子序列和:通过动态规划解决一个数组中选取连续子序列使得和最大的问题。

以上只是一些C语言中常用的算法程序的汇总,实际上,还有很多其他的算法,如逆波兰表达式、霍夫曼编码、最小割等等。

通过学习这些算法,可以更好地理解C语言的应用和开发。

排序算法的程序实现PPT精品文档

排序算法的程序实现PPT精品文档
next i
•.
•3
练习1、下表中的原始数据是一组学生的军训打靶成绩, 若采用冒泡排序算法对其进行排序,则第1~4遍的排序 结果分别是()
原始数据 98 95 85 93 88
第1遍
第2遍
第3遍
第4遍
•.
•4
2、陈晓峰和同学们去农科院开展研究性学习,大家都收获很大, 晓峰设计了一个Visual Basic程序,他把同学们收集到的水稻亩 产量和同学姓名已分别保存在数组a和数组b中,第i个同学收集 的亩产量保存在a(i)中,对应的同学姓名保存在b(i)中,最后按 亩产量从高到低进行排序。
Dim b(1 To n) As String
Private Sub Command1_Click()
Dim i As Integer, j As Integer, c As Single, t As String
For i = 1 To n

' 设共有n名同学
For j = n To i + 1 ①
8.0
7.0
9.0
k
8.5
8.0
7.0 8.0
k 8.5
9.0
7.0
7.0
i=3
8.0
8.0
8.5
k 8.5
9.0
9.0
•.
•9
程序:
for i=1 to 3 k=i for j=i+1 to 4 if d(k)>d(j) then k=j next j if k<>i then t=d(i) d(i)=d(k) d(k)=t endif
next i
•.
•10
练习1、下表中的原始数据是一组学生的军训打靶成绩, 若采用选择排序算法对其进行排序,则第1~4遍的排序 结果分别是()

程序的简单算法设计

程序的简单算法设计

贪心算法
分治算法是将一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
分治算法的适用场景包括但不限于归并排序、快速排序、堆排序等。
分治算法
动态规划
动态规划是一种通过把原问题分解为相对简单的子问题的方式来求解复杂问题的方法。
优化算法设计
复杂度分析的重要性
算法应用实例
04
排序算法
冒泡排序:通过重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
Dijkstra算法
用于求解最短路径问题的图论算法。该算法的基本思想是从起始节点出发,按照距离的远近逐步向外扩展,直到扩展到目标节点为止。
空间复杂度
1
2
3
通过分析算法的时间复杂度和空间复杂度,可以评估算法在处理不同规模输入时的性能表现。
评估算法性能
通过比较不同算法的时间复杂度和空间复杂度,可以评估算法的优劣,选择适合特定问题的最优算法。
比较不同算法
了解算法的时间复杂度和空间复杂度,可以帮助我们发现算法中的瓶颈,进而优化算法设计,提高运行效率。
时间复杂度优化
优化算法所需存储空间,通过减少数据结构的大小或使用更有效的数据结构来降低空间复杂度。
空间复杂度优化
将算法拆分成多个独立的任务,并利用多核处理器或多线程环境并行执行,以提高处理速度。
并行化与并发
将问题分解为子问题,并存储子问题的解以避免重复计算,提高算法效率。
动态规划
算法优化策略
通过数学公式推导简化算法,减少计算量,提高效率。

算法和程序设计语言

算法和程序设计语言
机器语言 源程序
汇编程序
汇编语言 源程序
翻译
机器语言程序 (目标程序)
18
高级语言翻译程序
高级语言 源程序
解释方式
Basic
解释程序 数据
计算结果
高级语言 源程序
编译方式
计算结果
C++
连接程序
目标 程序
程序库
可执行
数据
程序
可脱离编译程序和源
程序独立存在并反复
使用
19
不等于等。 ③逻辑运算:与、或、非等。 ④数据传送:输入、输出、赋值等。
5
(2)控制结构 各操作之间的执行顺序 顺序结构、选择结构、循环结构
A B
(a)顺序结构
成立
A
条件
不成立
B
(b)ห้องสมุดไป่ตู้择结构
6
条件
成立
不成立
A
A
不成立
条件
成立
(c)当型循环结构
(d)直到型循环结构
7
3 算法的特点
有穷性 任意一个算法在执行有穷个计算步骤后 必须终止。
10
流程图
采用一些图框、线条以及文字说明来形象地、直观地描述 算法处理过程。
11
计算圆周率的流程图
优点:较好 的体现程序 设计的逻辑
12
第8章 算法和程序设计语言
1、程序和算法概念 2、程序设计语言概述
系统软件
操作系统 实用程序 语言处理程序
程序设计语言:
汇解编 编释译
• 机器语言
程程程
• 汇编语言
序序序
• 高级语言
• 翻译工具
典型的程序设计语言有:
• 作用:将源程序翻译成计算

什么是算法、程序、程序设计技术和软件

什么是算法、程序、程序设计技术和软件算法、程序、程序设计技术和软件⒈算法算法是一系列解决问题的清晰指令,可以按照特定的顺序执行。

它们是解决复杂问题的基础,通常由一系列步骤组成,每个步骤都有明确的输入和输出。

算法可以用来解决各种问题,如排序、搜索、路径规划等。

⑴算法的特点- 清晰明确:算法应该以一种明确的方式描述问题的解决步骤,使其他人能够理解和实现。

- 输入输出:算法应该明确指定输入和输出的数据和格式,以确保正确性和一致性。

- 有限性:算法应该在有限的步骤之后终止,而不是无限循环。

- 确定性:在给定相同输入时,算法应该始终产生相同的输出。

- 可行性:算法应该能够在合理的时间内执行。

⑵常见的算法类型- 排序算法:将一组数据按照特定的顺序进行排列,如冒泡排序、快速排序、归并排序等。

- 搜索算法:在给定一组数据中查找特定值的位置,如线性搜索、二分搜索、哈希搜索等。

- 图算法:解决图论中的问题,如最短路径、最小树、拓扑排序等。

- 动态规划:将复杂问题分解成较小的子问题进行求解,然后将结果组合成最终的解。

- 递归算法:通过调用自身来解决问题,如斐波那契数列、汉诺塔等。

⒉程序程序是一组按照特定语法和结构编写的指令,用于执行特定的任务或操作。

它由一系列的语句组成,可以被计算机理解和执行。

程序通常用来实现算法,将解决问题的步骤转换为可以计算机理解的指令。

⑴程序语言程序语言是一种用于编写程序的形式化语言。

它定义了一组规则和语法,以指定程序的结构和行为。

常见的程序语言包括C、C++、Java、Python等。

每种程序语言都有其特定的语法和语义,可以用来实现不同类型的算法和解决各种问题。

⑵程序执行过程程序的执行过程包括以下步骤:- 编译:将程序源代码翻译成可执行的机器代码,可执行文件。

- 运行:在计算机上执行可执行文件,按照程序指令执行特定的任务。

- 调试:检测和修复程序中的错误和问题,以确保程序的正确性和稳定性。

⒊程序设计技术程序设计技术是一种用于设计和实现程序的方法和原则。

《算法与程序设计》课件


栈与队列
总结词:空间需求
详细描述:栈空间需求较小,只需存储当前 元素。队列空间需求较大,需存储所有元素

二叉树与图论算法
总结词:层级结构
详细描述:二叉树是一种层级结构, 每个节点最多有两个子节点(左子节 点和右子节点)。图论算法涉及图的 结构和性质,节点和边是基本元素。
二叉树与图论算法
总结词:遍历方式
总结词:空间效率
详细描述:数组连续存储,空间利用率较高。链表节点可能存在大量空闲空间,空间利用率较低。
栈与队列
总结词:先进后
总结词:先进后
栈与队列
总结词:应用场景
VS
详细描述:栈常用于实现函数调用、 深度优先搜索等操作。队列常用于实 现任务调度、缓冲区处理等操作。
栈与队列
总结词:性能特点
详细描述:栈操作速度快,时间复杂度为O(1)。队列操作速度慢,因为需要移动 大量元素,时间复杂度为O(n)。
总结词
复杂度分析
详细描述
二叉树和图论算法的时间复杂度和空间复杂度分析取决于具体算法和应用场景。在某些情况下,二叉树和图论 算法的时间复杂度和空间复杂度可能较高。
04
算法设计与优化
分治策略
01
分治策略
将一个复杂的问题分解为两个或更多的相同或相似的子问题,直到最后
子问题可以简单的直接求解,原问题的解即子问题的解的合并。
02
合并排序
采用分治策略的经典算法,将数组分为两半,分别对两半进行排序,最
后合并两个有序的半部分。
03
快速排序
利用分治策略的排序算法,选择一个基准元素,重新排列数组,使得基
准元素左侧都比它小,右侧都比它大,然后递归地对左右两侧进行快速

算法和程序关系

算法和程序关系
算法和程序是计算机科学中两个非常重要的概念。

算法是一种解决问题的方法,而程序则是实现算法的具体实现。

算法和程序之间有着密不可分的关系,没有算法就没有程序,没有程序就没有算法的实现。

算法是一种抽象的概念,它是一种解决问题的方法,可以用自然语言、流程图、伪代码等形式来描述。

算法是计算机科学中最基本的概念之一,它是计算机程序设计的基础。

算法的好坏直接影响程序的效率和质量。

程序是算法的具体实现,它是一组指令的集合,用来告诉计算机如何执行某个任务。

程序可以用各种编程语言来编写,如C、C++、Java、Python等。

程序的好坏取决于算法的好坏和编程人员的水平。

算法和程序之间的关系非常密切。

算法是程序的灵魂,程序是算法的具体实现。

一个好的算法可以让程序更加高效、简洁、易于维护和扩展。

而一个差的算法则会导致程序效率低下、代码冗长、难以维护和扩展。

在实际编程中,程序员需要根据具体的问题选择合适的算法,并将其转化为程序。

程序员需要对算法进行分析和优化,以提高程序的效率和质量。

同时,程序员还需要不断学习新的算法和技术,以应对不断变化的需求和挑战。

算法和程序是计算机科学中两个非常重要的概念,它们之间密不可分。

一个好的算法可以让程序更加高效、简洁、易于维护和扩展,而一个差的算法则会导致程序效率低下、代码冗长、难以维护和扩展。

因此,程序员需要不断学习和掌握新的算法和技术,以提高程序的效率和质量。

fortran常用算法程序集

fortran常用算法程序集Fortran是一种广泛用于科学和工程计算的编程语言。

由于其强大的数值计算能力,Fortran在许多领域,如物理、数学、工程和生物信息学中,仍然被广泛使用。

在Fortran中,有许多常用的算法可以用来解决各种计算问题。

下面是一些常用的Fortran算法程序集的示例。

1.冒泡排序算法```fortranPROGRAMBubbleSortIMPLICITNONEINTEGER,DIMENSION(:),ALLOCATABLE::arrINTEGER::i,j,tempALLOCATE(arr(10))!分配数组空间!填充数组数据arr=[9,8,7,6,5,4,3,2,1,0]DOi=1,SIZE(arr)-1DOj=i+1,SIZE(arr)IF(arr(j)>arr(j-1))THEN!交换相邻元素temp=arr(j)arr(j)=arr(j-1)arr(j-1)=tempENDIFENDDOENDDOPRINT*,"排序后的数组:"PRINT*,arr(:)ENDPROGRAMBubbleSort```这个程序使用冒泡排序算法对一个整数数组进行排序。

冒泡排序是一种简单的排序算法,通过重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

2.二分查找算法```fortranPROGRAMBinarySearchIMPLICITNONEINTEGER::arr(10),low,high,found=0INTEGER::mid=0PRINT*,"请输入要查找的元素:"INPUT(INTEGER)::xlow=0high=SIZE(arr)-1DOWHILE(found==0)!直到找到元素或数组遍历完为止mid=(low+high)/2!计算中间位置IF(arr(mid)==x)THEN!如果中间元素等于要查找的元素,则找到found=1!设置found标志为1,表示找到元素ELSEIF(arr(mid)>x)THEN!如果中间元素大于要查找的元素,则在左半部分查找high=mid-1!将high指向中间元素的左边的位置ELSE!如果中间元素小于要查找的元素,则在右半部分查找low=mid+1!将low指向中间元素的右边的位置ENDIFENDDOIF(found==0)PRINT*,"元素未找到。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法程序clearclcN=500;M=300;u=0.1;n=1:(N+1);a=[-0.98 0.98]for k=1:2for j=1:Mvn=randn(1,N);a1=[1 a(k)];b1=1;xn=filter(b1,a1,vn);d=var(xn);xn=xn/sqrt(d);fn(1)=xn(1);wn(1)=0;wn(2)=wn(1);for i=2:length(xn)fn(i)=xn(i)-wn(i)*xn(i-1);wn(i+1)=wn(i)+u*xn(i-1)*fn(i);end;wm(j,:)=wn;end;w(k,:)=wn;ew(k,:)=mean(wm);end;plot(n,w(1,:),n,ew(1,:),n,w(2,:),n,ew(2,:));clearclcN=500;M=300;u=0.2;n=1:N;a=[0.98 -0.98]k=1;for j=1:Mvn=randn(1,N);a1=[1 a(k)];b1=1;xn=filter(b1,a1,vn);d=var(xn);xn=xn/sqrt(d);fn(1)=xn(1);wn(1)=0;wn(2)=wn(1);for i=2:length(xn)fn(i)=xn(i)-wn(i)*xn(i-1);wn(i+1)=wn(i)+u*xn(i-1)*fn(i);f2(i)=fn(i)^2;end;fm(j,:)=f2;end;fw=mean(fm);semilogy(n,f2,n,fw);clearclcN=500;M=300;u=[0.1 0.05 0.02];n=1:N;a=[-0.99 0.99]k=1;for l=1:3for j=1:Mvn=randn(1,N);a1=[1 a(k)];b1=1;xn=filter(b1,a1,vn);d=var(xn);xn=xn/sqrt(d);fn(1)=xn(1);wn(1)=0;wn(2)=wn(1);for i=2:length(xn)fn(i)=xn(i)-wn(i)*xn(i-1);wn(i+1)=wn(i)+u(l)*xn(i-1)*fn(i); f2(i)=fn(i)^2;end;fm(j,:)=f2;end;fw(l,:)=mean(fm);end;semilogy(n,fw(1,:),n,fw(2,:),n,fw(3,:));clearN = 100;clearN = 1000;t = 0:10/N:10-10/N;zt = 60*(pdf('Normal', t-8, 0, 0.3) + pdf('Normal', t, 0, 0.8))+rand(1,1000)*3;figure(1);x = 0:100/1000:100-100/1000;plot(x,zt);[X,Y]=meshgrid(-5:0.1:10,-5:0.1:10);xy = [X(:) Y(:)];p=mvnpdf(xy,[],[]); P=reshape(p,size(X));[X,Y]=meshgrid(-10:0.1:5,-5:0.1:10);xy = [X(:) Y(:)];p1=mvnpdf(xy,[],[]); P1=reshape(p1,size(X));X = 0:160/100:160;Y = 0:160/150:160;PS = P/3+P1;PS = (PS(:,50:150) + randn(151,101)/500)*600;figure(2);surf(X,Y,PS);axis tight能量检测%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%生成调制信号fs=100;%采样频率fc=40;%载频fo=fs/20;%码率L=300;%信号样本t = (0:L-1)*1/fs;xn=cos(8*pi*fc*t);y = xn + randn(size(t));figure(1)plot(t,y) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%进行能量检测NFFT = 2^nextpow2(L);Y = fft(y,NFFT)/L;f = fs/2*linspace(0,1,NFFT/2);figure(2)plot(f,2*abs(Y(1:NFFT/2)))程序代码相当全面clearN = 100;clearN = 1000;t = 0:10/N:10-10/N;zt = 60*(pdf('Normal', t-8, 0, 0.3) + pdf('Normal', t, 0, 0.8))+rand(1,1000)*3;figure(1);x = 0:100/1000:100-100/1000;plot(x,zt);[X,Y]=meshgrid(-5:0.1:10,-5:0.1:10);xy = [X(:) Y(:)];p=mvnpdf(xy,[],[]); P=reshape(p,size(X));[X,Y]=meshgrid(-10:0.1:5,-5:0.1:10);xy = [X(:) Y(:)];p1=mvnpdf(xy,[],[]); P1=reshape(p1,size(X));X = 0:160/100:160;Y = 0:160/150:160;PS = P/3+P1;PS = (PS(:,50:150) + randn(151,101)/500)*600;figure(2);surf(X,Y,PS);axis tight%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%生成调制信号fs=100;%采样频率fc=40;%载频fo=fs/20;%码率L=300;%信号样本t = (0:L-1)*1/fs;xn=cos(8*pi*fc*t);y = xn + randn(size(t));figure(1)plot(t,y) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%进行能量检测NFFT = 2^nextpow2(L);Y = fft(y,NFFT)/L;f = fs/2*linspace(0,1,NFFT/2);figure(2)plot(f,2*abs(Y(1:NFFT/2)))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%生成bpsk调制信号fs=100;%采样频率fc=40;%载频fo=fs/20;%码率a=2*fo;%循环周期T=40;%信号样本x=rand(40,1);y=round(x);a1=y*2-1;z=ones(200,1);for i=1:40for j=1:5an(5*i-5+j)=z(5*i-5+j)*a1(i);endendt=1/fs:1/fs:2;xn=an.*cos(4*pi*fc*t);figure(1)plot(t,xn);axis([0 2 -1.5 1.5]); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%进行周期图检测window=kaiser(length(xn),0.5);%矩形窗nfft=512;%512fft[Pxx,f]=periodogram(xn,window,nfft,fs);%周期图检测%%%%%%%%%(生成一段加噪信号)as=rand(20,1);b=as*2;c=floor(b);d=reshape(c,10,2);e=bi2de(d,'left-msb');h=modem.qammod(4);g=modulate(h,e);scatterplot(g);%生成一段随机4QAM信号N=length(g);x=real(g);y=imag(g);fc=40;%载波频率,有线电视信号t0=0.000001;ts=1e-010;t1=0:ts:t0;n1=0.1*randn(1,N);for i=1:Ns1=x(i)*cos(2*pi*fc*t1)-y(i)*sin(2*pi*fc*t1); end%生成4QAM调制后信号%加入噪声ntt2=0.000001:1e-010:0.000002;M1=length(t2);nt=0.1*randn(1,M1);s2=nt.*cos(2*pi*fc*t2);%add ntt=0:ts:0.000002;s=zeros(1,20001);for i=1:10001s(i)=s1(i);endfor j=1:10000s(j+10000)=s2(j);end%加入间隔无信号时间%生成调制后信号%%%%%%%%%%%%%%%%%%%%%%(1)取有用信号时间段,计算函数值cl=xcorr(s1);L=length(cl);i2=1:2:L;c2=cl(i2);%自相关函数a1=fc;%循环周期%构造积分对象ppp=exp(-2*pi*t1*j);M=length(p);pp=c2.*p;%进行无穷大积分ts=1e-010;cxx1=pp*ts;u1=sum(cxx1(1:10),'double');%加入统计频率周期a2N1=length(c2);N2=length(t);f1=60e6;%采样时间Te=0.03;i3=1:N1;a2=i3./(N1*Te);tj1=exp(a2);cx1=tj1*u1*1e10;U1=sum(cx1(1:10));%%%%%%%%%%%%%%%%%%%%%%(2)取噪声时间段,计算函数值cl2=xcorr(s2);L=length(cl2);i3=1:2:L;c22=cl2(i3);p2=exp(-2*pi*t2*j);M2=length(p);pp2=c22.*p2;%进行无穷大积分ts=1e-010;cxx2=pp2*ts;u2=sum(cxx2(1:10),'double');%加入统计频率周期a2i3=1:N1;a2=i3./(N1*Te);tj2=exp(a2);cx2=tj2*u2*1e10;U2=sum(cx2(1:10));%检测完毕%%%%%%%%%%%%%%%%%%% 输出检测示意图;tz=0:ts:0.000002;sz=zeros(1,20001);for i=1:10001sz(i)=U1;endfor j=1:10000sz(j+10000)=U2;end%%%%%%%%(检测完成,输出图谱)figure(2)plot(f,-10*log10(Pxx));window=kaiser(length(xn),0.5);nfft=1024; %%%%%%%%%%%%%%%%%%%%%%%%%%%%1024fft[Pxx,f]=periodogram(xn,window,nfft,fs);%周期图检测figure(3)plot(f,-10*log10(Pxx)); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%对不同类型窗函数进行检测性能分析window1=boxcar(length(xn));%矩形窗window2=hamming(length(xn));%海明窗window3=blackman(length(xn));%blackman窗[Pxx1,f]=periodogram(xn,window1,nfft,fs); [Pxx2,f]=periodogram(xn,window2,nfft,fs); [Pxx3,f]=periodogram(xn,window3,nfft,fs); figure(4)subplot(221)plot(f,-10*log10(Pxx));subplot(222)plot(f,-10*log10(Pxx1));subplot(223)plot(f,-10*log10(Pxx2));subplot(224)plot(f,-10*log10(Pxx3));。

相关文档
最新文档