欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > 【MATLAB代码】FFT计算频率

【MATLAB代码】FFT计算频率

2024/10/28 5:06:57 来源:https://blog.csdn.net/m0_57407372/article/details/143107437  浏览:    关键词:【MATLAB代码】FFT计算频率
1、采样频率 F_{s} 的计算
dt = mean(diff(time));  % 计算时间间隔 (采样周期)
Fs = 1 / dt;            % 采样频率 (Hz)

通过时间数据 time 计算采样频率 F_{s}

time:从 CSV 文件中读取的时间列,

diff(time):计算时间数据中每个连续点之间的时间差,

mean(diff(time)):取所有时间差的平均值,得到采样周期 \Delta t

采样频率 F_{s}:是采样周期的倒数,表示每秒采集多少个数据点,单位是 Hz(赫兹)。

2. 获取 FFT 变换点数 N_{fft}
N_fft = 2^nextpow2(N);  % 获取大于或等于N的最小2的幂

 上述代码完全诠释了采样点数 N 与FFT变换点数 N_{fft} 之间的关系。

N :原始电压数据的长度

nextpow2(N) : 返回使 2^{K}\geqslant N的最小整数 k

N_{fft} : 用于 FFT 的变换点数,保证为 2 的幂次方

为了保证 FFT 计算的高效性,代码使用 nextpow2 函数将输入信号的长度调整为大于等于 N 的最接近的 2 的幂次方

3. 计算频率向量
f = (0:(N_fft/2-1)) * (Fs / N_fft);

频率向量 f 是 FFT 的输出中各个频率分量对应的频率值。具体来说,FFT 将时域信号转换为频域信号,生成从 0 Hz采样频率的一半(奈奎斯特频率) 的频率分量。

0:(N_fft/2-1):生成从 0 到 \frac{N_{fft}}{2}-1 的整数序列。这代表 FFT 计算结果中的正频率部分(因为 FFT 结果是对称的)。

Fs / N_fft频率分辨率(或称频率步长)。它表示在频域中每个 FFT 频率分量之间的间隔。公式为:

\Delta f=\frac{F_{s}}{N_{fft}}

频率公式:

对于第 k 个频率分量,频率 f_{k}​ 的计算公式为:

f_{k}=k\cdot \frac{F_{s}}{N_{fft}}        k=0,1,2,\cdots ,\frac{N_{fft}}{2}-1

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com