LUA脚本的好处是用户可以根据自己注册的一批API(当前TOOL已经提供了几百个函数供大家使用),实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多,所以在H7-TOOL里面被广泛使用,支持在线调试运行,支持离线运行。TOOL的LUA教程争取做到大家可以无痛调用各种功能函数,不需要学习成本。
H7-TOOL的LUA API手册发布V1.1,方便API检索查阅
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=122382

说明
实数FFT,支持32, 64, 128, 256, 512, 1024和2048点
LUA函数说明
output,re = arm_rfft_fast_f32(x, N)
返回值output,返回FFT幅值续列,个数是N/2,根据FFT幅值谱对称性,返回一半即可
返回值了,re = 1表示成功, re = 0表示失败
第1个参数x是要求FFT的数据序列
第2个参数N是数据序列长度,支持32, 64, 128, 256, 512, 1024和2048点
测试举例:
[Lua] 纯文本查看 复制代码 -- 参数设置
local Fs = 1024 -- 采样率
local N = 1024 -- 采样点数
-- 生成序列
local n = {} -- 采样序列
local t = {} -- 时间序列
local f = {} -- 频率序列
local output = {}
for i = 0, N-1 do
n[i+1] = i
t[i+1] = i / Fs
f[i+1] = i * Fs / N
end
-- 生成信号:直流分量 + 50Hz余弦波
local x = {}
local pi = math.pi
for i = 1, N do
-- x = 1 + cos(2*pi*50*t + pi/3)
x[i] = 1 + math.cos(2 * pi * 50 * t[i] + pi/3)
end
-- 打印结果验证
print("采样率 Fs = " .. Fs .. " Hz")
print("采样点数 N = " .. N)
print("信号时长 = " .. (N/Fs) .. " 秒")
output,re = arm_rfft_fast_f32(x, N)
output[1] = output[1] /2 -- 直流分量
for i=1, N/2, 1 do
s = string.format("%f, %f", x[i], output[i]/512)
print(s)
print_wave(s)
delayms(1)
end
|