如何在MATLAB中编一个FFT的程序,使编写的这个FFT程序可以求出任意给定的一个三角函数的主频率?
2条回答
LLZWHS 2023-10-17 20:36关注function main() % 生成三角函数信号 fs = 1000; % 采样频率 t = 0:1/fs:1-1/fs; % 时间序列 f_signal = 50; % 三角函数的频率(示例中取50 Hz) signal = sin(2*pi*f_signal*t); % 调用自定义的FFT函数 calculate_frequency(signal, fs); end function calculate_frequency(signal, fs) N = length(signal); % 信号长度 fft_result = fft(signal, N); % 对信号进行FFT % 计算频谱 f = (0:N-1)*(fs/N); % 频率序列 magnitude = abs(fft_result)/N; % 幅值谱 magnitude = magnitude(1:N/2); % 仅取一半频谱 % 找到主频率 [~, index] = max(magnitude); % 找到幅值最大的频率 main_frequency = f(index); disp(['信号主频率为: ', num2str(main_frequency), ' Hz']); end此示例包括两个函数,main 用于生成三角函数信号并调用 calculate_frequency 函数进行FFT分析。calculate_frequency 函数对信号进行FFT,计算频谱并找到主频率。您可以修改 f_signal 参数来设置三角函数的频率。在主函数中,取频率为50Hz的三角函数作为示例。
解决 无用评论 打赏 举报