演算法 日更 第四十二期 離散傅利葉變換(DFT)

2022-07-12 11:12:08 字數 1879 閱讀 3684

▎前言

我們將要學到的東西:

當然,小編之前就已經寫過一篇部落格了,主要講的就是基礎多項式,如果你已經會了下面的內容就無需學了,否則請進入傳送門

。▎複數

☞『引入』

如果你信誓旦旦的在初中卷子上不判斷根號下(√)的數是否是負數,那麼你極有可能會被老師扇兩巴掌,因為這是初中要注意的一大重點。  

那麼問題來了,究竟有沒有諸如√-1這種數呢?其實是有的,初中階段只會告訴你實數是什麼,卻不會告訴你還有諸如√-1這樣的虛數(顧名思義,不存在的數)。

如果你是第一次見複數,那麼你可能先想到的是單數和複數,其實不是這樣的。

☞『定義』

其實就是實數與虛數的統稱啦。

☞『表示』

複數的表示字母是z,那麼乙個複數z可以表示為z=ai+b,其中a,b屬於實數,i屬於虛數,那麼a稱為虛部,b稱為實部,i稱為虛數單位。

例如i可以滿足i2=1。

☞『運算』

複數和向量不同。

複數的運算和實數幾乎一樣,支援四則運算。

▎暴力多項式乘法

☞『演算法』

在之前,我們已經知道了係數表示法和點值表示法的區別,假設有兩個多項式分別長這樣:

那麼這兩個多項式乘起來看著就心煩,那麼怎麼辦呢?再看看點值表示法怎麼樣吧:

f(x)=

g(x)=

那麼積是多少?

h(x)=

怎麼樣,點值表示法幹題是不是爽到爆呢?

但是問題是:係數表示法如何變成點值表示法?

我們其實只需要n個數當做x帶入得到f/g值即可。但是這樣的做法無疑是o(n2)級別的,有時滿足不了我們的需求,所以就要用到離散傅利葉變換了。

▎dft

☞『引入』

我現在在質疑這個演算法是不是處理物理的。

☞『定義』

離散傅利葉變換(dft),是傅利葉變換在時域和頻域上都呈現離散的形式,將時域訊號的取樣變換為在離散時間傅利葉變換(dtft)頻域的取樣。在形式上,變換兩端(時域和頻域上)的序列是有限長的,而實際上這兩組序列都應當被認為是離散週期訊號的主值序列。即使對有限長的離散訊號作dft,也應當將其看作經過週期延拓成為週期訊號再作變換。在實際應用中通常採用快速傅利葉變換以高效計算dft。

我猜你也看不懂,其實就是快速係數轉點值表示法唄。

☞『演算法核心』

在之前,我們說的n個數帶入轉點值中的n個數是隨便找的,所以出現一些棘手的問題很正常,就比如說當遇到高次的項時總會很難算。

所以我們如果能刻意的找到一些好算的x,那麼就不難算出f/g的值了。

如果我們能找到一些x滿足xk=1,那麼就不必每個次方都算了。

想一想1和-1絕對是,考慮虛數的話i和-i也算。

那麼我們可以畫上這樣乙個平面直角座標系:

可是單單這麼四個點顯然是不夠的,比如說n=8,傅利葉表示應該將這個圓平分成八份,取這樣的八個點:

從(0,1)依次標號k:

那麼只要求出這八個點表示的複數即可,我們記標號k的點表示的複數為ωn

k,那麼就有:

這裡面的東西都可以算出來的。

實習日記 第四十二天

今天的狀態是我實習這麼久以來感覺最差的一天了。一整天都好睏的,而且感覺到沒什麼要做。這種狀態的真的很不爽。難道是因為馬上就要回學校了,所以心態出了問題?如果沒有專案任務的話,現在應該是最好的學習時間。利用這段時間可以看看自己感興趣的東西。向我正在看的python以及打算看的各種知識。不過,我現在就是...

ADI讀書活動第四十二期 AD 623使用心得討論

在實際專案應用中,需要一款儀表放大器來對壓力感測器的毫伏級訊號進行放大,經過綜合比較分析最終確認使用adi公司生產的ad623。一 ad623簡介 1 基本特性 ad623是乙個整合單電源儀表放大器,它能在單電源 3v到 12v 下提供滿電源幅度的輸出。它允許使用單個增益設定電阻進行增益程式設計,以...

第四十二章 黑焱棍

怎麼會,怎麼會 衣服髒兮兮,又腫著臉,嘴巴都被一巴掌抽歪,嘴角滿是血跡的萬天揚,完全處於驚恐 驚怒的情緒當中,他不就是先天金丹嗎?他不是連紅瞳雪獅獸都沒有殺死嗎?這可是第一神將啊,第一神將啊!第一神將竟然被他擊退?怎麼可能!萬天揚偷偷看了周圍人群一眼。原本那些過去對他恭維的巡守兵衛,一些神將 們,此...