如何在MATLAB程序里将不同的采样率曲线放在一张图中
时间: 2023-09-15 09:24:21 浏览: 187
采样率转换的MATLAB程序实现
在MATLAB程序中将不同采样率的曲线放在同一张图中,可以使用MATLAB自带的subplot函数或者plot函数的hold on选项。
1. 使用subplot函数
subplot函数可以在同一张图中绘制多个子图,因此可以使用subplot函数将不同采样率的曲线放在同一张图中。代码示例:
```matlab
% 生成原始信号
fs = 1000; % 采样率
t = 0:1/fs:1-1/fs; % 时间轴
x = sin(2*pi*100*t); % 100Hz正弦波信号
% 绘制不同采样率的曲线
fs_list = [500, 200, 100]; % 不同采样率列表
figure;
for i = 1:length(fs_list)
fs_i = fs_list(i);
t_i = 0:1/fs_i:1-1/fs_i; % 时间轴
x_i = sin(2*pi*100*t_i); % 100Hz正弦波信号
subplot(length(fs_list), 1, i); % 绘制子图
plot(t_i, x_i);
title(['Fs = ', num2str(fs_i)]);
xlabel('Time (s)');
ylabel('Amplitude');
end
```
这段代码生成了一个100Hz正弦波信号,并绘制了3个不同采样率下的曲线,使用subplot函数将3个曲线放在同一张图中。其中,subplot函数的第一个参数表示总行数,第二个参数表示总列数,第三个参数表示当前子图的序号。
2. 使用hold on选项
plot函数的hold on选项可以让多个图形在同一张图中显示。代码示例:
```matlab
% 生成原始信号
fs = 1000; % 采样率
t = 0:1/fs:1-1/fs; % 时间轴
x = sin(2*pi*100*t); % 100Hz正弦波信号
% 绘制不同采样率的曲线
fs_list = [500, 200, 100]; % 不同采样率列表
figure;
hold on;
for i = 1:length(fs_list)
fs_i = fs_list(i);
t_i = 0:1/fs_i:1-1/fs_i; % 时间轴
x_i = sin(2*pi*100*t_i); % 100Hz正弦波信号
plot(t_i, x_i);
title('Different Sampling Rates');
xlabel('Time (s)');
ylabel('Amplitude');
end
legend('Fs = 500', 'Fs = 200', 'Fs = 100');
```
这段代码与前面的代码类似,生成了一个100Hz正弦波信号,并绘制了3个不同采样率下的曲线,使用plot函数的hold on选项将3个曲线放在同一张图中,最后使用legend函数添加图例。
阅读全文