太阳黑子是出现在太阳大气底层---光球层上的巨大气流旋涡,是太阳活动最明显的标志之一。天文学家根据近300年来的记载,发现太阳黑子活动有11年的周期。另外,太阳活动还有22年、80多年、170年左右和360年等多种周期。当几种周期同时达到最高峰的时候,黑子相对数就特别高,对地球的影响也特别大。通过谱分析测量太阳黑子的周期,可为卫星通信及电力供应等部门提前预报出黑子活动对电离层影响的程度,以便做好防护准备。

太阳黑子数据可从比利时皇家天文台下载。

以100年中记录到的太阳黑子出现次数为信号x(n),对x(n)作功率谱,从中观察太阳黑子周期性。
编程实现:
(1)x(n)是从1770年至1869年中每年记录到的太阳黑子出现的次数,绘出 x(n)。
(2)对数据零均值化处理,以消除信号的直流分量。
(3)对数据作功率谱。作DFT时,N=128,fs=1Hz。
%太阳黑子谱分析程序 taiyangheizi.m
x=[101 82 66 35 31 7 20 92 154 125 85 68 38 23 10 24 83 132 131 118 90 67 60 47 41 21 16 6 4 7 14 34 45 43 48 42 28 10 8 2 0 1 5 12 14 35 46 41 30 24 16 7 4 2 8 17 36 50 62 67 71 48 28 8 13 57 122 138 103 86 63 37 24 11 15 40 62 98 124 96 66 64 54 39 21 7 4 23 55 94 96 77 59 44 47 30 16 7 37 74];%100年中太阳黑子出现的次数
N=128; fs=1; %采样频率1Hz,fft点数为128点
s=x-mean(x); %对x作零均值化处理(去除直流分量)
Y=fft(s,N); %对s做N点fft
PSD=Y.*conj(Y)/N; %做功率谱
f=fs/N*(0:N/2-1); %频率轴
subplot(212); plot(f,PSD(1:N/2)); %画功率谱(N/2点)
附
太阳黑子谱分析程序

太阳黑子出现的最主要的周期:T=1/f=1/0.086≈ 11.6(年)
设h(n)和x(n) 长度分别是N和M。它们的线性卷积和循环卷积分别为:

当:L≥N+M-1时,循环卷积=线性卷积
由时域循环卷积定理有:
Yc(k)=DFT[yc(n)]=X(k)H(k) 0≤k≤c-1
则当:L≥N+M-1时, Yl(k)=Yc(k)
则:yl(n)=IDFT[Yl(k)]

%用DFT(实际使用FFT)计算线性卷积程序:
x1=input(‘x1=’); %输入序列x1(n)
x2=input(‘x2=’); %输入序列x2(n)
N1=length(x1); %x1(n)的长度
N2=length(x2); %x2(n)的长度
E=ceil(log2(N1+N2-1));
N=2^E; %N为2的指数次方
x1=[x1,zeros(1,N-N1)]; %补0,使x1和x2长度为N
x2=[x2,zeros(1,N-N2)];
X1=fft(x1,N ); %X1(k)=DFT[x1(n)]
X2=fft(x2,N); %X2(k)=DFT[x2(n)]
Y=X1.*X2; %Y=X1(k)X2(K)
y=ifft(Y,N)
%y(n)=IDFT[Y(k)],y是用DFT计算的线性卷积
y1=conv(x1,x2)
%y1是x1(n)与x2(n)的线性卷积
(直接计算)
程序运行结果
附
线性卷积程序

