信号处理与MATLAB实践 实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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年。