---
# System prepended metadata

title: 基於WSPR資料集預測台灣地區次佳(Second Best)工作頻率
tags: [貴綸論文]

---

###### 貴綸論文

# 貴綸論文筆記


# 第一章 研究背景
1. 電離層（白天夜晚）
![image](https://hackmd.io/_uploads/rJpOn3mIJl.png)

3. 高頻通訊
4. 太陽黑子對高頻通信的影響
5. MUF，LUF，OWF
> ### MUF與LUF
> 原有題目為使用WSPR資料集預測LUF最低可用頻率
> 但在此篇論文有說明MUF,OWF,LUF之間的相互關係
> 其中使用Rec533與ASAPS模型預測之MUF與OWF作為標準答案
> 並分別使用理論方程式與論文中提到之相關係數公式與模型預測之值做比較（MSE）
> 因此LUF使用Rec533模型預測之LUF
> 而不是WSPR資料集
> 因此需重新定義WSPR的目的
> 
> Hadi KA-K, Abdulkareem MD. The Suggested Reciprocal Relationship between Maximum, Minimum and Optimum Usable Frequency Parameters Over Iraqi Zone. Baghdad Sci.J [Internet]. 2020 Sep. 8 [cited 2024 Jan. 31];17(3(Suppl.):1058. Available from: https://bsj.uobaghdad.edu.iq/index.php/BSJ/article/view/4247
> 
> ### Optimum Working Frequency (OWF) 理論方程式
> 在許多論文中都有提到OWF大約等於MUF * 0.85
> 其中有一篇為美國海軍的論文
> 
> https://navytribe.com/wp-content/uploads/2015/11/navedtra-14092.pdf
> Navy Electronics Technician: Volume 7 - Antennas and Wave Propagation (Navedtra 14092) (Nonresident Training Course),1995
> 
> ### LUF model計算方式
> 此篇論文其中有提到LUF會根據不同的傳輸距離會有不同的公式
> 主要以3300km做劃分
> 其中參數包含太陽仰角（四季變化），天線增益等等
> 
> T. N. Roy,Specification for Lowest Usable (LUF) Frequency Model,1990
> https://apps.dtic.mil/sti/pdfs/ADA222114.pdf
6. SNR值



# 研究動機
1. 副頻的目的（因主頻範圍太窄）
2. 目前現在預測軟體都是由電離層推算，並沒有實際資料，因此本論文希望藉由台灣實際高頻通信傳輸之SNR值來預測副頻範圍
3. 相較於REC533與ASAPS，較貼近實際情況
4. 預測頻率範圍更廣，避免最佳工作頻率（OWF）因大氣環境因素效率不佳之情況



# 研究方法
## WSPR資料集
WSPR（Weak Signal Propagation Reporter）是一種無線電通信協議和系統，用於測量和研究長距離的無線電波傳播。它由業餘無線電操作員和研究人員使用，通過傳輸非常低功率的無線電信號，並檢測信號的傳播距離和質量。

WSPR信號使用的是非常低的功率（通常在1瓦或更少），並且能夠傳輸到數千公里之外。系統會自動記錄接收到的信號，並將數據上傳到一個全球性的伺服器，從而讓研究人員和無線電愛好者分析無線電波在不同天氣條件、時間和地理位置下的傳播特性。

這種技術對於了解無線電波如何在大氣層中傳播、探索長距離通信、甚至是無線電電離層的研究都有很大幫助。
### WSPR SQL資料庫查詢
由於之前使用的爬蟲下載網址壞掉
改由直接從SQL資料庫中抓取資料
![image](https://hackmd.io/_uploads/S1HOom22A.png)


查詢需要的columns與日期
time:時間
rx_sign:接收站台呼號
rx_lat:接收站台緯度
rx_lon:接收站台經度
rx_loc:接收站台Maidenhead代碼
distance:訊號傳輸距離(<500)
frequency:傳輸頻率(7.0386MHz)
power:傳輸功率
snr:訊雜比

資料格式如下
![image](https://hackmd.io/_uploads/rJadj7h3C.png)


### 資料前處理
1. 頻率分類
![image](https://hackmd.io/_uploads/BkNtjQnn0.png)

![image](https://hackmd.io/_uploads/ByFtjXh30.png)


2. 傳輸距離分纇
![image](https://hackmd.io/_uploads/B1J9oXh3A.png)

![image](https://hackmd.io/_uploads/SyFcimh30.png)


BX4ACP:778組資料

3. 四分位數過濾離群值
![image](https://hackmd.io/_uploads/BkbooQ2nC.png)
包含把過差SNR值刪除（雜訊>1000dbm，snr=-20左右）


4. 以每小時為單位取SNR中位數
5. SNR值換算至125W之情況（假定通訊機功率為125W）
    #### 換算方式
    先求出背景雜訊(dbm)，再將功率代入125W（51dbm），求出新的SNR值
    由於WSPR使用之功率(1W)與實際通訊機功率(125W)不同

    因此根據訊雜比訊號轉換方式：

    ![image](https://hackmd.io/_uploads/SyqijQ3hR.png)

    WSPR瓦數
    ![image](https://hackmd.io/_uploads/S1XnoX23C.png)


    freq:14, power:27(dB) = 0.5W
    freq:7, power:30(dB) = 1W

    dB-瓦數換算器
    https://www.digikey.tw/zh/resources/conversion-calculators/conversion-calculator-dbm-to-watts
    ![image](https://hackmd.io/_uploads/rk62sX2h0.png)

    ![image](https://hackmd.io/_uploads/HJD6i7hhC.png)


    SNR瓦數轉換後結果
    PL03qk_PL04pv 花蓮-桃園
    ![image](https://hackmd.io/_uploads/SkaTiQnnC.png)


## 將時間序列補齊至一個月
6. 計算缺失值
![image](https://hackmd.io/_uploads/ByUCjXn3C.png)

7. 缺失值插補(<50%，隨機森林插補演算法 )
![image](https://hackmd.io/_uploads/B1oRsQ3hR.png)






# 論文研讀
# DLienar:Are Transformers Effective for Time Series Forecasting?
https://arxiv.org/abs/2205.13504 
# Informer：用於長序列時間序列預測的新型Transformer
論文連結：https://arxiv.org/abs/2012.07436
1. 長序列時間序列預測問題
長序列時間序列預測（Long sequence time-series forecasting，LSTF）問題在現實世界中經常遇到，比如電力消耗規劃。LSTF期待模型能夠擁有較高的預測容量（capacity），以便於能夠捕捉輸入與輸出之間的長程依賴關係。Transformer模型相較於其他模型提高了預測的容量，然而其本身也受到諸多限制以致於難以直接應用於LSTF，比如二次時間複雜度、高內存佔用以及encoder-decoder架構所固有的一些限制。
LSTF存在於多個領域，比如網絡監控、能源管理、經濟與金融以及疾病傳播分析等，在這些場景下需要依據過去的大量數據來對未來做出長期預測。現有模型在長序列預測問題上能力不足，舉例來說，使用LSTM來進行時間序列預測時，模型預測短序列（比如12 points, 0.5 days）時能夠取得較高的精度，而預測長序列（比如480 points, 20 days）時會出現預測速度的下降和MSE損失的上升，尤其是48 points這個分界線上，模型的預測速度急劇下降，損失急劇上升，LSTM對長序列預測任務來說是失敗的：
![image](https://hackmd.io/_uploads/H1Dkn7hhA.png)

上述模型的失敗表明需要提高模型對長序列的容量以應對LSTM問題，具體來說需要模型具備以下能力：

    1. 良好的長程對齊（long-range alignment）能力
    2. 對長序列的輸入和輸出的有效處理。

2. Transfomer模型的優勢與局限之處
Transfomer模型相較於RNN結構模型表現出了更強的捕獲長程依賴關係的能力，其中很重要的一個原因是Transformer應用self-attention機制將信號傳播的最大路徑長度降低到了最短的![image](https://hackmd.io/_uploads/H1bj6mn30.png)
並且避免了循環架構（recurrent structure），也就是說Transfomer模型具備能力1，因此Transfomer對於解決LSTF問題表現出巨大的潛力。
    然而不幸的是Transfomer模型對於長度為的序列來說需要的二次計算複雜度和內存使用，也就是說它不具備能力2。雖然在一些NLP任務上取得了較好的成效但是也消耗了大量的資源，尤其對於現實世界中的LSTF問題來說，Transfomer模型所需的資源（比如訓練時需要多GPU以及部署時昂貴的花費）是難以承受的，這是將Transfomer應用於LSTF的瓶頸所在。
Transformer在應用於LSTF時具體會有以下3種限制：
    1. self-attention的二次計算複雜度。self-attention的原子操作——規範點積
（canonical dot-product）導致每層的時間複雜度和內存使用是![image](https://hackmd.io/_uploads/SkGpTQ32R.png)
)。
    2. 的堆疊在輸入長序列時受到內存限制。encoder/decoder的![image](https://hackmd.io/_uploads/S1366Q320.png)
層堆疊架構會導致在輸入長序列時內存使用為![image](https://hackmd.io/_uploads/BJf0aX3nC.png)

，這一點限制了模型輸入長序列時的可拓展性（scalability）。
    3. 對長序列輸出進行預測時的速度驟降。Transformer的動態解碼（dynamic decoding）過程導致在對長序列輸出進行推斷時速度緩慢，實際效果可能和前面例子裡的基於RNN的模型一樣差。

## 貢獻
上述前人的相關工作只關註解決限制1，而沒有著手解決限制2和3。為了增強Transformer模型對長序列的容量，此論文研究了self-attention機制的稀疏性，將會針對所有的3個限制來提出各自的解決方案。具體來說，此論文的貢獻如下：

1. Informer模型增強了對LSTF問題的預測容量，這一點驗證了Transformer-like的模型的潛在價值，即其能夠捕獲長序列時間序列輸入與輸出之間的長程依賴關係
2. 提出了ProbSparse Self-attention機制，能夠替換規範self-attention，並且達到了![image](https://hackmd.io/_uploads/r17C3m33A.png)的時間複雜度和內存使用量
3. 提出了self-attention蒸餾（ Self-attention Distilling）操作，能夠在堆疊的層中提煉主要的注意力得分，大幅降低了總的空間複雜度，達到![image](https://hackmd.io/_uploads/r1CA37hnA.png)

4. 提出了生成式的decoder（Generative Style Decoder）來獲取長序列輸出，只需要一個前向的步驟即可輸出整個解碼序列，同時避免了推斷期間的累積誤差傳播（cumulative error spreading）。
此論文的2、3、4，3個貢獻分別針對前面提出的Transformer的3個限制。
# Autoformer論文研讀
![image](https://hackmd.io/_uploads/B1bg2Q2hR.png)

1. transformer-based model 在時序預測任務上常採用 point-wise 的方式，因計算過程冗長，而後有 Informer 基於時間稀疏性提出 ProSparse self-attention 加以改善，但仍舊是以點作為考量，除了無法很好的去捕捉時序資料的特性外，sparse 的方式也會造成部分資訊的流失。為此，藉由觀察到處於不同週期相同位置的子序列往往會具有相同趨勢的特性， Autoformer 提出 series-wise 的 Auto-Correlation Mechanism 取代 self-attention，除了能夠更好的去捕捉時序間的特性外，也大幅減少了運算的時間，時間複雜度從 O(L²) 降至 O(LlogL)。
2. 時序資料具有季節性 (Seasonal) 與週期性 (Trend -cyclical)，前者為長期反應後者則為短期的波動，因為無法獲得未來的資料，對於時序資料的分析往往+只停在前處理的步驟。在未來資料的波動會與過去有所關聯的前提下， Autoformer 提出 Series-Decomposition Block， 將時序分析細化成模型架構內的 operation，藉以提取隱藏層內的時序趨勢。
3. 經實驗測試，在六個 benchmark dataset 上效果均得到極大的提升。

### Series decomposition block

![image](https://hackmd.io/_uploads/rk8e3X2n0.png)

目的是將長期的時序資料拆分成 seasonal 與 trend-cyclical 兩部分，Series decomposition block 不只能夠提取輸入訊息的高階時序特徵，也能提取模型中間隱藏變量的高階時間訊息 (串接在 Auto-Correlation 後)。

![image](https://hackmd.io/_uploads/ryol2X330.png)

輸入資料 X∈ R^(L*d)， Xs、Xt ∈ R^(L*d) 則分別為分解出來的 seasonal 、trend-cyclical part，Series decomposition block 採取 moving average 的方式將 trend-cyclical part 平滑化藉以強調 seasonal part。在程式碼中，Xt 是將頭尾資料擴充後與 X 疊加，經過一個一維捲機後，透過 padding 維持序列長度，Xs 則是 X 與 Xt 相減後得到，輸出後兩者皆會保留前(L/2)資料，剩餘的部分Xt、Xs 各自用平均值、零做填補回原始資料長度，並輸入 encoder 中。

### Auto-Correlation Mechanism
![image](https://hackmd.io/_uploads/SkWbn7nh0.png)


基於在研究中發現週期間的子序列在相同的相位往往會具有相同的趨勢，Autoformer 改以計算 sub-series 間的相似度來代替 point-wise self-attention。上左圖為 encoder-decoder Auto-Correlation，Q 為上層 inner Auto-Correlation block 計算結果，K、V 為 encoder embedding，先將K、V resize 後，Q、K 經過快速傅立葉轉換 (FFT )，將時域訊號對應至頻域，內積後反轉回時域 (K 做共軛是為了方便反轉)。

# TimesFM論文研讀

## 摘要
這篇論文提出了一個專門為時間序列預測設計的基礎模型TimesFM。這個模型的零樣本預測性能在各種公開數據集上接近於當前最先進的監督預測模型的準確性。TimesFM基於解碼器樣式的注意力模型進行預訓練，使用一個由真實世界和合成數據組成的大規模時間序列語料庫。實驗表明，該模型可以在不同的領域、預測範圍和時間粒度上提供準確的零樣本預測。

### 1. 簡介
時間序列數據廣泛存在於各個領域，如零售、金融、製造、醫療和自然科學。在這些領域中，時間序列數據的預測是至關重要的。近年來，深度學習模型在預測豐富的多變量時間序列數據方面變得越來越受歡迎，經常超越傳統的統計方法。這篇論文的動機是借鑑自然語言處理（NLP）中大型語言模型的成功，設計一個能夠在未見數據集上進行零樣本預測的時間序列基礎模型。

### 2. 相關工作
過去十年中，深度學習模型在處理大規模訓練數據集方面顯示出強大的潛力，並在預測時間序列數據方面超越了傳統的統計方法。時間序列預測模型大致可以分為三類：
1. 本地單變量模型：包括ARIMA等傳統方法和非自回歸模型，如Prophet。
2. 全球單變量模型：如DeepAR，這些模型在許多時間序列上進行全局訓練，但在推理時僅使用其自身的過去數據和相關的共變量來預測未來。
3. 全球多變量模型：這些模型使用數據集中所有時間序列的過去數據來預測所有時間序列的未來。

### 3. 模型架構
TimesFM的核心在於兩個主要元素：
1. **大規模時間序列語料庫**：由真實世界和合成數據組成，確保了訓練所需的數據量和多樣性。
2. **解碼器樣式的注意力架構與輸入分片**：這種架構可以高效地在這個時間序列語料庫上進行預訓練。

### 4. 預訓練細節
模型的預訓練使用了一個包含大量時間點的數據集，參數規模為200M。在預訓練過程中，模型學習到了如何處理不同的預測歷史長度、預測長度和時間粒度。

### 5. 實驗結果
實驗結果表明，TimesFM在各種先前未見的預測數據集上提供了接近最先進監督方法的準確性。相比於大型語言模型如GPT-3，TimesFM在時間序列數據上的零樣本預測性能更優，同時成本也更低。

### 結論
TimesFM展示了在時間序列預測領域中，通過專門設計的基礎模型進行零樣本預測的可行性和有效性。這一研究為時間序列預測的未來應用提供了新的思路，尤其是在減少訓練負擔和計算需求方面具有顯著優勢。

## TimesFM模型架構與模型層詳細說明

### 模型架構概述
TimesFM（Time-series Foundation Model）是一種專為時間序列預測而設計的模型，主要由輸入層、堆疊的Transformer層和輸出層組成。

### 輸入層
輸入層的主要任務是將時間序列數據預處理成可以輸入到Transformer層的令牌。具體步驟如下：
1. **分割為非重疊的片段**：將輸入時間序列數據分割成連續的、非重疊的片段。
2. **殘差塊處理**：每個片段通過一個殘差塊處理成模型維度（model_dim）的向量。這個殘差塊本質上是一個具有跳躍連接的多層感知器（MLP）塊。
3. **添加位置編碼**：處理過的向量會加上對應的位置信息，這些位置信息來自於位置編碼（Positional Encoding）。
4. **生成輸入令牌**：每個片段會生成一個輸入令牌，總共有N = ⌊L/p⌋個輸入令牌，其中L是序列長度，p是片段長度。

### 堆疊的Transformer層
這部分是模型的核心，包含多層Transformer層，每層包括以下兩部分：
1. **多頭自注意力機制（Multi-head Self-Attention）**：每個輸出令牌只能關注在它之前的輸入令牌，這是一種因果自注意力（Causal Attention）。
2. **前饋神經網絡（Feed-Forward Network, FFN）**：這是一個全連接層，其隱藏層大小等於模型維度。

堆疊的Transformer層的主要超參數包括模型維度（model_dim）、層數（num_layers）和頭數（num_heads）。

### 輸出層
輸出層的主要任務是將輸出令牌轉換為預測值。具體步驟如下：
1. **殘差塊處理**：輸出令牌通過另一個殘差塊處理，生成預測值。
2. **輸出片段**：在訓練時，每個輸出令牌應能預測輸入片段之後的時間序列部分。這可以使輸入片段長度和輸出片段長度不必相等。

### 訓練過程中的掩碼策略
為了防止模型只學習特定長度的上下文，我們在訓練中使用了一種特定的隨機掩碼策略。這種策略使模型能夠看到從1到最大上下文長度的所有可能上下文長度。

![image](https://hackmd.io/_uploads/S1D73X3hC.png)



### 結論
TimesFM模型結合了多層的Transformer架構，利用殘差塊進行片段處理，並通過因果自注意力機制和前饋神經網絡進行預測。這種設計使其能夠高效地處理長時間序列數據，並在各種時間序列預測任務中表現優異。

## TimesFM 模型中的輸入層與輸出層的公式詳細說明：

### 輸入層
![image](https://hackmd.io/_uploads/rJR73X23R.png)


### 輸出層
![image](https://hackmd.io/_uploads/HJD4hQnnR.png)



## 公式中符號的詳細說明

### 輸入層公式

![image](https://hackmd.io/_uploads/SklrnQ23R.png)


### 輸出層公式

![image](https://hackmd.io/_uploads/rkFBnX22R.png)



### 符號總結
![image](https://hackmd.io/_uploads/HySL2XnnA.png)



## 實驗數據

### 預測比較

#### TimesFM
MAE_tfm:3.382
相關係數_tfm：0.188

![image](https://hackmd.io/_uploads/BJ3L3mh30.png)



#### Informer
MAE_inf:3.733
相關係數_inf：-0.133

![image](https://hackmd.io/_uploads/H1GPh722A.png)



整體趨勢TimesFM較為接近
MAE也相對較低

















## 補充
### 1.殘差塊（Residual Block）的功能
殘差塊（Residual Block）的功能主要是通過加入殘差連接（Residual Connection）來提高深層神經網絡的訓練效率和性能。以下是殘差塊在 TimesFM 模型中的功能和作用：

### 1. **引入殘差學習（Residual Learning）**
殘差塊的核心思想是讓每一層學習的是輸入和輸出的差異（殘差），而不是輸出本身。這樣做有助於避免梯度消失問題，特別是在深層網絡中。

### 2. **公式和解釋**
一個典型的殘差塊的公式可以表示為：
![image](https://hackmd.io/_uploads/H1Xtn72hC.png)



其中：
![image](https://hackmd.io/_uploads/SkvYh7n3A.png)



### 3. **功能**
- **減少梯度消失問題**：在反向傳播過程中，殘差連接使得梯度可以直接傳遞回較早的層，從而減少了梯度消失的風險。
- **促進網絡訓練**：殘差塊使得訓練更深層的網絡變得更加可行，因為它們可以學習更複雜的表示，而不會陷入訓練困難的問題。
- **提高收斂速度**：有了殘差連接，網絡在訓練過程中能夠更快地收斂，因為每一層只需學習輸入和輸出之間的殘差，而不是整體的輸出。

### 4. **在 TimesFM 中的應用**
![image](https://hackmd.io/_uploads/SJlAF2mh2R.png)



### 總結
殘差塊在 TimesFM 中的功能是通過殘差學習來提升深層網絡的訓練效率，確保模型可以有效處理長時間序列數據，並且在預測中保持高準確性和穩定性。


### 2.遮罩（masking）功能
在時間序列預測模型中使用遮罩（masking）主要有以下幾個原因：

### 1. **處理缺失值**
時間序列數據中經常會有缺失值。如果直接使用這些數據進行訓練，模型可能會受到缺失值的影響，導致性能下降。通過使用遮罩，可以標記哪些值是缺失的，模型可以忽略這些缺失值，不會受到它們的影響。

### 2. **因果性保證**
在時間序列預測中，我們希望模型只能使用過去的信息來預測未來，而不能“看到”未來的信息。遮罩可以用來阻止模型在預測過程中訪問未來的數據，從而保持因果性。這在使用自注意力機制（self-attention）時尤為重要，因為自注意力機制允許每個位置的輸出依賴於整個序列。

### 3. **加速訓練**
遮罩還可以用於控制訓練過程中不同樣本的有效長度。例如，當處理可變長度的序列時，較短的序列可以被填充到統一長度，但這些填充值應該被遮罩掉，防止影響模型訓練。這樣可以使批量訓練更加高效。

### TimesFM中的遮罩
在TimesFM模型中，遮罩主要用於以下兩個方面：

#### 輸入遮罩
輸入層公式中使用了遮罩來處理缺失值：

![image](https://hackmd.io/_uploads/Skr93m3hC.png)



#### 因果遮罩
在Transformer層中，因果遮罩用於確保模型在預測時只能使用過去的數據，而不能訪問未來的數據。這是通過因果自注意力機制實現的，每個位置的輸出只能關注它之前的輸入。

### 總結
遮罩在時間序列預測中扮演了關鍵角色，它可以：
- 處理缺失值，避免數據不完整影響模型性能。
- 保持因果性，確保模型在預測時不會使用未來的信息。
- 加速訓練，處理可變長度的序列。

這些功能確保了模型能夠在各種實際應用場景中表現出色。

## 數據集補充
![image](https://hackmd.io/_uploads/HJ3c3m3nA.png)



## self-attention
![image](https://hackmd.io/_uploads/ByLsnQh20.png)




## Muti-head self-attention
![image](https://hackmd.io/_uploads/r1ti3mn3A.png)


# 頻率轉換
## 流程

## Training
### Input
Rec533，7.04的SNR值
### GroundTruth
Rec533，2-15（0.1為間隔）的SNR值
### output
Rec533，2-15與7.04之間的關係
![image](https://hackmd.io/_uploads/rkXWy1uAR.png)




## Inference
### Input
wspr 7.04 SNR值（前處理過後）
![image](https://hackmd.io/_uploads/SkdqCAv0R.png)

### Output
WSPR 2-15(0.1為間隔)
![image](https://hackmd.io/_uploads/rkDJ1JO00.png)



## 副頻預測結果比較
分別預測白天晚上的SNR最好的頻率
由於白天時頻率低於10MHZ會被吸收
因此挑10-13MHZ區間的頻率
晚上時頻率高於10MHZ會被吸收
因此挑7-10MHZ區間的頻率

informer由於預測出的SNR值幾乎都在同個頻率
因此不太會浮動
導致預測出的副頻在同個時段中都是同個頻率
較不貼近現實

Timesfm由於預測出的SNR值變動較大
雖然沒辦法與現實完全貼近
但預測出的頻率較貼近現實
會隨著時間變動




