相比於十分「直接」的重疊相加法,重疊保留法顯得有點繞。那些字母加來減去的,各段和總輸出的表示式讓人眼花繚亂。花了些力氣捋了捋清楚,記錄於斯。
看字母太抽象太煩可以滑到後面例子對照理解。
設h(n)序列長m;x(n)總長l,分成長為n1的若干段,每段再把前一段末尾的m-1個點複製到本段開頭(首段開頭補零),變成長n的片段,然後依次和h(n)卷積。(故,n=m+n1-1)
每段卷完得有n+m-1那麼多點,但空只留了n-m+1那麼多,咋辦?多出來前後各(m-1)個點沒地待。巧了,這些個點正好沒用,直接扔了。
為啥沒用?首先,每段前端的m-1個點:它們實際上是h(n)翻過去之後(可能平移幾下也可能都沒動地——m=2的時候m-1=1就是只有沒動地的情況)和本段那些多餘的x(n)的點的積的和(最多是m-1個數的和,就是這m-1個沒用的x(n)的點都被h(n)的點給乘了),乙個有用的x(n)都沒摻和這事
。總結一下,就是計算結果前端的m-1點對應了本來就是「複製」上一段結尾的那m-1個點,本來就不屬於自己的「贗品」當然要扔。
(先看正文,再看括號補充的,不然有點亂)
不過如果是有些有用,有些沒用的x(n)都參與了活動,活動成果要不要留呢?
答案是肯定的。這些就是和上一段的銜接點,因為這段開頭所謂沒用的點實際上是上一段的結尾,也是總的x(n)裡原本就有的,而卷積也本來就是要前後的點都摻和,都是一家人分不開的(從「卷」這個字就能看出來,剪不斷、理還亂啊)。上一段h(n)只能挪到最後一位與該段x(n)最後一位對齊這裡,不能再往後挪了(這就是後面的m-1個點的去向——根本沒計算出來)。所以這一段必須留,不然就缺了。
還是舉套具體的數為例吧。
設x=,h=,要求最後的結果是每段
那麼,l=9,m=2,m-1=1,n=4
明明到
是因為按照原來分段算完並去完該去的,剩下的個數是和x(n)原來的點數相等,但卷積的結果應該是兩個被卷積序列長度之和再減1啊,所以要補上後面缺的m-1=1個數,補上之後不足乙個分段(n=4),所以又叫來仨零一起打麻將。
可以得到,y1=,y2=,y3=,y4=
這裡邊,各段其實都沒有按照線性卷積算完n+m-1個點,而是算到第n個點就不算了。這還沒完,接下來還要把上面已經算出來的點,每段去掉開頭的m-1=1個,其餘保留並按序抄下就是最終結果:y=.什麼?y的最後倆零為啥也不要了?那就回頭看看x4的那三個0是怎麼添上的,就會發現其實後面的整個x4就是為了把h(n)完整地從x(n)的末尾移出來,事實上只有9是被需要的,後面仨零都只是湊數的(真慘),用他們計算出來的結果也是白忙活一場,本來現實中就不存在,所以一旦y的末尾開始出現0,就說明後面都是虛無了。之前的段都是兩個序列末尾重合,h(n)就不再繼續向前挪了,但這次不行了,這是最後收尾階段,沒有後面的序列來找補了,必須在這裡做個了斷。
補充一下的話,原x(n)序列末尾是沒有0的,如果原本就是0,那麼y的結尾也會有0存在,所以我們來理論上算一下該留幾個去幾個:
需要補的0總共是n-(m-1)=n-m+1=n1個,這個例子裡就是3個,最後補的這段卷積完只要留m-1=1個,除此之外,後面的以及最開始的m-1=1個全是不要的。再鑽一下牛角尖的話,到底一共(包括開端和結尾)去幾個呢?答案是n+m-1-(m-1)=n=4個,或者按照前面只算n個卷積的慣例,則是去掉n-(m-1)=3個。那麼單算結尾去掉的數量,就是這個數字減去開頭的m-1咯。
結束~總結一下,一共是,重疊式分段、逐段卷積、掐頭去尾、補零算末尾、存數依次排這幾個步驟。我講清楚了嗎~
捋一捋這HTML Day19
實話說,我曾經不止一次的看到過w3school,而這樣系統的去看確實從來沒有過,它這簡單到有些粗糙的頁面實在讓我提不起太多興趣,於是就這麼一再錯過。也是一時心血來潮,也是了解了w3shool到底是什麼,這才想到要來學一下的,可這一看,才發現原來這是多大的一處藏寶處,它簡單 樸實 配合著例項講解,把乙...
雜湊表(雜湊表)捋一捋
雜湊表 hash table 通過將關鍵碼對映到表中的某個位置來儲存元素,然後根據關鍵碼用同樣的方式進行直接訪問 理想的搜尋方法是可以不經過任何比較,一次直接從表中得到要搜尋的元素。如果構造一種儲存結構,使元素的儲存位置與它的關鍵碼之間建立乙個確定的對應函式關係hash 那麼每個元素關鍵碼與結構中的...
捋一捋DDR記憶體相關的各種頻率
首先引用 計算機維修技術 第2版 isbn 978 7 302 20508 1中對記憶體的定義 將直接與cpu進行資料交換的儲存器稱為 內部儲存器 簡稱為記憶體 不能直接與cpu進行資料交換的儲存器稱為 外部儲存器 簡稱為外存 文中的 記憶體 一詞特指 採用dram晶元構成的主要儲存系統,它由安裝在...