随机生成红外光谱数据并绘图的matlab代码
时间: 2024-01-25 14:03:57 浏览: 163
以下是一个简单的 MATLAB 代码,可以用于随机生成红外光谱数据并绘图。
```matlab
% 设置参数
n_points = 1000; % 数据点数量
freq_range = [400, 4000]; % 频率范围
peak_num = 10; % 峰数量
peak_width = 50; % 峰宽度
noise_level = 0.1; % 噪音水平
% 生成频率轴
freq = linspace(freq_range(1), freq_range(2), n_points);
% 生成随机峰
peaks = rand(peak_num, 2);
peaks(:, 1) = peaks(:, 1) * (freq_range(2) - freq_range(1)) + freq_range(1);
peaks(:, 2) = peaks(:, 2) * (1 - noise_level);
% 生成光谱
spectrum = zeros(1, n_points);
for i = 1:peak_num
spectrum = spectrum + peaks(i, 2) * exp(-(freq - peaks(i, 1)).^2 / (2 * peak_width^2));
end
spectrum = spectrum + noise_level * randn(1, n_points);
% 绘制光谱
plot(freq, spectrum);
xlabel('频率 (cm^{-1})');
ylabel('吸收');
```
这个代码会随机生成具有指定数量的峰和指定峰宽度的光谱数据,并添加指定水平的噪声。将 `n_points`、`freq_range`、`peak_num`、`peak_width` 和 `noise_level` 设置为适当的值,就可以生成不同的光谱数据。
阅读全文