g2(t)为时间轴上(-1,1)的矩形门信号,利用 MATLAB 实现对信号 g2(t)的采样,显示原始信号与采样信号的时城和频城波形。
时间: 2024-11-03 07:18:28 浏览: 14
matlab-北斗B1I路信号扩频码
在MATLAB中,你可以通过以下步骤来实现对g2(t)这个时间轴上(-1,1)范围内的矩形门信号的采样,并展示原始信号和采样信号的时间域和频域波形:
1. **生成矩形门信号**:
```matlab
% 定义时间范围
t = -1:0.01:1; % 时间步长可以根据需要调整
% 矩形门信号函数,这里假设它是全1在-0.5到0.5之间,其他为0
g2 = zeros(size(t));
g2(t >= -0.5 & t <= 0.5) = 1;
```
2. **设置采样频率和采样点**:
```matlab
fs = 1000; % 例如,如果希望每秒1000次采样,可根据实际需求调整
Ts = 1/fs; % 采样周期
n_samples = length(t); % 总采样点数
% 创建等间距的时间向量用于采样
sample_times = (0:n_samples-1)*Ts;
```
3. **采样信号**:
```matlab
g2_sampled = interp1(t, g2, sample_times, 'linear'); % 线性插值法采样
```
4. **绘制原始信号与采样信号**:
```matlab
% 绘制时间域波形
figure;
subplot(2,1,1)
plot(t, g2, 'b', 'LineWidth', 2) % 原始信号
hold on
plot(sample_times, g2_sampled, 'ro') % 采样信号(红色圆点)
title('Time Domain Waveforms')
xlabel('Time (s)')
ylabel('Amplitude')
% 绘制频域波形
figure;
subplot(2,1,2)
NFFT = 2^nextpow2(n_samples); % 对数据取合适的窗长以得到更准确的频谱
[frq, Pxx] = pwelch(g2, [], Ts, [], NFFT); % 使用Welch's method计算功率谱密度
plot(frq, abs(Pxx), 'b', 'LineWidth', 2) % 原始信号的频谱
xlim([-fs/2 fs/2]) % 设置频率范围
hold on
[frq_sampled, Pxx_sampled] = pwelch(g2_sampled, [], Ts, [], NFFT);
plot(frq_sampled, abs(Pxx_sampled), 'ro') % 采样信号的频谱
title('Frequency Domain Waveforms')
xlabel('Frequency (Hz)')
ylabel('Power Spectral Density')
legend('Original Signal', 'Sampled Signal')
```
阅读全文