Matlab,做傅里叶分析,生成两个不同频率的正弦波,利用subplot函数绘制两张图,一张图绘制两个正弦波,另外一张图绘制两个波形的fft结果
时间: 2024-11-09 22:29:20 浏览: 79
在MATLAB中,你可以通过以下步骤来完成这个任务:
1. 首先,创建两个不同频率的正弦波。例如,设第一个频率为`f1`,第二个频率为`f2`,时间跨度为`t`,采样率为`Fs`,你可以这样生成:
```matlab
t = 0:1/Fs:1; % 时间向量
f1 = 5; % 第一个正弦波的频率
f2 = 10; % 第二个正弦波的频率
x1 = sin(2*pi*f1*t); % 生成第一个正弦波
x2 = sin(2*pi*f2*t); % 生成第二个正弦波
```
2. 接下来,使用`subplot`函数绘制两个正弦波。假设`figure`已经打开:
```matlab
subplot(2, 1, 1) % 创建一个2行1列的子图区域,这是第一张图
plot(t, x1, 'r', t, x2, 'b'); % 红色线表示x1,蓝色线表示x2
xlabel('Time');
ylabel('Amplitude');
title('Two Sine Waves');
% 第二张图
subplot(2, 1, 2)
y1_fft = fft(x1);
y2_fft = fft(x2);
% 注意,FFT的结果是复数,需要提取实部和幅值
y1_fft_mag = abs(y1_fft);
y2_fft_mag = abs(y2_fft);
plot(fliplr([0 Fs/2]), [y1_fft_mag y2_fft_mag]); % 横坐标翻转便于理解
xlim([0 Fs]);
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Fourier Transforms of Two Sine Waves');
```
这里,我们先画出了两个正弦波的图形,然后分别计算了每个信号的离散傅立叶变换(DFT),并展示了频谱。
阅读全文