fs=2500% 你给的100ms换算成采样频率是10HZ,这不符合采样定理,建议提高采样频率
f=50
N=256
n=1:N
t=(n-1)/fs
Am= [30.6 6 15 5 10 18]% 这个是幅值,如果是单频率,一个数即可
PH= [60 30 90 90 90 90]% 这个是相位,如果是单频率,同上
m = 6% 如果是单频率 取 1
x=zeros(1,N)
PH = PH/180*pi% 如果给的是角度,需要换算成弧度
for k=1 : m
x=x+Am(k)*cos(2*pi*f*k*t+PH(k))% x就是信号采样后的数据,就是你需要的FFT输入数据
end
将一个声音信号输入到单片机里面,可以通过麦克风,通常小小的那种咪头(耳机线常佩戴的)那种就可以,它的输出是电压量(声音信号--电信号),你可以用单片机去采样/或者AD芯片对其采样再把数据送个单片机进行处理,单片机内部的处理就可以说是跟matlab里面的处理类似了,而且都是用c语言的,相信很容易上手,祝好运。比如做64点的,采样频20K,频率分辨为20K/64=312所以第一个点是312* 0HZ
第二个点是 312*1HZ
第三个点是 312*2HZ
.......
FFT后应该是各个频率的幅值的吧,如果你的信号频率集中,幅值最大的对应的点的频率就相近你要求的频率
51单片机是不是太慢了或存不下数据。。求程序参考。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)