91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .m
    金幣: 1
    下載: 1 次
    發布日期: 2021-09-03
  • 語言: Matlab
  • 標簽: matlab??譜分析??

資源簡介

研究過程中實現的,分享出來。 是一種多種分析圖繪制合一的完整函數并對生成譜進行自動的peaks篩選輸出。已經形成自定義函數,放到特定路徑下即可直接調用,配有較詳細的使用說明 style=1,plot amplitude value spectrum???%style=2,plot power spectrum;%style=3,plot loglog PSD %style=4,pwelch with segements number 此繪圖函數可以輸入多種調用參數,如'FrequencyBan','Findpeaks','MinPeakHeight','MinPeakProminence','MinPeakDistance','Threshold','WindowNum','Overlap','Nfft', 'ustar'等參數控制

資源截圖

代碼片段和文件信息

function?[pkslocspk_wpk_p]?=?hua_fft(Xfsstylevarargin)
%?fs?Sampling?fequency?of?signal
%?hua_fft(Xfsstylevarargin)
%style=1plot?amplitude?value?spectrum;
%style=2plot?power?spectrum;
%style=3plot?loglog
%style=4pwelch?with?segements?number?equals?fsplot?loglog
%style=other?plot?both
%?===========varargin======================
%@@‘FrequencyBan‘[f1f2]
%When?style=1?varargin?input?parameters?can?be?used?to?control?the?frequency?bands
%f1?is?start?frequency
%f2?is?end?frequency
%@@‘Findpeaks‘?is?used?to?control?the?peaks?finding
%@@‘MinPeakHeight‘value
%?please?refer?help?‘findpeaks‘?with?the?same?parameter
%@@‘MinPeakProminence‘value
%?please?refer?help?‘findpeaks‘?with?the?same?parameter
%@@‘MinPeakDistance‘value
%?please?refer?help?‘findpeaks‘?with?the?same?parameter
%@@‘Threshold‘value
%?please?refer?help?‘findpeaks‘?with?the?same?parameter
%?value?=?1e-4?can?exclude?the?flat?peak
%@@‘WindowNum‘value
%windows?number?equal?fs?as?default?if?no?input
%@@‘Overlap‘value
%input?overlap?from?33%~50%?here?take?50%?overlap?as?default
%@@‘Nfft‘?value
%input?number?of?DFT?points?no?less?than?256
%@@‘ustar‘?value
%input?ustar?and?normalize?the?PSD?to?PSD*fs/ustar^2

%http://blog.sina.com.cn/s/blog_574d08530100qu18.html

nfft=?2^nextpow2(length(X));%set?step?length?automatically
%nfft=1024;%set?step?length?manually
%y=X-mean(X);
dtr_X=detrend(X);
y_ft_0=fft(dtr_Xnfft);%DFTget?amplitude?vaule?distribution
y_ft?=?y_ft_0(1:nfft/2);?%?throwing?away?half?of?X?:?Nyquist?criteria

Amp?=?2*abs(y_ft)./nfft;???????%Amplitude
mx?=?(abs(y_ft)).^2;????%one-sided?PSD
y_E=(y_ft.*conj(y_ft))./nfft;%compute?the?energy?spectrum
y_p=y_ft.*conj(y_ft)./nfft;??????%Power
fn=fs*(0:nfft/2-1)./nfft;??%frequency?serie

ArgStr?=?varargin;

switch?style
????case?1
????????if?nargin==3
????????????Xvar?=?fn;
????????????Yvar?=?Amp;
????????????plot(XvarYvar);%use?matlab?help?method?plot?FFT
????????????ylabel(‘Amplitude‘);xlabel(‘Frequency‘);%title(‘Spectrum?of?amplitude?value‘);
????????????%plot(y_fabs(y_ft(1:nfft/2)));%another?method?to?plot?FFT
????????else
????????????index=?find(strcmp(‘FrequencyBan‘ArgStr));
????????????if?~isempty(index)
????????????????v_f1=ArgStr{index+1};
????????????????v_fn=ArgStr{index+2};
????????????????ni=round(v_f1?*?nfft/fs+1);
????????????????na=round(v_fn?*?nfft/fs+1);
????????????????Xvar?=?fn(ni:na);
????????????????Yvar?=?abs(y_ft_0(ni:na)*2/nfft);
????????????????loglog(XvarYvar);
????????????end
????????end
????????if?nargin?>?3
????????????[arg_strcom4]=?SetArgStr(ArgStr);
????????????eval_str=?[‘[pkslocspk_wpk_p]=findpeaks(YvarXvar‘arg_strcom4‘‘‘Annotate‘‘‘‘extents‘‘‘‘WidthReference‘‘‘‘halfheight‘‘);‘];
????????????eval(eval_str

評論

共有 條評論