谢谢你回答我的问题:),我将这段代码,但实际上我的使命是为每个窗口EMG信号分割成1秒然后计算中值频率,相对力量,连贯性,RMS和零交叉率信号改变它的烧焦对于每一个窗口,我使用for循环1秒帧,第二步是实现上面的代码在for循环?> > frame_duration = 1;> > frame_len = frame_duration * fs;> > n =长度(val);> > num_framed =地板(n / frame_len);> > fny = f / 2;> > k = 1: num_frames frameval ((k - 1) * frame_len + 1: frame_len * k);帧瓦尔((k - 1) * frame_len + 1: frame_len * k);x_mags = abs (fft (val));bin_vals = (0: n - 1); fax_hz=bin_vals*fs/2; plot(fax_hz , x_mags) does it works ?!
中值频率matlab代码是什么?
22日视图(30天)
显示旧的评论
大家好,,我的问题是什么(MF) mat-lab代码中值频率,如果中值频率定义为把magnitude-spectrum的频率大小相等的两个部分(曲线下的面积频率低于MF的曲线下的面积等于频率高于MF。首先我有级频谱的情节我使用trapz (x, y)整个曲线下的面积,现在我需要一个代码,知道什么是频率将面积划分为两个相等的部分吗? !
12个评论
明星黾
2016年3月3日
在我的回答中的代码,向量(实际上,推导的采样间隔)是用来计算采样频率,采样频率,频率向量。
采样间隔,
“t”
我的代码中定义为:
Ts =意味着(diff (t));
和采样频率为:
Fs = 1 / Ts;
我总和他们在一条语句的代码我的回答。
接受的答案
明星黾
2016年3月2日
你需要使用
cumtrapz
功能:
t =…;%的时间向量
s =…;%信号向量
Fs = 1 /意味着(diff (t));%采样频率
Fn = f / 2;%奈奎斯特频率
L =长度(t);
FTs = fft (s) / L;
阵线= linspace(0, 1,修复(L / 2) + 1) * Fn;%频率向量
4 = 1:长度(艘);%指数向量
CumAmp = cumtrapz(阵线、abs (FTs (Iv)));%将FFT振幅
MedFreq = interp1 (CumAmp阵线,CumAmp(结束)/ 2);%使用“interp1”找到“曼氏金融”
图(1)
情节(阵线,abs (FTs (Iv)) * 2,“- b”)%绘制FFT
持有在
情节(CumAmp阵线,“g”)%的阴谋振幅累积积分
情节([MedFreq MedFreq], ylim,“- r”,“线宽”,1)%的阴谋中值频率
持有从
网格
我测试了这个存档信号,所以工作的代码。它应该使用你的信号没有修改。您可以删除的策划累积振幅积分(绿线),因为它是只有正确地说明计算中值频率。