频谱峰值搜索

上传人:m**** 文档编号:499489287 上传时间:2023-04-27 格式:DOCX 页数:8 大小:74.02KB
返回 下载 相关 举报
频谱峰值搜索_第1页
第1页 / 共8页
频谱峰值搜索_第2页
第2页 / 共8页
频谱峰值搜索_第3页
第3页 / 共8页
频谱峰值搜索_第4页
第4页 / 共8页
频谱峰值搜索_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《频谱峰值搜索》由会员分享,可在线阅读,更多相关《频谱峰值搜索(8页珍藏版)》请在金锄头文库上搜索。

1、实验名称:频谱峰值搜索实验目的:1、熟练掌握离散信号的DFT实现方法;2、熟练掌握Matlab实现DFT的方法,提高编程实践能力;3、增强自我学习能力,查阅文献搜索能力;4、掌握离散信号的时域与频域的对应关系。实验原理:1. 离散复正弦信号的 DFT(1)N-1.2兀X (kf )=乞 x (n) ej n n 12、 Matlab 主要函数n - 0fft(signal,N); signal:输入信号,N: fft 的点数函数的作用是对输入信号做N点的DFTfftshift(fft(signal,N); 将零频点移到频谱的中间3 谱峰搜索算法采用一维黄金分割精搜算法5取代分级搜索过程中的递归

2、精搜。对于一维 黄金分割精搜算法,若函数f (x)有且仅有一个极大值位于区间(a,c)上,则有当 a b f (a)且f (b) f (c)。此时若在区间(b,c)上选取一点x ,当 f (b) f (x)时,则f (b)f (a)且f (b) f (x),即极大值点将位于三元点组a b x对应的区间(a, x)上; 否则,当f (b) f (b)且 f (x) f (b) f (c),即极大值点将位于三元点组b x c对应的区间(b,c)上。 在这些三元点组中, 其中间点对应的函数值都是每一轮求解过程中的最大值 .这 一过程下图所示, 继续对三元点组所对应的区间进行划分, 直到区间足够小,

3、小 到以至于该区间上任何一点都可以表示函数的极大值点。下面是一维黄金分割搜 索算法的基本原理。给定三元点组a b c,假设b是a ,c之间的一个分割w。即b 一 ac 一 bw, 1 一 w再假设一个试探点X位于区间(b,c)之间,且有x 一 b=zc - a(3)通过选取试探点X后,可以将极大值点压缩到相对长度为w + Z的区间(a, X)。或 者是相对长度为l w的区间(b,c)上。考虑到搜索极大值的最坏情况,应该使得下 式成立:w + z = 1 - w z=l-2w(4)可见试探点X应该选为点b关于区间(a,c)的对称点。同样应该保证X是 (b,c)之间的一个分割w。x 一 bz=w=

4、 wc 一 b1 一 w( 5 )把式( 4) 代入到式(5) 中得到如下的二次方程w2- 3w + 1 = 0(6)解得其根为(考虑到0 w 2f即可,为方便观察频率最大值位置,取f =2Hz。给定DFT点数为1024 s 1 s点,而为了使的被观察的频谱峰值在频谱图的中央,将抽样时间取在的区间,采样间隔为T = 1/f。其中N=512,满足采样点数为512 x 2 = 1024点。ss这样得到输入信号的表达式为signal = ej 2 兀人 nTs(8)2、对信号进行DFT,并画出频谱图。(1) 在 MATLAB 中应用 fft(signal,N)对信号 signa 1 做 N 点的 F

5、FT;(2) 分别应用函数fftshift、abs对DFT结果调整和取绝对值;(3) 设置横坐标。根据f和的对应关系,得到很坐标的取值范围是-1,1。s在 MATLAB 中设置为 f=(1:2*N)-N)*(fs/(2*N);3、运用一维黄金分割方法找出频谱峰值。根据频谱的峰值范围,以及分割法的原理,设置个参数为:a = -0.5,c = 0.5, w = 0.318966。创建计算相应频率点的幅值计算函数。根据DFT的计算定义,fx处的频谱值为x(f ) = x(nT )e j Nnk = x(nT(9)xssn=0n=0根据计算精度,将MATLAB计算精度设置为format long。并设

6、计计算迭代次数的变量iterations。通过判另点和x点的幅值大小来更新参数,参数更新如下x (b) x (x)贝U : a T a, b T b, x T cx (b) 1.0000e-0011;% 设置收敛目标 %定义算法参数b=w*(c-a)+a;x=z*(c-a)+b;iterations=iterations+1; 迭代次数更新%通过DFT定义计算a, b, c, x点的幅值 ampB=Amplitude(b);ampA=Amplitude(a);ampC=Amplitude(c);ampX=Amplitude(x); compairBX=ampBampX;%比较b, x点的幅值大

7、小 if compairBX=1;a=a;b=b;c=x;else compairBX=0;a=b;b=x;c=c;endendamplitudeMax=xiterationsfunction ampx=Amplitude(x)%频率幅值对应幅值计算函数 %计算任意频率对应点的幅度值%变量x为模拟平频率%以fs = 1的采样频率对其进行采样% x频率值format longN=1024;fs=1;n=0:N-1;f1=0.111111111; signal=exp(j*2*pi*f1*n);wight=exp(j*2*pi/N)*n*x*N/fs); ampx=20*log10(abs(signal*wight); end

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号