太阳黑子活动周期的分析

一、    引言

太阳黑子是人们最早发现也是人们最熟悉的一种太阳表面活动。因为太阳内部磁场发生变化,太阳黑子的数量并不是固定的,它会随着时间的变化而上下波动,每隔一定时间会达到一个最高点,这段时间就被称之为一个太阳黑子周期。太阳黑子的活动呈现周期性变化是由施瓦贝首次发现的。沃尔夫 (R.Wolfer)继而推算出11年的周期规律。实际上,太阳黑子的活动不仅呈11年的周期变化,还有海耳在研究太阳黑子磁场分布时发现的22年周期;格莱斯堡等人发现的80年周期以及蒙德极小期等。由于太阳黑子的活动规律极其复杂,时至今日科学家们仍在努力研究其内在的规律和特性。事实上,对太阳黑子活动规律的研究不仅具有理论意义,而且具有直接的应用需求。太阳黑子的活动呈现周期性变化的,沃尔夫(R.Wolfer)根据在过去的288 年(1700年~1987 年)间每年太阳黑子出现的数量和大小的观测数据推算出11 年的周期规律。我们利用Matlab强大的数据处理与仿真功能,对Wolfer数进行功率谱密度分析从而可以得到对太阳黑子活动周期的结论。

二、    实验原理

在该实验中,对Wolfer数序列做FFT变换后得到Y(长度为n),只取其前个数据的功率谱密度的估计值。原因是时域为离散的实序列的傅立叶变换对应于具有周期性且偶对称的频域特性,因此Y的前个数据已经包含了Wolfer数的全部信息。根据DFT的频域单位与DTFT的频域单位的表达关系式以及f对应关系,可以看出f呈线性关系;同样地,因为Y的前个数据已经包含了Wolfer数的全部信息,只取前个数据分析功率-频率图时,对应的横坐标时应取。(注:为采样频率)

三、方案组成与流程图

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

四、实现步骤及内容

(1) 读取数据并绘制Wolfer图,观察太阳黑子的活动现象。程序如下:

load sunspot_sun.dat %读取数据

year=sunspot(:,1); %读取年份信息

wolfer=sunspot(:,2); %读取黑子活动数据

figure%新建图像

plot(year,wolfer) %画出时域图

xlabel('Years'); ylabel(' Sunspot Data '); title('Sunspot Data') %标注横纵坐标和标题

pause

为清楚起见,画出部分时间段(如实验中采取开始50年)的Wolfer 图进行观察。程序如下:

figure

plot(year(1:50),wolfer(1:50),'b.-'); %用前50年数据做图

xlabel('Years');ylabel(' Sunspot Data '); title('At the first 50 years') %标注横纵坐标和标题

(2) 对已经得到的Wolfer数应用FFT 技术分析它的变化规律。程序如下:

Y = fft(wolfer); %对全部数据做FFT

Y(1)=[]; %由于算法问题,Y(1)为所有fft数值之和,因此需舍弃第一个点

pause

观察Wolfer数在FFT分析后得到的在复平面中的分布图。程序如下:

figure

plot(Y,'ro') %在复平面做图,空心点

title('Fourier Coefficients in the Complex Plane');

xlabel('Real Axis'); %标注横坐标为实部

ylabel('Imaginary Axis'); %标注纵坐标为虚部

pause

 (3) 功率与频率的关系曲线则被定义为周期图。用周期图法对 Wolfer 数进行功率谱密度分析。程序如下:

figure

n=length(Y);%FFT结果长度为n

power = abs(Y(1:n/2)).^2; %取前n/2个数据求其功率

nyquist = 1/2; %取最大频率为0.5

freq = (1:n/2)/(n/2)*nyquist; %FFT转换为DTFT

plot(freq,power) %画周期图

xlabel('cycles/year');title('Periodogram')

pause

为清楚起见,对功率和频率的前50个分量作它的周期图。程序如下:

figure

plot(freq(1:50),power(1:50)) %为观察方便,取前50年数据做图

xlabel('cycles/year')

pause

(4) 确定出太阳黑子的活动周期。为清楚起见,画出功率与周期(频率的倒数)的关系曲线图。程序如下:

figure

period=1./freq; %将横坐标单位转换为年/周期

plot(period,power);%画周期图

axis([0 50 0 2e+7]);

ylabel('Power');

xlabel('Period (Years/Cycle)');%单位为年/周期

pause

(5) 在功率与周期关系曲线图中标出功率的最高点,该位置对应的周期则为太阳黑子活动周期。

hold on;

index=find(power==max(power));%找到频率最大点,该点横坐标即为太阳黑子周期

mainPeriodStr=num2str(period(index));

plot(period(index),power(index),'r.', 'MarkerSize',25);%用实心点指出该点

text(period(index)+2,power(index),['Period = ',mainPeriodStr]);%文字标注该点

hold off;

三、          

四、          

五、         实验结果分析与总结

实验得出的太阳黑子的活动周期为11.0385年,与沃尔夫得出的11年的周期规律一致,说明实验结果正确。我对这门课的建议是老师在课上可以单门给出一段时间专门用于学生进行讨论,这样会比就一个人在那做的效率要高。体会就是上了这门课之后我知道了如何将数字信号处理上的知识应用于实际,收获很大。

 

第二篇:基于MATLAB方法分析太阳黑子活动周期论文

基于MATLAB方法分析太阳黑子活动周期

王治国1,邱微2

摘要:太阳黑子是人类对太阳研究中最常见、最重要的活动现象。太阳黑子的爆发也直接影响到人们的衣食住行。根据数字信号处理对数据处理的方法,采用MATLAB对1732年到20xx年的太阳黑子数进行处理得出太阳黑子周期约为11年。结果表明该方法对太阳黑子周期研究是直观且有意义的。

关键字:太阳黑子数;MATLAB;周期

相关推荐