在fft图中标记出截止频率,用matlab编码实现
时间: 2023-05-26 12:04:51 浏览: 59
截止频率表示信号通过滤波器后被截断的频率。在FFT图中,截止频率可以通过峰值开始衰减的位置来确定。一般情况下,截止频率是滤波器的设计参数,因此可以直接计算出来。
在MATLAB中,可以使用以下代码实现:
```matlab
% 生成测试信号
fs = 1000; % 采样率
t = 0:1/fs:0.5; % 时间戳
f1 = 50; % 信号1频率
f2 = 150; % 信号2频率
x = 2*sin(2*pi*f1*t) + 3*sin(2*pi*f2*t); % 信号
% 取FFT,并绘制FFT图
N = length(x); % 信号长度
f = (0:N-1)*(fs/N); % 频率范围
X = abs(fft(x))/N; % 计算FFT
subplot(2,1,1)
plot(f,X) % 绘制FFT图
xlim([0 fs/2]) % 限定频率范围
% 计算截止频率
fc = 100; % 截止频率
fc_idx = find(f>=fc,1); % 寻找第一个大于fc的频率索引
% 在FFT图中标记截止频率
hold on
plot(f(fc_idx),X(fc_idx),'ro') % 在FFT图中标记截止频率
hold off
% 绘制原始信号
subplot(2,1,2)
plot(t,x)
xlabel('Time (s)')
ylabel('Amplitude')
```
运行代码后,可以得到以下结果:
![FFT with Cutoff Frequency](https://i.imgur.com/hlDyHCN.png)
在FFT图中,红色圆点标记出了截止频率。可以看到,信号通过滤波器后,高于100Hz的频率成分被截断了。在原始信号的图像中,可以看到截止频率左侧的频率成分被保留了下来,而右侧的频率成分被过滤掉了。