MATLAB生成一包含频率为20Hz、50Hz、120Hz的正弦信号,并绘制其时域波形和频谱
时间: 2024-10-21 07:02:34 浏览: 50
在MATLAB中,你可以使用`sin`函数和` linspace `函数来创建含有特定频率的正弦信号,然后结合`plot`和`fft`函数来展示它们的时域波形和频谱。下面是一个简单的示例代码:
```matlab
% 定义时间范围
t = linspace(0, 1, 1000); % 从0到1秒,采样点数为1000
% 创建不同频率的正弦信号
signal_20Hz = sin(2*pi*20*t);
signal_50Hz = sin(2*pi*50*t);
signal_120Hz = sin(2*pi*120*t);
% 绘制时域波形
figure;
subplot(2,1,1)
plot(t, signal_20Hz, 'r', t, signal_50Hz, 'g', t, signal_120Hz, 'b');
legend('20 Hz', '50 Hz', '120 Hz');
xlabel('Time (s)');
ylabel('Amplitude');
% 计算并绘制频谱
fs = 1000; % 设定采样率
[pxx, f] = periodogram([signal_20Hz; signal_50Hz; signal_120Hz], [], [], fs);
subplot(2,1,2)
plot(f, pxx);
xlim([0 max(f)])
xlabel('Frequency (Hz)');
ylabel('Power Spectral Density');
% 显示图形
title('Time Domain Waveform and Frequency Spectrum');
```
这个代码首先生成了三个频率分别为20Hz、50Hz和120Hz的正弦信号,接着分别绘制了这三个信号的时域波形,以及所有信号合并后的频谱图。
阅读全文