maltab 采集数据的FFT变换代码
时间: 2023-11-28 13:03:58 浏览: 142
FFT_Matlab_fft_
以下是使用MATLAB进行数据采集和FFT变换的示例代码:
```matlab
% 设置采样频率和采样时间
fs = 1000; % 采样频率
T = 1/fs; % 采样时间间隔
% 设置采样点数和时间向量
L = 1000; % 采样点数
t = (0:L-1)*T; % 时间向量
% 生成信号并添加噪声
S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); % 信号
X = S + 2*randn(size(t)); % 带有噪声的信号
% 绘制信号图像
figure;
plot(1000*t(1:50),X(1:50));
title('带有噪声的信号');
xlabel('时间 (ms)');
ylabel('幅值');
% 计算FFT并绘制频谱图像
Y = fft(X);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = fs*(0:(L/2))/L;
figure;
plot(f,P1);
title('单边幅值谱');
xlabel('频率 (Hz)');
ylabel('|P1(f)|');
```
这段代码首先设置了采样频率和采样时间间隔,然后生成了一个包含两个正弦波的信号,并添加了高斯白噪声。接着,计算了信号的FFT变换,并绘制了频谱图像。注意,由于FFT变换产生的频谱是双边的,因此需要将其转换成单边幅值谱。
阅读全文