27 lines
669 B
Matlab
27 lines
669 B
Matlab
function Omega=WindMainFreq(x,fs,fmax);
|
|
% function Omega=WindMainFreq(x,fs,fmax);
|
|
%INPUT: x = signal; fs = sample frequency; fmax = max frequency for
|
|
%mainfrequency
|
|
% OUTPUT = mainfrequency Omega
|
|
% CALSS: spectrum2.m
|
|
% PLOT : with no outtput [] generates plot
|
|
|
|
if nargin<3 || isempty(fmax), fmax = 4; end
|
|
n=10*length(x);
|
|
ws=fix(length(x)/2);
|
|
no=fix(0.99*ws);
|
|
|
|
[p,f]=spectrum2(x,n,no,hamming(ws),fs,'mean');
|
|
p=p/sum(p);
|
|
aa=find(f>0.5 & f<fmax);
|
|
[a,b]=max(p(aa));
|
|
Omega=f(b+aa(1)-1);
|
|
if nargout ==0;
|
|
ii=find(f(:,1)<=fmax);
|
|
f=f(1:length(ii),:);
|
|
p=p(1:length(ii),:);
|
|
plot(f,p,'b');hold on;
|
|
plot(Omega,max(p(aa)),'m.','MarkerSize', 15); %check w0
|
|
end
|
|
|