Matlab-時序篇(二)

對于時間序列的分析,掌握了采樣定理和窗函數(shù)、以及熟悉了某種頻譜分析方法后,再來看看Matlab中到底是如何調(diào)用函數(shù)就能實現(xiàn)分析過程的,才能更有效地便于認識分析結(jié)果,而不是停留在知其然的過程,更需要知其所以然。
下面給出幾個比較常見的頻譜分析函數(shù)(pwelch、periodogram、cwt)進行講解:
[pxx,f] = pwelch(x,window,noverlap,nfft,fs,[spectrumtype],‘ConfidenceLevel’,probability);
%此函數(shù)對應使用Welch平均功率譜圖法
%返回值pxx和f默認是功率譜密度(psd)和頻率帶
%f也可變化為w,即輸出圓頻率(有w=2pi·f的關系)
%spectrumtype:默認是‘psd’,可選擇‘power’,返回功率譜(power)
%x:進行功率譜估計的有限長輸入序列
%window:指定窗函數(shù),默認值為hamming窗,可置空
%noverlap:指定分段重疊的樣本數(shù) ,如果noverlap=L/2,則可得到重疊50%的Welch法平均周期圖
%nfft:DFT的點數(shù), nfft> x的長度,默認值為256
%fs :繪制功率譜曲線的采樣頻率,默認值為1
% ‘ConfidenceLevel’:置信度,顯示置信度為propability*100%的結(jié)果值
[pxx,f] = periodogram(x,window,nfft,fs,[spectrumtype],‘ConfidenceLevel’,probability);
%此函數(shù)對應使用周期圖功率譜密度估計法
%返回值pxx和f默認是功率譜密度(psd)和頻率帶
%f也可變化為w,即輸出圓頻率
%spectrumtype:默認是‘psd’,可選擇‘power’,返回功率譜(power)
%x:進行功率譜估計的有限長輸入序列
%window:默認值為矩形窗,可指定
%nfft:DFT的點數(shù), nfft> x的長度,默認值為256
%fs :繪制功率譜曲線的采樣頻率,默認值為1
% ‘ConfidenceLevel’:置信度,顯示置信度為propability*100%的結(jié)果值
[wt,f,coi] = cwt(x, ‘wname’,fs);
%此函數(shù)對應使用一維連續(xù)小波變換
%返回值wt、f和coi默認是小波結(jié)果(Amp)、頻率、影響錐
%這個影響錐是由于邊緣效應產(chǎn)生,此區(qū)域可信度低
%如果要進行繪制PSD或者Power,需要對wt的結(jié)果再做處理
%f也可變化為period,即輸出周期
%x:進行小波變換的有限長輸入序列
%wname:默認為Morse小波,也可以選擇‘a(chǎn)mor’和‘bump’,分別對應Morlet和Bump小波
%fs :繪制功率譜曲線的采樣頻率,默認值為1
事實上,我們的實測時間序列并不是完美的,倒都是有很多周期、非周期信號的疊加,如果選擇合適的頻率段信號進行分析,通常也是需要思考的過程。摘取頻率段信號的過程叫做濾波,即把非“關心”的頻率段信號過濾,但是任何濾波方法都會帶來一定的影響,尤其是“端部畸變”,所以需要結(jié)合與原始數(shù)據(jù)的時間圖或頻譜圖對比進行。
濾波有三種:

當然,也可以使用fdesign.lowpass/highpass/bandpass。此外,matlab也提供濾波器設計,結(jié)合使用design+filter。具體過程如下所述:
d = fdesign.bandpass(‘Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2’,0.04,0.06,0.09,0.125,0.9,0.25,2,Fs);
%設置帶通濾波器,這些值最好從Amp頻譜得到
%設置好后,可用design設計濾波函數(shù)
%而后通過filter濾波
Hd=design(d)
X_new=filter(Hd,x)
%已知通帶范圍,也可直接使用bandpass濾波
X_new=bandpass(x,[low_f,high_f],Fs)
%lowpass、highpass同理
%這里給出的例子都只是最初步的,詳細了解請再自行學習
下面,給出實踐中調(diào)用plomb和cwt處理太陽總輻射量(濾波前和濾波后)的結(jié)果圖(摘錄自
J. Zhao, H. Lin,? J. Liu & Y. Han, 2019, JOAA),如下:


廣義的“時間序列”:對同一個量,只要有先后順序的序列。
看待問題,當主觀直覺走不通的時候,找找別的路,從不同的角度看看。就像頻譜圖中的時間序列往往就告訴了你不同尋常的信息。但是,這工具得到的結(jié)果是否可靠、有意義,是值得商榷的。所以在選擇工具、路徑的方法上,需要各種不同方法和結(jié)果之間的對比,從而選擇“最優(yōu)組合”,而不是一味去相信任何一種方法。
畢竟,適合一個人的不一定適合所有人,那對于任何一組時間序列,也是如此。但在用之前,請一定一定要注意結(jié)果的單位是否是正確的,千萬不要牛頭配馬嘴,最后四不像。程序在你手中,你需要讓她/他可控,而不是讓她/他失控。
與君共勉。