请用matlab编写代码
时间: 2023-07-02 13:23:10 浏览: 83
好的,下面是用MATLAB编写的代码:
```matlab
% 生成信号数据
Fs = 2000; % 采样率
t = 0:1/Fs:1-1/Fs;
x = sin(2*pi*50*t) + sin(2*pi*120*t);
x = x + 2.5*randn(size(x)); % 添加高斯白噪声
% FFT变换
N = length(x);
yf = fft(x);
xf = linspace(0, 1/(2*(1/Fs)), N/2);
% 绘制FFT图像
figure;
plot(xf, 2/N*abs(yf(1:N/2)));
xlim([0 100]);
xlabel('Frequency (Hz)');
ylabel('Amplitude');
title('FFT');
% 检测工频干扰
freq = 50; % 工频干扰频率
index = round(freq*Fs) + 1; % 工频干扰在FFT中的下标位置
disp(['工频干扰幅值:', num2str(2/N*abs(yf(index)))]);
```
这段代码与Python版本的代码思路相同,只是使用了MATLAB的语法和函数。您可以将代码复制到MATLAB环境中运行,就可以得到FFT图像和工频干扰的幅值。
阅读全文