matlab中sin(20πt)在采样频率为15hz,20hz,50hz时采样所得序列的频谱代码
时间: 2024-10-23 12:09:41 浏览: 59
在MATLAB中,要计算不同采样频率下`sin(20πt)`信号的频谱,你可以使用`fft`函数。这里是一个示例代码,展示了如何分别计算采样频率为15Hz、20Hz和50Hz时的频谱:
```matlab
% 定义信号参数
f_signal = 20; % 频率为20Hz的基础信号
time_vector = linspace(0, 1, 1000); % 创建一个1秒长的时间向量,采样点足够多以便观察细节
% 三种不同的采样频率
fs_list = [15, 20, 50]; % 采样频率列表
for i = 1:length(fs_list)
fs = fs_list(i);
% 计算间隔时间间隔 dt
dt = 1 / fs;
% 根据采样频率调整时间向量的长度
t_sampled = time_vector * floor(1/dt) + dt*(0:1/fs:size(time_vector, 1)-1);
% 创建信号
signal = sin(20*pi*t_sampled);
% 对信号进行FFT计算
spectrum = abs(fft(signal));
% 绘制频谱图,注意频率轴需要转换为赫兹
freq_axis = (0:length(spectrum)-1)*(fs/(length(t_sampled)-1));
plot(freq_axis, spectrum);
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title(sprintf('Spectrum for Sinusoid @ %g Hz (Sample Rate: %g Hz)', f_signal, fs));
hold on;
end
hold off;
```
运行这段代码后,你会看到三个图,分别对应于15Hz、20Hz和50Hz的采样频率,显示了不同采样率下信号的频谱分布。
阅读全文