MATLAB一个信号是三个正弦信号的和,正弦信号的频率为50Hz、100Hz、1000Hz,该信号分别以8kHz和800Hz采样,试绘制原始信号、采样信号的时域图和频谱图
时间: 2024-12-24 20:32:38 浏览: 13
MATLAB中,你可以通过以下步骤来模拟并绘制这个信号:
首先,创建三个正弦波信号,它们的频率分别为50Hz、100Hz和1000Hz:
```matlab
% 设置信号参数
fs = 8e3; % 采样率,8kHz
f1 = 50; % 第一个频率 (50 Hz)
f2 = 100; % 第二个频率 (100 Hz)
f3 = 1000; % 第三个频率 (1000 Hz)
t = 0:1/fs:1-1/fs; % 时间向量,从0到1秒
x1 = sin(2*pi*f1*t); % 50Hz正弦波
x2 = sin(2*pi*f2*t); % 100Hz正弦波
x3 = sin(2*pi*f3*t); % 1000Hz正弦波
% 合成总信号
x_total = x1 + x2 + x3;
```
然后,对合成信号进行8kHz和800Hz的采样:
```matlab
% 8kHz采样
x_8kHz = resample(x_total, length(t)*fs, fs);
% 800Hz采样
x_800kHz = resample(x_total, length(t)*fs/8, fs);
```
最后,绘制时域图和频谱图:
```matlab
% 时域图
subplot(2,1,1)
plot(t, x_total, 'b', t, x_8kHz, 'r') % 原始信号和8kHz采样信号
title('时域图')
xlabel('时间 (s)')
ylabel('幅度')
% 频谱图
subplot(2,1,2)
[px, fx] = periodogram(x_total, [], [], fs, 'yaxis'); % 原始信号谱
hold on
[px_8kHz, fx_8kHz] = periodogram(x_8kHz, [], [], fs, 'yaxis'); % 8kHz采样信号谱
plot(fx, px, 'b', fx_8kHz, px_8kHz, 'r')
title('频谱图')
xlabel('频率 (Hz)')
ylabel('功率密度')
legend('Original', '8kHz Sampled')
hold off
```
这样你就得到了原始信号及两种不同采样频率下的时域图和频谱图。
阅读全文