2019年2月16日 星期六

離散傅立葉轉換後頻譜功率計算: 負頻成分的考量 DFT/FFT Scale Factor 2/N or N for Spectrum Power Calculation?

        如何分辨你是硬體工程師還是射頻工程師呢? 一個開玩笑的分法硬體工程師吃飯工具是示波器oscilloscope,射頻工程吃飯的工具是頻譜分析儀Spectrum Analyzer,雖然是開玩笑但身為一個射頻從業人員要跟頻譜分析儀人機一體才對。

      這兩台儀器雖然說一個是量測時域一個是量測頻域,但新型態的頻譜分析儀或叫做訊號分析儀(Signal Analyzer)骨子裡都是量測時域(Time Domain),其實現實的訊號都是所謂的時域訊號,只是高頻訊號很難直接量測,所以才會用接收機先降頻後在處理,但現在高階的示波器(Oscilloscope)的取樣率(Sampling Rate)與頻寬都相當高,已經有高達100G/s的機器出現,直接進行時域量測後進行傅立葉轉換(Fourier Transform) 不就可以得到頻譜訊號嗎?

複數型傅立葉轉換Complex Discrete Fourier Transform

        (離散)傅立葉轉換DFT幾乎存在我們生活周遭,手機拍照影像處理辨識,聲音處理,與5G通訊都少不了他,他是個資料處理的過程,把原本量測到的時域訊號轉換到另外一個頻域訊號,如果有N個取樣資料,轉換到另外一個平面也會得到N點數據。而且可以進行逆轉換Inverse DFT, 如果原本資料是頻率訊號也可以透過inverse DFT得到時域訊號,有興趣可以參考這上一篇文章。

在現實(Real)的世界裡,意識虛幻(imaginary)的存在, 現代通訊基礎傅立葉轉換Fourier Transform與正交分頻工多OFDM - MacGyFu的文章 - 知乎

https://zhuanlan.zhihu.com/p/630216431

 


      學習DFT手邊我們用Microsoft Excel裡面有內建的傅立葉轉來觀察一個Sinusoid Wave 弦波訊號來進行傅立葉轉換,給入一個Vp = 1V的弦波訊號,取樣點數為N=16點,負載電阻為,功率大小可以見單計算出為0.5W27dBm.




        上圖Excel進行FFT轉出來可以觀察F(1/t)index = 1 index=14有值 (8),這時候我們要正規化大小,除以N = 16得到後就可以得到以下頻譜訊號index=1index=14有一正弦波Vp=0.5,有學過傅立葉轉換都會知道時域訊號轉成頻域訊號,如果頻率為f的正弦波訊號 sinusoid wave在頻率軸上正頻+f 與負頻 -f都會出現(數學上)


        因為Fourier Transform只是改變訊號的表達形式,(任何週期訊號都可以用不同頻率的弦波組成),所以時域訊號0.5W 27dBm拆成頻率訊號功率要守恆 Power Conservation,也就是負頻那一跟訊號是真的不能忽略它。


        計算一下會發現頻譜正頻率與負頻率為0.125WPower Sum只有21+3dBm = 24dBm. 這與時域訊號的結果不符合,少了一半的功率?



功率合併:Voltage Sum or Power Sum Scale Factor 2xN

     
        這時候我們在從新檢視剛剛計算的問題點,剛剛計算是分個頻率點分開計算後,然後"Power Sum"起來,也就是朗朗上口的0dBm + 0dBm = 3dBm,但真正要計算功率是要Voltage Sum後再進行平方運算,但如果兩個訊號正交Orthogonal,就可以分開計算Power Sum。例如
10MHz  0dBm + 20MHz 0dBm  Total Power = 3dBm



        剛剛的計算中是把兩個頻率當作Orthogonal來處理,我們在看一下剛剛的k*n/N,當k=1k=(N-1)也就是所謂的負頻部分,在數學符號上面就是相差一個"-"負號。
        在計算頻譜密度Power Spectral這兩個訊號頻率是一樣,所以在計算上面Voltage要先相加後在計算功率(voltage sum )

 


        所以我們從新排列一下,x1+x15, x2+x14, x3+x13...因為時域訊號轉出來大小會對稱,所以最後可以簡化成2倍,也就是計算係數上面常看到可以實部訊號為2/N,這也反應功率只能反應出正頻率的部分。




特殊案例 k=0 and N/2 when N is even 


        以上舉的案例都是成雙成對,所以頻譜功率計算Vrms都可以寫成以下:



但有兩個成分需要注意一下:

第一: k=0有直流成分:

k=0也就是直流的成分,下面我們演練一個直流1V的傅立葉轉換的結果,結果只有在index = 0 的時候有值 16,也就是所謂的DC成分,這時候時域的功率為V^2/R = 1W, X[0]只需要乘以Scale Factor 1/N即可。



第二: k= N/2 Nyquist Frequency有值的情況

 

     另外一個特例是當N為偶數的時候,可以看到每個人都成雙成對,但是最後一個N/2 (也稱為Nyquist Frequency)就只有單影一人,而且FFT的條件必須為N^2 2, 4, 8, 16, 32,也就是只要是FFT都會遇到這個孤單的N/2 Nyquist Frequency



        這個問題也從過年困擾到現在,Nyquist Theorem告訴至少要一半的取樣率才能還原訊號,如果時域訊號為1/2 Sampling Rate也就是1, -1, 1, -1...........
這時候進行傅立葉轉換會在N/2 index = 8產生16這個值,正規化後為16/16=1V. 但這時候Vrms如果取弦波的訊號Vrms的計算方式,會得到:


 

    從時域訊號1, -1, 1…進行FFT轉換頻譜只有在頻率index=8f=8/16=2有一根頻率訊號Vp=1V,時域下的功率為1W,但頻率軸計算為0.5W,這與時域訊號計算到的功率 1W 又少了一半0.5W,難道又是躲在負頻要用,但…..等等就只有n=8有訊號,要找誰加去?

    這點其實是Nyquist 取樣的限制,可以從V(k)Waveform功率計算其實與一個方波訊號是無法區分出來,也就是在時序計算的時候是再算一個方波訊號,其實跟只有k=0只有直流成分類似,功率都會是1W不是0.5W

  

IFFT 反相傅立葉轉換


        那其他頻率呢? 這裡換各方向先給定頻率F(k)數值在利用IFFT(inverse FFT)轉成時域訊號,在index = 7與對應的負頻率index=9填入0.5,也就是0.5*16=8)index=7Nyquist 頻率小一點,轉出來頻率功率與頻率功率守恆都是0.5W,但轉出來的時域波形怎麼看都不向一個正弦波(sine wave)……




     傅立葉轉是個雙向轉換函數,也就是說V(k)在進行FFT轉換會得到原本頻譜的訊號,那這看起來不像正弦波的波形不應該有很多頻譜成分嗎?

     其實這是取樣速率的關係,上面F(k=7)等校起來就是頻率為f=7/16=0.4375,在相同時間T內,因為只有採樣16個點,每一點都在訊號上,都因為採樣點數太少所以肉眼看起來就不像一個正弦波。



      下麵是k=3, f=0.187case,雖然奇數頻率都長得很奇怪,但當目標頻率是0.2Nyquist頻率以下的時候,肉眼才比較能夠辨識出原始的訊號,你看不出來其實DSP也大概看不出來,所以如果示波器要直接暴力FFT成頻譜來用,一般的3GHz訊號那取樣速率至少也要20G/s解析下來的訊號才會比較向個傳統頻譜分析儀。



傅立葉頻譜功率FFT Power Spectrum 


        整理一下頻譜功率計算,當採樣k=0k=15,功率計算都是類似直流功率,其他點數為正弦波計算方法,最後整理如下。



      最後用一個類似Pulse的訊號4V,經過FFT能量會平均拆分到每個頻率點,利用上面公式的計算可以得到頻譜的能量分佈,從時域功率到頻域功率總和是相等的。





    

2019年2月1日 星期五

可靠性測試HAST 溫度超過100C的相對溼度如何控制?

溫溼可靠度測試

        電子產品在上市前都會進行一連串的可靠性測試來確保產品的使用壽命時候能夠超做2年5年或10年以上,但現在電子產品生命週期都很短,可能少過半年就會退出市場,不可能花超過1年的時間驗證測試後再上市,實務會透過增加溫度與濕度的條件來加速產品老化,常見會聽到THB或稱為雙85測試,溫度與相對溼度分別為85C與85%來加速產品老化,一般標準是要實行1000小時來確保產品可以在正常環境溫度與濕度下使用10年。

        用1000小時約1.5個月的時間來預估10年聽起來相當划算,但如果出了問題在進行除錯每次的週期就會間隔2個月以上,所以後面大家會了縮短這個時間,就有人想說那就把溫度或濕度在拉高看看一致性,於是HAST (Highly Accelerated Temperature/Humidity Stress Test),目前一般常見的是用溫度/相對溼度 130C/85% 96hrs來取代THB 溫度/相對溼度85C/85% 1000hrs的測試

資料來源ESPEC

飽和水氣壓Saturated Vapor Pressure

         在討論相對濕度Relative Humidity RH的時候,要先知道飽和水汽壓Saturated Vapor Pressure,大家應該都有聽過高山煮飯的時候,水的沸點溫度會比較低,所以要用壓力鍋煮飯。
        下圖是水的三象圖,水的沸點會與壓力有關,大氣壓力單位Pa(帕),標準大氣壓力為
101325帕,也就是101.325千帕 (kPa),所以在平地上水沸騰的溫度為100C,當海拔拉高的時候,大氣壓力變小,這時候沸點的溫度會降低,也就是你看水滾了其實還不到100C,當然你可以反向來看,當把壓力加大的時候,水的沸點也會超過100C,這也是壓力鍋的原理,在燉煮食物的時候可以加速的原因。
資料來源Wikipedia
        那飽和水氣壓Saturated Vapor Pressure是什麼? 如果在一個密閉鍋具,壓力與大氣壓力相同,壓力太大水分子或空氣分子會由壓力閥排出,當我們加熱到100C的時候,這時候的相對溼度會到達100%,但是並不是整個氣體分子都是Water,水分子的壓力會與溫度有關,這個我們就稱為飽和水汽壓。


資料來源https://www.engineeringtoolbox.com/water-vapor-saturation-pressure-air-d_689.html

        由上表可以知道100C時候的飽和水汽壓為100.446kPa密度為0.59kg/m^3,這時候的飽和蒸汽壓其實會等於大氣壓力(相當接近),如果底部還有水整個空間中的氣體會被水分子佔據,在持續加熱過程多出來的水分子會由壓力閥排出。

壓力鍋原理

       這時候如果持續加熱只會持續將液態水轉換成水分子然後由壓力閥排出,如果想要增加溫度,就必須調整壓力閥的壓力,如果調整到990.022kPa,也就是加熱過程水分子無法排出,導致壓力增加所以水的沸點提高,最後溫度會提升到180C左右才會有沸騰的現象,在持續加熱多出來的水分子還是會由壓力閥排出。
        因為水的溫度會比平常100C來的高,也增加了燉煮的時間,但這無論壓力是100kPa(標準大氣壓),或加壓的條件下以上的條件這時候相對濕度都是接近100%,那如何達成溫度超過180C相對溼度為85%的條件?

相對溼度Relative Humidity

        這時候就要先理解一下什麼是相對濕度,如果THB雙85的測試,可以查表得知飽和的水氣壓為57.8kPa,所以控制空間中的水分子比例到49.1 (85%),也就是我們所謂的相對濕度85%,這個執行條件大多在標準大氣壓力下執行,所以水氣壓力的氣壓都遠小於100C.




https://www.test-navi.com/eng/research/handbook/pdf/07_TheConceptOfRelativeHumidityInHAST.pdf

HAST Chamber 濕度控制

 
       所以如何控制溫度超過100C時候的相對濕度? 以剛剛壓力鍋的例子,控制壓力與溫度,就可以直接得到飽和水汽壓(RH 100%),這時候控制空間中的溫度與壓力,就可以得到對應的相對濕度。

https://www.test-navi.com/eng/research/handbook/pdf/07_TheConceptOfRelativeHumidityInHAST.pdf

        所以如何達成溫度100C以上相對濕度的控制,其實答案就在你家的廚房,你需一個可以控制壓力與精準溫度的壓力鍋。

熱門文章