最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

傅立葉變換前后的能量守恒問題

2022-09-04 09:45 作者:樂吧的數(shù)學(xué)  | 我要投稿

在通信系統(tǒng)的仿真中,我們經(jīng)常需要根據(jù)給定的信噪比(SNR: Signal Noise Ratio),為傳輸?shù)臄?shù)據(jù)加上"加性高斯白噪聲(Additive Guassian White Noise)"。但是,傳輸前的數(shù)據(jù),很多時候考慮的是頻域的相位,給定的待傳輸?shù)臄?shù)據(jù)需要經(jīng)過傅立葉反變換到時域,在時域增加噪聲,然后送給接收模塊做性能評估。
(錄制的視頻:https://www.bilibili.com/video/BV1kP411V7hq/
問題在于:無論是 Matlab 上,還是 Python 的 numpy 庫中,快速傅立葉變換和反變換,在變換的前后,都沒有保持能量守恒,這為定量地增加噪聲制造了一點小困難。本文試圖通過簡單的 QPSK 為例子,頻域分成 64 個頻點,經(jīng)過 ifft (快速傅立葉反變換)變到時域,然后定量地分析能量的變化情況.

頻域有 64 個頻點,我們在第二個頻點上發(fā)送一個信號,幅度為 1,相位為 %5Cfrac%7B%5Cpi%7D%7B4%7D,這個信號可以表示為 e%5E%7Bj%5Cfrac%7B%5Cpi%7D%7B4%7D%7D. 按照直觀的理解,我們發(fā)送的信號是:

e%5E%7Bj%5Cfrac%7B%5Cpi%7D%7B4%7D%7De%5E%7Bj2%5Cpi%5Cfrac%7B1%7D%7B64%7Dn%7D%20%3D%20e%5E%7Bj(2%5Cpi%5Cfrac%7B1%7D%7B64%7Dn%2B%5Cfrac%7B%5Cpi%7D%7B4%7D)%7D%20---------%E5%85%AC%E5%BC%8F%EF%BC%88%201%EF%BC%89


可以展開為:

e%5E%7Bj(2%5Cpi%5Cfrac%7B1%7D%7B64%7Dn%2B%5Cfrac%7B%5Cpi%7D%7B4%7D)%7D%20%3D%20cos(2%5Cpi%5Cfrac%7B1%7D%7B64%7Dn%2B%5Cfrac%7B%5Cpi%7D%7B4%7D)%2Bjsin(2%5Cpi%5Cfrac%7B1%7D%7B64%7Dn%2B%5Cfrac%7B%5Cpi%7D%7B4%7D)


可以很容易地看到,實部的最大值是 1.? 那么上面這個信號的功率,就是其模的平方,可以很容易看到,模的平方就是 1, 則其功率是 1.

我們來看一下用 ifft 之后的結(jié)果,64 個頻點上只有第二個頻點上有信號,其它頻點上沒有信

號,即是 0:

0%EF%BC%8C%20e%5E%7Bj%5Cfrac%7B%5Cpi%7D%7B4%7D%7D%2C0%2C0%2C%5Ccdots%2C0



總計 64 個.

用下面的 python 代碼來做 ifft:




畫出來的圖形如下:


可以看到,幅度的最大值不是 1,程序中打印出來的最大值為 0.015625 ! 為什么呢?我們來觀察一下 ifft 的公式:

x(n)%20%3D%20%5Cfrac%7B1%7D%7BN%7D%5Csum_%7Bk%3D0%7D%5E%7BN-1%7DX(k)e%5E%7Bj2%5Cpi%5Cfrac%7Bk%7D%7BN%7Dn%7D


其中 $N$ 是傅立葉反變換的長度。這個例子中,N=64.

x(n)%20%3D%20%5Cfrac%7B1%7D%7B64%7D%5Csum_%7Bk%3D0%7D%5E%7B63%7DX(k)e%5E%7Bj2%5Cpi%5Cfrac%7Bk%7D%7B64%7Dn%7D


在這個例子中,由于只有 X%5B1%5D%3De%5E%7Bj%5Cfrac%7B%5Cpi%7D%7B4%7D%7D,其它都是 0,上面公式中的求和項,就退化為之后 k=1參與了運算:

x(n)%20%3D%20%5Cfrac%7B1%7D%7B64%7DX(1)e%5E%7Bj2%5Cpi%5Cfrac%7B1%7D%7B64%7Dn%7D%20--------------%E5%85%AC%E5%BC%8F%202


公式 2 與 公式 1 比較,則可以看到,公式二 多了一個?%5Cfrac%7B1%7D%7B64%7D ,從圖中也可以看到,最高幅值是 %5Cfrac%7B1%7D%7B64%7D%3D0.015625.



討論到這里,似乎問題已經(jīng)解決了,但是,仔細(xì)看看, ifft 變換后幅度變?yōu)樵瓉碓O(shè)想的 64 分之一,那能量在轉(zhuǎn)換前和轉(zhuǎn)換后,是否保持一致呢?我們需要的是保持一致。



我們先從頻域看,64 個頻域信號的總能量,是每個頻率點上能量的和,即:%5Csum_%7Bk%3D0%7D%5E%7Bk%3D63%7D%7CX(k)%7C%5E2,這個能量是在一個 fft 對應(yīng)的時間上的,即 64 個采樣點內(nèi)的。則換算成功率,在頻域看到的功率為 :

%5Cfrac%7B%5Csum_%7Bk%3D0%7D%5E%7Bk%3D63%7D%7CX(k)%7C%5E2%7D%7B64%7D


我們只分析一個頻點,k=1,在頻域看,其能量為 1,這是 k=1這個頻率在一個fft對應(yīng)時間內(nèi)的能量。

?現(xiàn)在看matlab 和 python numpy 庫中 ifft 的變換公式:

x(n)%20%3D%20%5Cfrac%7B1%7D%7B64%7D%5Csum_%7Bk%3D0%7D%5E%7B63%7DX(k)e%5E%7Bj2%5Cpi%5Cfrac%7Bk%7D%7B64%7Dn%7D%3D%5Csum_%7Bk%3D0%7D%5E%7B63%7DX(k)%5Cfrac%7Be%5E%7Bj2%5Cpi%5Cfrac%7Bk%7D%7B64%7Dn%7D%7D%7B64%7D


那么,k=1 對應(yīng)的波形是:

%5Cfrac%7Be%5E%7Bj2%5Cpi%5Cfrac%7Bk%7D%7B64%7Dn%7D%7D%7B64%7D


那么,我們在 64個樣點內(nèi)計算一下能量:

%5Csum_%7Bn%3D0%7D%5E%7B63%7D%7C%5Cfrac%7Be%5E%7Bj2%5Cpi%5Cfrac%7Bk%7D%7B64%7Dn%7D%7D%7B64%7D%7C%5E2%3D%5Csum_%7Bn%3D0%7D%5E%7B63%7D%7C%5Cfrac%7B1%7D%7B64%7D%7C%5E2%3D%5Cfrac%7B1%7D%7B64%7D


可以看到,頻域的能量是 1,而時域的能量是 %5Cfrac%7B1%7D%7B64%7D,能量相差了 64 倍!

所以, ifft 變換,會導(dǎo)致能量降為轉(zhuǎn)換前的 64 分之一。同理,可以證明, fft 變換,會導(dǎo)致能量放大為變換前的64倍。

如果我們把傅立葉變換對的公式,稍微改變一下放大或者縮小的倍數(shù),則可以保證轉(zhuǎn)換前后的能量保持一致,即能量守恒:

FFT 變換:

X%5Bk%5D%20%3D%20%5Csum_%7Bn%3D0%7D%5E%7BN-1%7Dx(n)e%5E%7B-j2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7Dn%7D%20%3D%3D%3D%E5%8F%98%E4%B8%BA%3D%3D%3D%3D%3D%3E%0AX%5Bk%5D%20%3D%20%5Cfrac%7B1%7D%7B%5Csqrt%7BN%7D%7D%20%5Csum_%7Bn%3D0%7D%5E%7BN-1%7Dx(n)e%5E%7B-j2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7Dn%7D


IFFT 變換

x%5Bn%5D%20%3D%20%5Cfrac%7B1%7D%7BN%7D%20%5Csum_%7Bk%3D0%7D%5E%7BN-1%7DX(k)e%5E%7B-j2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7Dn%7D%20%3D%3D%3D%E5%8F%98%E4%B8%BA%3D%3D%3D%3D%3D%3E%0Ax%5Bn%5D%20%3D%20%5Cfrac%7B1%7D%7B%5Csqrt%7BN%7D%7D%20%5Csum_%7Bk%3D0%7D%5E%7BN-1%7DX(k)e%5E%7B-j2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7Dn%7D


使用上面修改過的公式,則可以保證能量前后保持一致。

有時候,我們不僅關(guān)心能量保持一致,還要關(guān)心這個信號的能量大小,例如我們?yōu)榱思尤胍欢ㄐ旁氡?SNR 的高斯白噪聲,需要知道信號的功率大小。

注意:后面討論的能量大小,功率大小,都是基于修改后的傅立葉變換的公式,即保證變換前后能量保持一致的。

在頻域看,一個頻率點的信號,假設(shè)其能量為 1 (一般情況下,例如 QPSK 調(diào)制,都是保持能量為 1 的),因為傅立葉反變換后,對應(yīng)到 N 個采樣點的時間,因此,其功率為: %5Cfrac%7B1%7D%7BN%7D.
?
在時域看,其對應(yīng)的波形為 :

%5Cfrac%7Be%5E%7B-j2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7Dn%7D%7D%7B%5Csqrt%20N%7D


其能量為(注意:為了與頻域保持一致,要注意求和的時間范圍是 N 個采樣點):
%5Csum_%7Bn%3D0%7D%5E%7BN-1%7D%7C%5Cfrac%7Be%5E%7B-j2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7Dn%7D%7D%7B%5Csqrt%20N%7D%7C%5E2%20%3D%201


其功率則為 %20%5Cfrac%7B1%7D%7BN%7D .



那么,如果在頻域上,只有一個頻率點上有信號,且頻域?%7CX(k)%7C%5E2 等于 1,則信號的功率就是 %5Cfrac%7B1%7D%7BN%7D, 則可以根據(jù) SNR 的公式,計算出來需要的噪聲的功率。如果 N 個頻點上,都有信號,且頻域?%7CX(k)%7C%5E2 等于 1,則其功率就是 1.


總結(jié)一下:本文的核心,是提醒注意用標(biāo)準(zhǔn)庫中的 FFT/IFFT 函數(shù)時,存在能量在變換前后不守恒的問題。



延伸閱讀:

??? 把傅立葉變換和反變換,看成是線性空間的向量,在坐標(biāo)軸上的坐標(biāo),坐標(biāo)軸就是線性空間的基,這些基的要求,除了要求任何兩個不相同的基之間是正交的,還需要每個基向量的長度為1.

??? 傅立葉變換中的 ?%5C%7B%5Cfrac%7Be%5E%7B-j2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7Dn%7D%7D%7B%5Csqrt%20N%7D%2Cn%3D0%2C1%2C2%2C...N-1%5C%7D 構(gòu)成一個合格的基向量,而 e%5E%7B-j2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7Dn%7D不是一個基向量,因為其長度是 %5Csqrt%20N.


我們來看一下傅里葉變換中基里面的各個向量(按照正確的方式來列舉的):

第一個向量:

k=0

%5B%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7B0%7D%7BN%7D0%7D%7D%7B%5Csqrt%20N%7D%EF%BC%8C%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7B0%7D%7BN%7D1%7D%7D%7B%5Csqrt%20N%7D%EF%BC%8C%5Cdots%2C%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7B0%7D%7BN%7D(N-1)%7D%7D%7B%5Csqrt%20N%7D%5D


第二個向量:

k=1

%5B%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7B1%7D%7BN%7D0%7D%7D%7B%5Csqrt%20N%7D%EF%BC%8C%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7B1%7D%7BN%7D1%7D%7D%7B%5Csqrt%20N%7D%EF%BC%8C%5Cdots%2C%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7B1%7D%7BN%7D(N-1)%7D%7D%7B%5Csqrt%20N%7D%5D



第三個向量:

k=2

%5B%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7B2%7D%7BN%7D0%7D%7D%7B%5Csqrt%20N%7D%EF%BC%8C%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7B2%7D%7BN%7D1%7D%7D%7B%5Csqrt%20N%7D%EF%BC%8C%5Cdots%2C%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7B2%7D%7BN%7D(N-1)%7D%7D%7B%5Csqrt%20N%7D%5D

。。。。



第 k+1 個向量:

k=k

%5B%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7D0%7D%7D%7B%5Csqrt%20N%7D%EF%BC%8C%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7D1%7D%7D%7B%5Csqrt%20N%7D%EF%BC%8C%5Cdots%2C%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7D(N-1)%7D%7D%7B%5Csqrt%20N%7D%5D.....



第 N 個向量:

k=N-1

%5B%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7BN-1%7D%7BN%7D0%7D%7D%7B%5Csqrt%20N%7D%EF%BC%8C%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7BN-1%7D%7BN%7D1%7D%7D%7B%5Csqrt%20N%7D%EF%BC%8C%5Cdots%2C%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7BN-1%7D%7BN%7D(N-1)%7D%7D%7B%5Csqrt%20N%7D%5D

每個基的模長都為 1:

%7C%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7D0%7D%7D%7B%5Csqrt%20N%7D%7C%5E2%20%2B%20%7C%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7D1%7D%7D%7B%5Csqrt%20N%7D%7C%5E2%2B%5Cdots%2B%7C%5Cfrac%7Be%5E%7Bj2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7D(N-1)%7D%7D%7B%5Csqrt%20N%7D%7C%5E2%20%3D%201


如果用 matlab 中 傅立葉變換的公式,一個向量是:

%5Be%5E%7Bj2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7D0%7D%EF%BC%8Ce%5E%7Bj2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7D1%7D%EF%BC%8C%5Cdots%2Ce%5E%7Bj2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7D(N-1)%7D%5D


則其模長為 N:

%7Ce%5E%7Bj2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7D0%7D%7C%5E2%20%2B%20%7Ce%5E%7Bj2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7D1%7D%7C%5E2%2B%5Cdots%2B%7Ce%5E%7Bj2%5Cpi%20%5Cfrac%7Bk%7D%7BN%7D(N-1)%7D%7C%5E2%20%3D%20N


這就不是單位向量了。




======= 感謝閱讀到此處:

塑料垃圾危害多,至少不能讓塑料垃圾流進(jìn)河


傅立葉變換前后的能量守恒問題的評論 (共 條)

分享到微博請遵守國家法律
应城市| 仁布县| 泾源县| 万年县| 永城市| 安义县| 泰顺县| 繁峙县| 奎屯市| 荣成市| 滕州市| 子洲县| 武鸣县| 滨海县| 历史| 元阳县| 平阴县| 会东县| 凤台县| 罗山县| 清苑县| 宜川县| 修水县| 辉南县| 安顺市| 沈阳市| 龙陵县| 无为县| 同仁县| 通化县| 金山区| 错那县| 曲沃县| 偃师市| 嘉黎县| 扎鲁特旗| 大方县| 孟村| 德惠市| 老河口市| 贡嘎县|