用MATLAB画扫频信号
时间: 2024-05-05 13:21:03 浏览: 177
Sine Sweep(正弦扫频信号) MATLAB实现
5星 · 资源好评率100%
以下是一个MATLAB的示例代码,生成并绘制扫频信号:
```matlab
% 定义扫频信号的参数
f_start = 1000; % 起始频率(Hz)
f_stop = 5000; % 终止频率(Hz)
t_duration = 1; % 信号持续时间(s)
fs = 44100; % 采样率(Hz)
% 生成扫频信号
t = 0:1/fs:t_duration-1/fs; % 时间向量
f = linspace(f_start, f_stop, length(t)); % 频率向量
sweep_signal = sin(2*pi*f.*t); % 扫频信号
% 绘制扫频信号的时域波形和频谱
figure;
subplot(2,1,1);
plot(t, sweep_signal);
xlabel('Time (s)');
ylabel('Amplitude');
title('Time-domain waveform of sweep signal');
subplot(2,1,2);
N = length(sweep_signal); % 信号长度
freq = (-fs/2:fs/N:fs/2-fs/N); % 频率向量
sweep_spec = fftshift(abs(fft(sweep_signal, N))); % 频谱
plot(freq, sweep_spec);
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Frequency-domain spectrum of sweep signal');
```
在上面的代码中,我们使用 `sin` 函数生成扫频信号,并使用 `linspace` 函数生成频率向量。然后,我们绘制了扫频信号的时域波形和频谱图。
阅读全文