AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

時間序列去趨勢化和傅里葉變換

來源: 責編: 時間:2023-08-14 22:00:43 390觀看
導讀在計算傅里葉變換之前對信號去趨勢是一種常見的做法,特別是在處理時間序列時。在這篇文章中,我將從數學和視覺上展示信號去趨勢是如何影響傅里葉變換的。這篇文章的目的是讓介紹理解什么是常數和線性去趨勢,為什么我們使

在計算傅里葉變換之前對信號去趨勢是一種常見的做法,特別是在處理時間序列時。在這篇文章中,我將從數學和視覺上展示信號去趨勢是如何影響傅里葉變換的。SZ528資訊網——每日最新資訊28at.com

這篇文章的目的是讓介紹理解什么是常數和線性去趨勢,為什么我們使用它們,以及它們是如何影響信號的傅里葉變換的。SZ528資訊網——每日最新資訊28at.com

傅里葉變換快速回顧

我們將使用傅里葉變換的如下定義:對于輸入序列x[n],當n=0到n時,傅里葉變換的第k個系數為以下復數:SZ528資訊網——每日最新資訊28at.com

圖片SZ528資訊網——每日最新資訊28at.com

常量去趨勢

序列x[n]可以分解如下:將其寫成兩個信號的和:“常數部分”等于信號的平均值,“平均值周圍的可變性”部分給出實際信號與其平均值之間的差值:SZ528資訊網——每日最新資訊28at.com

圖片SZ528資訊網——每日最新資訊28at.com

對于所有樣本n,我們有:SZ528資訊網——每日最新資訊28at.com

圖片SZ528資訊網——每日最新資訊28at.com

首先,求x均值的傅里葉變換。SZ528資訊網——每日最新資訊28at.com

圖片SZ528資訊網——每日最新資訊28at.com

這是一個簡單的序列,所以在k=0處x的均值為0,在其他地方的值也為0。SZ528資訊網——每日最新資訊28at.com

圖片SZ528資訊網——每日最新資訊28at.com

使用下面代碼繪制所有指數也可以看到為什么它們的和總是為0(除了k=0)。SZ528資訊網——每日最新資訊28at.com

import numpy as np import matplotlib.pyplot as plt  N = 10 ns = np.arange(N)  fig, axes = plt.subplots(1, N//2+1, figsize=(18,8), sharex=True, sharey=True)  for k in range(0, N//2+1):    eiks = np.exp(-2*1J*np.pi*ns/N*k)    pretty_ax(axes[k])    plot_sum_vector(eiks, axes[k])    axes[k].set_title(f'k={k}')    axes[k].set_aspect('equal') fig.suptitle(f'Complex plot of the $e^{{-2i/pi kn/N}}$ families')

圖片SZ528資訊網——每日最新資訊28at.com

現在我們把x的傅里葉變換寫成這樣,分為兩部分:SZ528資訊網——每日最新資訊28at.com

圖片SZ528資訊網——每日最新資訊28at.com

分解x的傅里葉變換,結果是2個傅里葉變換的和:“可變性”部分的傅里葉變換,以及k=0時等于平均值的系數。SZ528資訊網——每日最新資訊28at.com

也就是說x的傅里葉變換等于其可變性在均值附近的傅里葉變換的和,再加上除k = 0處之外的序列,這個序列都為0,所以他的均值是x。SZ528資訊網——每日最新資訊28at.com

這就常數去趨勢,是在進行傅里葉變換之前去除信號的均值。對于傅里葉系數,就傅里葉系數而言,它對應于將k = 0系數設置為0。SZ528資訊網——每日最新資訊28at.com

k = 0的系數始終等于信號的平均值,可以使用下面方法證明:SZ528資訊網——每日最新資訊28at.com

圖片SZ528資訊網——每日最新資訊28at.com

線性去趨勢

方法與前面相同:將輸入信號寫為2個部分的和:“線性”部分,以及圍繞該線性部分的其余變化:SZ528資訊網——每日最新資訊28at.com

圖片SZ528資訊網——每日最新資訊28at.com

這里的線性部分是從最小二乘擬合計算。利用指數,可以將線性部分寫為:SZ528資訊網——每日最新資訊28at.com

圖片SZ528資訊網——每日最新資訊28at.com

其中b是信號的平均值。讓我們來看看它的傅里葉變換:SZ528資訊網——每日最新資訊28at.com

圖片SZ528資訊網——每日最新資訊28at.com

線性部分的傅里葉變換為,給定傅里葉變換的線性性質:SZ528資訊網——每日最新資訊28at.com

圖片SZ528資訊網——每日最新資訊28at.com

線性去趨勢包括在進行傅里葉變換之前去除x的線性部分:它從結果中去除aFT(n)+b項,其中a是常數因子(對應于線性擬合的斜率),FT(n)是線性序列[0,1,…]的傅里葉變換,b是信號的平均值(因此第一個傅里葉系數將為0,就像常數去趨勢一樣)。SZ528資訊網——每日最新資訊28at.com

python代碼

在Python中使用numpy和scipy實現非常簡單。SZ528資訊網——每日最新資訊28at.com

Scipy在它的signal 包中提供了detrend函數,帶有一個類型參數來指定我們是想讓信號保持常量趨勢還是線性趨勢。SZ528資訊網——每日最新資訊28at.com

在下面的例子中,創建了一個長度為20個樣本的信號,其中包含一個前導系數為2的線性部分,一個噪聲,一個偏移量為4的正弦部分。SZ528資訊網——每日最新資訊28at.com

import numpy as np from scipy.signal import detrend import matplotlib.pyplot as plt  N = 20 # create a sample signal, with linear, offset, noise and sinus parts ys = np.arange(N) * 2 + 4 + np.random.randn(N) + 4*np.sin(2*np.pi*np.arange(N)/5) # constant and linear detrend ys_c = detrend(ys, type='constant') ys_l = detrend(ys, type='linear')  fig, axes = plt.subplots(1, 2)  ax = axes[0] ax.plot(ys, label='raw') ax.plot(ys_c, label='constant-detrended') ax.plot(ys_l, label='linear-detrended') ax.legend() ax.set_title('Input signal')  ax = axes[1] # we use rfft since our input signals are real ax.plot(np.abs(np.fft.rfft(ys))) ax.plot(np.abs(np.fft.rfft(ys_c))) ax.plot(np.abs(np.fft.rfft(ys_l))) ax.set_title('Module of Fourier-transform')

圖片SZ528資訊網——每日最新資訊28at.com

在左邊我們有原始輸入信號,以及它的常數去趨勢和線性去趨勢版本。SZ528資訊網——每日最新資訊28at.com

常數去趨勢有效地去除信號的平均值,使其在0附近居中。線性去趨勢不僅去掉了信號的平均值,而且還去掉了它的線性趨勢(又名“直線斜率”)。從視覺上看,在線性去趨勢信號上比在原始信號上更容易發現正弦部分。SZ528資訊網——每日最新資訊28at.com

右邊是每個信號的傅里葉變換模塊:如果不去除趨勢,我們得到藍色模塊。使用常數去趨勢法去除平均值可以有效地將0系數設置為0,這在大多數情況下使得圖表更容易分析。自線性去趨勢的結果是最好的:輸出傅里葉系數很好地顯示了輸出頻譜中的頻率,線性去趨勢的主要優點是它大大減少了頻譜泄漏。SZ528資訊網——每日最新資訊28at.com

線性信號的傅里葉變換

對于不同的K值,我們可以很容易地畫出線性信號Kn (K為斜率)的傅里葉變換:SZ528資訊網——每日最新資訊28at.com

import numpy as np import matplotlib.pyplot as plt  N = 10 ns = np.arange(N) Ks = [-5, 2, 5]  fig, axes = plt.subplots(len(Ks), N//2+1, figsize=(18,8), sharex=True, sharey=True, gridspec_kw={'hspace':0, 'wspace':0})  for i, K in enumerate(Ks):    xs = K*np.arange(N)    for k in range(0, N//2+1):        Zs = xs * np.exp(-2*1J*np.pi*ns/N*k) / N        ax = axes[i, k]        pretty_ax(ax)        plot_sum_vector(Zs, ax)        ax.set_aspect('equal')        ax.set_xlabel(f'k={k}')    axes[i, 0].set_ylabel(f'K={K}') fig.tight_layout()

圖片SZ528資訊網——每日最新資訊28at.com

對于給定的k值,用紅色箭頭表示的傅里葉系數總是對齊的,并且等于一個比例。所以輸出頻譜中被去掉的部分總是序列[0,1,…N]的傅里葉變換的部分,其比例因子由線性擬合的斜率給出。SZ528資訊網——每日最新資訊28at.com

總結

在這篇文章中,我們介紹了常量和線性去趨勢:它們分別由去除輸入信號的平均值或線性擬合組成。在計算傅里葉變換之前的預處理步驟有助于使輸出譜更容易解釋。SZ528資訊網——每日最新資訊28at.com

去除信號的平均值使第0個系數為0。結果圖更容易檢查,因為大多數情況下,平均值與頻譜的其余部分相比可能相當大。如果我們去掉這個系數,y軸的尺度就更容易設定。SZ528資訊網——每日最新資訊28at.com

線性去趨勢除了去掉平均值也去掉了信號中的總體趨勢,這通常是原始信號的主導部分,這樣可以去掉其他成分例如季節行為等,所以如果需要對季節性進行分析還需要另外的處理。SZ528資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-5701-0.html時間序列去趨勢化和傅里葉變換

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: SpringBoot獲取Request的三種方法!

下一篇: 前端如何安全的渲染HTML字符串?

標簽:
  • 熱門焦點
  • 石頭智能洗地機A10 Plus體驗:雙向自清潔治好了我的懶癌

    一、前言和介紹專為家庭請假懶人而生的石頭科技在近日又帶來了自己的全新旗艦新品,石頭智能洗地機A10 Plus。從這個產品名上就不難看出,這次石頭推出的并不是常見的掃地機器
  • 把LangChain跑起來的三個方法

    使用LangChain開發LLM應用時,需要機器進行GLM部署,好多同學第一步就被勸退了,那么如何繞過這個步驟先學習LLM模型的應用,對Langchain進行快速上手?本片講解3個把LangChain跑起來
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準追劇女孩們的古偶劇集,2021年有優酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 中國家電海外掘金正當時|出海專題

    作者|吳南南編輯|胡展嘉運營|陳佳慧出品|零態LT(ID:LingTai_LT)2023年,出海市場戰況空前,中國創業者在海外紛紛摩拳擦掌,以期能夠把中國的商業模式、創業理念、戰略打法輸出海外,他們依
  • 阿里瓴羊One推出背后,零售企業迎數字化新解

    作者:劉曠近年來隨著數字經濟的高速發展,各式各樣的SaaS應用服務更是層出不窮,但本質上SaaS大多局限于單一業務流層面,對用戶核心關切的增長問題等則沒有提供更好的解法。在Saa
  • 三星推出Galaxy Tab S9系列平板電腦以及Galaxy Watch6系列智能手表

    2023年7月26日,三星電子正式發布了Galaxy Z Flip5與Galaxy Z Fold5。除此之外,Galaxy Tab S9系列平板電腦以及三星Galaxy Watch6系列智能手表也同期
  • iQOO 11S或7月上市:搭載“雞血版”驍龍8Gen2 史上最強5G Soc

    去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,iQOO 11不僅全球首發2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競屏,同時在快充
  • 2299元起!iQOO Pad明晚首銷:性能最強天璣平板

    5月23日,iQOO如期舉行了新品發布會,除了首發安卓最強旗艦處理器的iQOO Neo8系列新機外,還在發布會上推出了旗下首款平板電腦——iQOO Pad,其最大的賣點
  • 電博會與軟博會實現"線下+云端"的雙線融合

    在本次“電博會”與“軟博會”雙展會利好條件的加持下,既可以發揮展會拉動人流、信息流、資金流實現快速交互流動的作用,繼而推動區域經濟良性發展;又可以聚
Top