用matlab完成实验内容1
时间: 2024-11-20 17:34:18 浏览: 3
好的,以下是使用 MATLAB 完成实验内容1的具体步骤和代码:
### 实验内容1: 时域采样的验证
#### 给定参数
- 模拟信号 \( x(t) = e^{-\alpha t} \sin(\omega_1 t) u(t) \)
- 参数:\( \alpha = 444.128 \), \( f_s = 50 \times 2\pi \), \( \omega_1 = 50 \times 2\pi / s \)
- 观察时间 \( T_p = 64 \text{ ms} \)
#### 采样频率
- \( f_{s1} = 1000 \text{ Hz} \)
- \( f_{s2} = 300 \text{ Hz} \)
- \( f_{s3} = 200 \text{ Hz} \)
### MATLAB 代码
```matlab
% 参数设置
alpha = 444.128;
fs1 = 1000; % 采样频率1
fs2 = 300; % 采样频率2
fs3 = 200; % 采样频率3
Tp = 64e-3; % 观察时间
t = 0:1/fs1:(Tp - 1/fs1); % 时间向量
% 生成模拟信号
x_t = exp(-alpha * t) .* sin(2 * pi * 50 * t);
% 采样
x1 = x_t; % 采样频率1000Hz
x2 = x_t(1:fs1/fs2:end); % 采样频率300Hz
x3 = x_t(1:fs1/fs3:end); % 采样频率200Hz
% 计算FFT
N1 = length(x1);
N2 = length(x2);
N3 = length(x3);
X1 = fft(x1);
X2 = fft(x2);
X3 = fft(x3);
% 频率轴
f1 = (0:N1-1) * fs1 / N1;
f2 = (0:N2-1) * fs2 / N2;
f3 = (0:N3-1) * fs3 / N3;
% 绘制图形
figure;
subplot(3, 2, 1);
plot(t, x1);
title('1000Hz 采样');
xlabel('时间 (s)');
ylabel('幅值');
subplot(3, 2, 2);
plot(f1, abs(X1));
title('1000Hz 采样频谱');
xlabel('频率 (Hz)');
ylabel('幅值');
subplot(3, 2, 3);
plot(t(1:length(x2)), x2);
title('300Hz 采样');
xlabel('时间 (s)');
ylabel('幅值');
subplot(3, 2, 4);
plot(f2, abs(X2));
title('300Hz 采样频谱');
xlabel('频率 (Hz)');
ylabel('幅值');
subplot(3, 2, 5);
plot(t(1:length(x3)), x3);
title('200Hz 采样');
xlabel('时间 (s)');
ylabel('幅值');
subplot(3, 2, 6);
plot(f3, abs(X3));
title('200Hz 采样频谱');
xlabel('频率 (Hz)');
ylabel('幅值');
```
### 解释
1. **参数设置**:定义了模拟信号的参数和采样频率。
2. **生成模拟信号**:使用 `exp` 和 `sin` 函数生成模拟信号。
3. **采样**:根据不同的采样频率对模拟信号进行采样。
4. **计算FFT**:使用 `fft` 函数计算每个采样信号的频谱。
5. **频率轴**:计算每个采样信号的频率轴。
6. **绘制图形**:使用 `subplot` 函数将所有图形排列在一起,便于观察比较。
运行上述代码后,您将看到六个子图,分别显示不同采样频率下的时域信号和频域频谱。这有助于验证时域采样定理。
阅读全文