频谱峰值搜索_第1页
频谱峰值搜索_第2页
频谱峰值搜索_第3页
频谱峰值搜索_第4页
频谱峰值搜索_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、。对丁一维 黄金分割精搜算法,若函数f (x)有且仅有一个极大值位丁区问(a,c)上,则有当 a <b <c时,f(b)Af(a)且f (b) a f (c)。此时若在区间(b,c)上选取一点x,当 f(b)f(x)时,贝U f(b)f(a)且f(b)f(x),即极大 值点将位丁 三元点 组 a < b < x对应的区间(a, x)上; 否贝U,当f (b) < f (x) 时,贝U f (x) A f (b)且 f (x) a f (b) a f (c),即极大值点将位丁三元点组 b<x<c对应的区间(b,c)上。在这些三元点组中,其中问点对应的函数

3、值都是每一轮求解过程中的最大值.这一过程下图所示,继续对三元点组所对应的区间进行划分,直到区间足够小,小 到以至丁该区间上任何一点都可以表示函数的极大值点。下面是一维黄金分割搜 索算法的基本原理。给定三元点组a<b<c,假设b是a,c之间的一个分割w 0即b ac-b =w,= 1 wc -ac a再假设一个试探点X位丁区问(b,c)之间,且有(3)通过选取试探点X后,可以将极大值点压缩到相对长度为 w+z的区间(a,x)。或 者是相对长度为1 w的区间(b,c)上。考虑到搜索极大值的最坏情况,应该使得下 式成立:w+z=1-w z=1-2w(4)可见试探点X应该选为点b关丁区问(

4、a,c)的对称点。同样应该保证X是(b,c)之间的一个分割w。x - bz=w = w c-b1-w(5)把式(4)代入到式(5)中得到如下的二次方程 2w -3w +1 = 0(6)解得其根为(考虑到0 <w <1 ,舍弃另一根)3 _硕5/ 、w = 0.3819660( 7)2所以对丁给定的三元点组所对应的区间上,每次选取试探点都是位丁较大的一 段子区间上,并且距离原来中间点0.3189660的位置上。也就是说通过一次这样 的试探点的选取可以使得极大值点将位丁原区问 0.6180340的更小的区间上。继 续这样的计算,那么区间将变得越来越小,小到以至丁该区间上任何一点都可以

5、表小函数的极大值点。bV实验步骤:1、设置输入信号的参数以及 DFT变换的点数根据要求,输入信号的模拟频率为fl =0.111111111 ,那么采样频率满足fs2fi即可,为方便观察频率最大值位置,取fs=2Hz。给定DFT点数为1024点,而为了使的被观察的频谱峰值在频谱图的中央,将抽样时间取在NN1t =,一 一一Ifsfsfs的区间,采样间隔为Ts =1/fs。其中N=512,满足采样点数为5122 =1024点。 这样得到输入信号的表达式为signal =ej2"f1nTs(8)2、对信号进行DFT,并画出频谱图。(1) 在 MATLAB 中应用 fft (signal,

6、N)对信号 signal做 N 点的 FFT;(2) 分别应用函数fftshift、abs对DFT结果调整和取绝对值;(3)设置横坐标。根据fs和N的对应关系,得到很坐标的取值范围是-1,1。 在MATLAB 中设置为 f=(1:2*N)-N)*(fs/(2*N);3、运用一维黄金分割方法找出频谱峰值。根据频谱的峰值范围,以及分割法的原理,设置个参数为:a = 0.5, c = 0.5 , w =0.318966。创建计算相应频率点的幅值计算函数。 根据DFT的计算定义,fx 处的频谱值为N:jUkN三川彳x(fx)=£ x(nTs)e N =£ x(nTs) es(9)n

7、 z0n -0根据计算精度,将MATLAB计算精度设置为format long。并设计计算迭代次数的变量iterations。通过判别b点和x点的幅值大小来更新参数,参数更新如下,x(b)Ax(x) 则:aT a,bT b,xT c<(10)、x(b)<x(f) 则:bTa,xTb,cTc实验结果:1、运行程序(程序见附录),得到频谱图如图1所示输入信号的DFT.00-O1 11 111111tl1tl1d1X: 0.1133Y: &0.03"H1 1111 1t""111!l1J1ii11IiiniajnaaiaBHiaaaj1 11111X

8、 . Ji|1J1Il1li111ii i.J.J' T ' Ii iiiiiii<11I1i i ii i i ii i 1"T"" i1111111I11I1i i i i I i !d1f11 J11 J41 fii ii1 /T i i i I i I i i i"X1iii-JrIIPSi.Illi dill 111hIlli-0 fi -0 6-0.4-0 200 20 40 店 G SfHz图1复正弦信号的频谱由丁图上显示精度的原因,直接找到的最大值不是我们所需要的最大值, 通过峰值搜索函数得到最大值O2、得到搜索结果

9、为:fmax =0.111111111474039iterations = 53。实验结果分析:1、由丁 DFT的点数1024比较多,而频谱范围较小,所以离散的频谱在图上显得 像连续谱一样。2、因为输入信号的模拟频率的值为 匕=0.111111111,所以图上离散的点上没有 显示最大值点。3、从搜索的结果看出,最大值在满足精度要求的情况下是正确的,说明一维黄 金搜索方法在本实验中是可行的。4、在a,c取值距离最大值较远的情况下经过 53次循环迭代可以得到最大值。说 明该算法收敛比较快。附录:clear all;clc;format longN=512;设置采样点数为2N=1024 fs=2;%

10、设置采样频率为2 Hzt=-N/fs:1/fs:N/fs-1/fs;%采样时间序列f1=0.111111111;输入信号的频率signal=exp(i*2*pi*f1*t);输入信号的采样序列signalDtf=abs(fftshift(fft(signal); %对信号进行 DFT%画出波形f=(1:2*N)-N)*(fs/(2*N);设置横坐标plot(f,20*log10(signalDtf);hold on;gridxlabel('f Hz');ylabel('20log10(幅度)');title('输入信号的 DFT');% 采用一维

11、黄金分割精度算法%吉合算法的特点选择a=-0.2,c=-0.2,w=0.3189660;%初始化幅值ampX=2;ampB=0;a=-0.5;c=0.5;w=0.3189660;z=1-2*w;iterations=0;%初始化迭代次数while abs(ampX-ampB)>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=ampB>ampX;% 比较b , x点的幅值大小if compairBX=1;a=a;b=b;c=x;else compairBX=0;a=b;b=x;c=c;endendamplitudeMax=xiterationsfunction ampx=Amplitude(x)%频率幅值对应幅值计算函数%计算任

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论