主要内容

在数据找到峰值

使用findpeaks函数来找到价值观和一组数据的最大值的位置。

该文件spots_num包含太阳黑子观测每年的平均数量从1749年到2012年。找到极大值和多年的发生。把它们连同数据。

负载(“spots_num”)(pks, loc) = findpeaks (avSpots);情节(avSpots,年(loc),“o”)包含(“年”)ylabel (“太阳黑子数”)轴

图包含一个坐标轴对象。坐标轴对象包含一年,ylabel太阳黑子数包含2线类型的对象。一个或多个行显示的值只使用标记

有些山峰非常接近对方。那些不定期复发。大约有5个这样的山峰每50年的时间。

要做一块更好的循环时间的估计,使用findpeaks再一次,但这一次限制峰分离至少六年。计算顶点的平均时间间隔。

(pks, loc) = findpeaks (avSpots MinPeakDistance = 6);情节(avSpots,年(loc),“o”)包含(“年”)ylabel (“太阳黑子数”)轴传奇([“数据”“高峰”),位置=“西北”)

图包含一个坐标轴对象。坐标轴对象包含一年,ylabel太阳黑子数包含2线类型的对象。一个或多个行显示的值只使用这些对象标记表示数据,峰值。

meanCycle =意味着(diff (loc))
meanCycle = 10.8696

众所周知,大约每11年太阳活动周期。检查使用傅里叶变换。去除信号的意思是专注于其波动。回想一下,采样率是衡量。使用频率奈奎斯特频率。

fs = 1;Nf = 512;df = fs / Nf;f = 0: df: fs /第二代;trSpots = fftshift (fft (avSpots-mean (avSpots)、Nf));dBspots = mag2db (abs (trSpots (Nf / 2 + 1: Nf)));情节(f, dBspots)参照线(= 1 / meanCycle,颜色“# 77 ac30”)包含(“频率(年^ {1})”)ylabel (“| FFT | (dB)”)ylim([85])文本(1 / meanCycle + 0.02, 25岁,“< = = 1 /”+ num2str (meanCycle))

图包含一个坐标轴对象。y坐标轴对象包含频率(e r toThePowerOf - 1基线),ylabel | FFT | (dB)包含3线类型的对象,constantline、文本。

傅里叶变换确实期望频率峰值,确认11年猜想。你也可以找到定位的最高峰时期的傅里叶变换。这两个估计一致很好。

[pk, MaxFreq] = findpeaks (dBspots NPeaks = 1, SortStr =“下”);时间= 1 / f (MaxFreq)
时间= 10.8936
持有情节(f (MaxFreq)、pk、“o”)举行传奇([“傅里叶变换”“1 / meanCycle”“1 /期”])

图包含一个坐标轴对象。y坐标轴对象包含频率(e r toThePowerOf - 1基线),ylabel | FFT | (dB)包含4线类型的对象,constantline、文本。一个或多个行显示的值只使用这些对象标记代表傅里叶变换,1 / meanCycle, 1 /。

另请参阅

|

相关的话题