信号处理与MATLAB实践 实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北京工业大学

信号处理与MATLAB实践

实验报告

班级:140200

学生姓名:陈艺飞

学号:14020016

指导教师:孙中华、张延华

完成时间:2016.12

目录

一、任选题 (3)

1、作业要求 (3)

2、流程图 (3)

3、解题步骤 (4)

4、运行环境matlab (8)

5、运行代码汇总 (8)

二、双号必选题: (10)

1、题目1 (10)

2、题目2 (15)

三、心得与体会 (17)

一、任选题

1、作业要求

作业-1太阳黑子活动周期的分析

太阳黑子的活动是周期的,大约每11年达到一个爆发高峰。试证明这一点。设计提示:

①首先下载太阳黑子的数据,可以从比利时皇家天文台(Royal Observatory of Belgium)的太阳影响数据分析中心(Solar Influences Data Analysis Center-SIDC)下载,网址是:http://sidc.oma.be/index.php3

下载数据的时间段可以从1741年1月一直到当前。

②以横坐标表示年份,纵坐标表示黑子出现的数量,绘制Wolfer图。

③、应用FFT技术分析Wolfer数,在复平面上可以直接绘制出由Y给出的傅立叶系数的分布图。

④、绘制周期图(Y的模的平方被定义为功率,功率与频率的关系曲线则被定义为周期图)。

注:要获得太阳黑子的活动周期,你可以使用月度数据。该数据可以通过点击太阳影响数据分析中心网页左边的导航条Sunspots→download of data→monthly and monthly smoothed sunspot number下载。下载的数据文件的第1列是年和月,第3列是该月太阳黑子的平均数,第4列是平滑后该月太阳黑子的平均数。为了分析太阳黑子的活动规律,即可以取任一时间段的数据,也可以取下载的全部数据。为分析方便,建议用Excel将数据文件读进表格并且存到MATLAB工作路径。

2、流程图

Wofler数时域图FFT变换

功率谱密度(功率-频率)

功率谱密度

标出周期

3、解题步骤

①下载自http://sidc.oma.be/silso/datafiles页面内的Total sunspot number——Yearly mean total sunspot number [1700 - now],CSV格式,并将其根据Matlab语法要求将其重命名为a14020016.csv。

②保存太阳黑子数据(a14020016.csv)至MATLAB工作路径

③装载太阳黑子的数据

load a14020016.csv; %读取太阳黑子数据

④以横坐标表示年份,纵坐标表示黑子出现的数量,绘制Wolfer图。

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

wolfer=a14020016(:,2); %读取黑子数据

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

xlabel(‘年份’);ylabel(‘太阳黑子数据’) %标注横纵坐标

title(‘太阳黑子数据’) %标注标题

figure; %控制画图窗口

⑤应用FFT技术分析Wolfer数,在复平面上可以直接绘制出由Y给出的傅立叶系数的分布图。

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

Y(1)=[ ]; %舍弃第一点

plot(Y,'ro') %在富平面做图

title('傅立叶系数分布图'); %标注标题

xlabel('实轴'); %标注横坐标

ylabel('虚轴'); %标注纵坐标

set(gca,'YTick',[],'XTick',[]); %删除横纵轴刻度

figure; %控制画图窗口

⑥绘制周期图(Y的模的平方被定义为功率,功率与频率的关系曲线则被定义为周期图)。

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('次/年'); %标注横坐标

title('周期图'); %标注标题

figure; %控制画图窗口

⑦标注太阳黑子活动周期

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

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

axis([0 50 0 2e+7]); %坐标轴设置

ylabel('频率'); xlabel('年/周期'); %标注横纵坐标

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),['周期 =

',mainPeriodStr]); %画实心点并文字标注该点

hold off;

据截图可知,计算出的太阳黑子活动周期为10.9年。

相关文档
最新文档