MATLAB入门教程-12:项目


项目一、用电量

绘制各经济部门的用电量(10^9 kWh/天)图 - 居民用电、商业用电和工业用电。
分析哪个经济部门的用电量将是最大的?

1.1 导入数据

输入:
	load electricity.mat
	usage
结果:
	usage =
		3.0484    2.5848    2.6408
		2.8610    2.5530       NaN
		3.2602    2.7084    2.7345
		3.3420    2.8097    2.8019
		3.3555    2.9167    2.7960
		3.4234    2.9299    2.8579
		3.5268    3.1561    2.8597
		3.9185    3.3057    2.8757
		3.9718    3.4761    2.9984
		3.8540    3.4748    2.8998
		3.8934    3.5968    2.6826
		4.3127    3.7088    2.8427
		4.2153    3.7172    2.8301
		4.1711    3.7257    2.8542
		4.6605    3.9367    2.8512
		4.7528    4.0497    2.8671
		4.4847    3.9975    2.8715
		4.6216    4.1299    2.8487
		4.4413    3.9229    2.5176
		4.9899    4.1266    2.7653
		4.9913    4.1311    2.8143
		4.9864    4.1463    2.8135
		4.6270    4.1205    2.7001

1.2 替换 NaN

输入:
	usage(2,3)=2.74
	usage(2,3)
结果:
	ans =
		2.7400

1.3 提取、准备数据

输入:
	res = usage(:,1)
	comm = usage(:,2)
	ind = usage(:,3)
	yrs = (1991:2013)

1.4 绘图

输入:
	hold on
	plot(yrs, res, "b--")
	plot(yrs, comm, "k:")
	plot(yrs, ind, "m-.")
	hold off
结果:
	(见下图)

1.5 加标注

输入:
	title("July Electricity Usage")
	legend("res", "comm", "ind")
结果:
	(见下图)

1.6 优化图例

输入:
	legend("res", "comm", "ind", 'Location', 'northwest')
结果:
	(见下图)

项目二、音频频率

音频信号通常由许多不同的频率组成。
例如,在音乐中,音符“中央 C”的基率为 261.6 Hz,并且大多数音乐都包含多个同时演奏的音符(或频率)。
分析风琴演奏 C 和弦的频谱。
C 和弦由 C (261.6 Hz)、E (329.6 Hz) 和 G (392.0 Hz) 音符组成。
此频率图中突出显示的点对应于每个音符。

C 和弦录音存储在一个名为 Cchord.mat 的文件中。此文件包含两个变量:

  • y:录音信号(1*12288,行向量)
  • fs:采样频率(8192,标量)

2.1 导入数据

输入:
	load Cchord.mat

2.2 提取、准备数据

输入:
	n = numel(y) % numel函数可以返回数组中的元素数目
	t = 0:n-1 % t的范围:0~12287
	t = t/fs % t的范围:0~1.5

2.3 绘图

输入:
	plot(t,y)
结果:
	(见下图)

2.4 离散傅里叶变换

输入:
	yfft = abs(fft(y))

2.5 再绘图

输入:
	f = 0:n-1
	f = f*fs/n
	plot(f,yfft)
结果:
	(见下图)

2.6 放大指定区间

f 将包含从 0 到 fs 的频率。
主频位于 f 的开头位置。
可以使用 xlim 函数放大所关注的区域。

输入:
	xlim([0 1000])
结果:
	(见下图)

2.7 标注

使用输出窗格中的数据游标可以查看频率位置。

前三个峰值是构成中央 C 和弦的音符。

三、恒星运动

Stellar Motion
Instructions are in the task pane to the left. Complete and submit each task one at a time.

Do not edit. This code loads the data and defines measurement parameters.
load starData
nObs = size(spectra,1)
lambdaStart = 630.02
lambdaDelta = 0.14

lambdaEnd = lambdaStart + (nObs-1)*lambdaDelta
lambda = [lambdaStart:lambdaDelta:lambdaEnd]’

s = spectra(:,6)

loglog(lambda, s, “.-“)
xlabel(“Wavelength”)
ylabel(“Intensity”)

[sHa, idx] = min(s)
lambdaHa = lambda(idx)

hold on
loglog(lambdaHa, sHa, “rs”, “MarkerSize”, 8)
hold off

z = (lambdaHa/656.28)-1
speed = z*299792.458


文章作者: 拿破仑940911
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 拿破仑940911 !
评论
  目录