从FFT读取频率
10次观看(过去30天)
显示较旧的评论
我想读取以下程序的所有峰的频率,以下程序没有正确读取它,而不是给予100,因此它给出它的输出为360 400,请帮助我如何获得频率的值
FS = 65536;%采样频率(Hz)ts = 1 / fs;%采样间隔(秒)fn = fs / 2;%奈奎斯特频率(Hz)l = 16384;%信号长度(样本)T = [0:(L-1)] * TS;%时间向量(SEC)S = COS(2 * PI * 100 * T);%信号(100Hz)图(1)图(S)FTS = FFT(S,FS)/ L;%实验#1 fv = linspace(0,1,FIX(FS / 2)+1)* fn;IV = 1:长度(FV);[Papfts,IDX] = MAX(ABS(FTS(IV))* 2);%找到最大和索引图(2)
图(FV,ABS(FTS(IV))* 2)轴([0 500 ylim])网格
f = fs / 2 * linspace(0,1,l / 2 + 1);[B,IX] =排序(2 * ABS(FTS(1:L / 2 + 1)));%顺序幅度A1 = B(端);第一峰值A2 = B的%幅度(结束-1);第二峰值F1 = F的%幅度(Ix(端));第一峰f2 = f的%频率(ix(端-1));第二峰的%频率bfloor = 0.1;%bfloor是最小幅度值(忽略小值)幅度= b(b> = bfloor)%找到bfloor频率上方的所有幅度= f(ix(1 +末端磁数(幅度):端))%频率山顶
关于uzmeed
0评论
答案(2)
youssef khmou.
2018年1月27日
程序的第一部分是正确的,结果是100 Hz:
FS = 65536;%采样频率(Hz)
ts = 1 / fs;%采样间隔(秒)
fn = fs / 2;%奈奎斯特频率(Hz)
l = 16384;%信号长度(样本)
t = [0:(l-1)] * ts;%时间向量(秒)
s = cos(2 * pi * 100 * t);%信号(100 hz)
图(1),绘图,
FTS = FFT(S,FS)/ L;%实验#1
Fv = Linspace(0,1,FIX(FS / 2)+1)* Fn;
IV = 1:长度(FV);
[Papfts,IDX] = MAX(ABS(FTS(IV))* 2);%找到最大和索引
图(2)
图(Fv,ABS(FTS(IV))* 2),
轴([0 500 ylim]),网格;
频率值是
>> Fv(IDX)