在 MATLAB 中,傅里叶变换(Fourier Transform)、滤波器设计以及快速傅里叶变换(FFT)
是非常常见的信号处理操作。下面我们将逐一进行这些算法的仿真设计。
### 1. 傅里叶变换
傅里叶变换将时域信号转换为频域信号。MATLAB 中使用`fft`函数来计算快速傅里叶变换。
#### 示例代码
```matlab
% 生成信号
Fs = 1000; % 采样频率
T = 1/Fs; % 采样周期
L = 1500; % 信号长度
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(t, X);
title('时域信号');
xlabel('时间 (秒)');
ylabel('幅值');
% 计算傅里叶变换
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('频域信号');