使用python實(shí)現(xiàn)離散時(shí)間傅里葉變換的方法-創(chuàng)新互聯(lián)

我們經(jīng)常使用傅里葉變換來(lái)計(jì)算數(shù)字信號(hào)的頻譜,進(jìn)而分析數(shù)字信號(hào),離散時(shí)間傅里葉變換的公式為:

專業(yè)領(lǐng)域包括成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)商城網(wǎng)站建設(shè)、微信營(yíng)銷、系統(tǒng)平臺(tái)開(kāi)發(fā), 與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開(kāi)發(fā)公司不同,創(chuàng)新互聯(lián)公司的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。

使用python實(shí)現(xiàn)離散時(shí)間傅里葉變換的方法

可是自己動(dòng)手實(shí)現(xiàn)一遍才是最好的學(xué)習(xí)。

在數(shù)字分析里面,傅里葉變換默認(rèn)等時(shí)間間隔采樣,不需要時(shí)間序列,只需要信號(hào)數(shù)組即可分析。

分析過(guò)程如下:

  • 對(duì)于含有 n 個(gè)樣本值的數(shù)字信號(hào)序列,根據(jù)奈奎斯特采樣定律,包含的周期數(shù)大為 n/2,周期數(shù)為 0 代表直流分量。所以,當(dāng)周期數(shù)表示為離散的 0,1,2,3…n/2 ,總的數(shù)目為 n/2+1個(gè)
  • 傅里葉變換之后的結(jié)果為復(fù)數(shù), 下標(biāo)為 k 的復(fù)數(shù) a+b*j 表示時(shí)域信號(hào)中周期為 N/k 個(gè)取樣值的正弦波和余弦波的成分的多少, 其中 a 表示 cos 波形的成分, b 表示 sin 波形的成分
  • 首先產(chǎn)生一個(gè)長(zhǎng)度為 n,一倍周期的 $e^{-jwn} $ (即為 $cos(wn)-jsin(wn) $ )波樣本序列.
  • 將數(shù)字信號(hào)序列中的每一個(gè)樣本與 1 倍周期的樣本波形序列相乘,得到 n 個(gè)乘積,將 n 個(gè)乘積相加,放入 f[1] 中。
  • 再產(chǎn)生一個(gè)長(zhǎng)度為 n,兩倍周期的 $e^{-jwn} $ (即為 $cos(wn)-jsin(wn) $ )波樣本序列,再將數(shù)字信號(hào)序列中的每一個(gè)樣本與 2 倍周期的樣本波形序列相乘,得到 n 個(gè)乘積,將 n 個(gè)乘積相加,放入 f[2] 中。依次重復(fù)。
  • 對(duì)于 0 倍周期,即直流分量來(lái)說(shuō),可以認(rèn)為產(chǎn)生的是 0 倍周期的樣本波形,重復(fù)操作,放入 f[0] 即可。
  • 這樣就得到了數(shù)字信號(hào)序列的傅里葉變換

使用方法:

從以上過(guò)程得到數(shù)字序列的傅里葉變換之后,如果想要得到真正頻譜,還需要做處理:

  • 計(jì)算出的每一個(gè)頻率下的幅值需要除以時(shí)間序列的長(zhǎng)度,類似求平均的過(guò)程
  • 每一個(gè)頻率下的幅值是一個(gè)復(fù)數(shù),需要對(duì)它求模,而且因?yàn)樵谪?fù)頻率處也有值,所以需要對(duì)于實(shí)信號(hào)需要乘 2
  • 頻率的序列為 0 到采樣率的一半,長(zhǎng)度為 n/2+1

完整程序:

# 離散時(shí)間傅里葉變換的 python 實(shí)現(xiàn)
import numpy as np
import math
import pylab as pl
import scipy.signal as signal
import matplotlib.pyplot as plt

sampling_rate=1000
t1=np.arange(0, 10.0, 1.0/sampling_rate)
x1 =np.sin(15*np.pi*t1)

# 傅里葉變換
def fft1(xx):
#   t=np.arange(0, s)
  t=np.linspace(0, 1.0, len(xx))
  f = np.arange(len(xx)/2+1, dtype=complex)
  for index in range(len(f)):
    f[index]=complex(np.sum(np.cos(2*np.pi*index*t)*xx), -np.sum(np.sin(2*np.pi*index*t)*xx))
  return f

# len(x1)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站名稱:使用python實(shí)現(xiàn)離散時(shí)間傅里葉變換的方法-創(chuàng)新互聯(lián)
URL分享:http://muchs.cn/article8/dpseop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)ChatGPT、App開(kāi)發(fā)、用戶體驗(yàn)、品牌網(wǎng)站制作、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)