導航:首頁 > 源碼編譯 > 卷積碼編譯器

卷積碼編譯器

發布時間:2022-06-09 01:55:20

1. 解碼的過程是

解碼是編碼的逆過程,同時去掉比特流在傳播過程中混入的雜訊。利用解碼表把文字譯成一組組數碼或用解碼表將代表某一項信息的一系列信號譯成文字的過程稱之為解碼。解碼器是電子技術中的一種多輸入多輸出的組合邏輯電路,負責將二進制代碼翻譯為特定的對象(如邏輯電平等),功能與編碼器相反。解碼器一般分為通用解碼器和數字顯示解碼器兩大類。 數字電路中,解碼器(如n線-2n線BCD解碼器)可以擔任多輸入多輸出邏輯門的角色,能將已編碼的輸入轉換成已編碼的輸出,這里輸入和輸出的編碼是不同的。輸入使能信號必須接在解碼器上使其正常工作,否則輸出將會是一個無效的碼字。解碼在多路復用、七段數碼管和內存地址解碼等應用中是必要的。

假設編碼序列為( Λ) 1 2,m m m C = c c ,經過信道傳輸,接收端收到的信號為R (模擬信號或數字信號,取決於對信道的定義),那麼接收端會順理成章地在所有可能的碼序列中尋找條件概率P(C R) m 最大的一個,認為它是最可能的發送序列。即:

C~ Arg{MAX P(C R)} m C mm=這種判決准則稱為最大後驗概率准則 (MAP)。

演算法
viterbi解碼演算法是一種卷積碼的解碼演算法。缺點就是隨著約束長度的增加演算法的復雜度增加很快。約束長度N為7時要比較的路徑就有64條,為8時路徑變為128條。(2<<(N-1))。所以viterbi解碼一般應用在約束長度小於10的場合中。

演算法規定t時刻收到的數據都要進行64次比較,就是64個狀態每條路有兩條分支(因為輸入0或1),同時,跳傳到不同的兩個狀態中去,將兩條相應的輸出和實際接收到的輸出比較,量度值大的拋棄(也就是比較結果相差大的),留下來的就叫做倖存路徑,將倖存路徑加上上一時刻倖存路徑的量度然後保存,這樣64條倖存路徑就增加了一步。在解碼結束的時候,從64條倖存路徑中選出一條量度最小的,反推出這條倖存路徑(叫做回溯),得出相應的解碼輸出

2. 基於圖結構應用《編碼,解碼器》的設計與實現 這個畢業設計應該從什麼思路下手啊~~計算機專高手請指點

兄弟你這個論文有點難度了。不是隨便拉拉就行了。得找專業書籍慢慢找和高人指導了。
我查到點不指導有沒有用。
Turbo卷積碼(TCC)是3G無線系統中所採用的前向錯誤校正(FEC)機制的整體部分。然而,Turbo解碼器所帶來的計算負擔非常重,並不太適合採用傳統DSP或RISC處理器實現。由於現場可編程邏輯陣列(FPGA)內在的並行結構,FPGA為解決3G基站收發器中所需要的符號速率FEC和其它計算密集的任務提供了一個高性能信號處理平台基礎。

Turbo 編碼

級聯碼方案(Concatenated coding schemes)是為了通過結合兩個或更多相對簡單的分量或構造模塊碼來獲得較高的編碼增益。Turbo碼認為是對級聯碼結構的一種改進,其中採用迭代演算法對相關的碼序列進行解碼。Turbo碼是通過將兩個或更多分量碼應用到同一數據序列的不同交織版本上構成的。對於任何傳統單分量編碼,解碼器的最後一級生成的都是硬判決解碼數據位。為了使象Turbo碼這樣的級聯碼方案工作得更好,解碼演算法不應被限制為只能在解碼器間傳遞硬判決。為最好地利用每個解碼器獲得的信息,解碼演算法必須可以實現軟判決交換,而不是採用硬判決。對於採用兩個分量碼的系統,解碼的概念是指將來自一個解碼器的軟判決輸入到另一個解碼器的輸入,並將此過程重復幾次以獲得更好的判決,如圖1所示 。

3GPP Turbo 編碼器

圖2為3GPP編碼器。

輸入數據流輸入到RSC1,它為每個輸入比特生成一個對等比特(Parity Bit)。輸入數據還經過交織後由RSC2處理生成第二個對等比特流。
3GPP標準定義,輸入塊的長度在40至5114 位之間。編碼器生成一個速率為1/3的包括原始輸入位和兩個對等位的系統碼。通過打孔方法可以獲得1/2編碼速度的編碼。遞歸系統編碼器的實現比較直接,然而交織器則不那麼簡單,要比標準的卷積或塊交織器復雜。

一旦將輸入數據塊長度K 提供給編碼器以後,編碼器將計算交織矩陣行數R和列數 C,並創建相應的交織數據結構。R 和 C 是數據塊長度K的函數。在輸入符號被載入到交織矩陣以後,那麼將根據一定的順序進行行間交換和列間交換。交換模式是根據塊長度K選擇的(即依賴於K)。行和列交換完成後,通過逐列讀出交織矩陣數據就可以得到最終的交織序列。在數據讀出時需要進行刪減操作,以保證在輸出中只有正確的輸入符號,請注意,交織陣列包含的數據位通常比K個原始輸入符號要多 ,因為R C>K。然後,新的序列經過RSC2編碼生成第二個對等位流。
實現交織器的一種方法是在存儲器中存儲完整的交換序列。即,一旦K 給定,即調用一個初始化常式(運行在處理器上的軟體常式或利用FPGA中的功能單元)生成相應的交換序列,然後將這一信息存儲在存儲器中。然而,這一方法需要大量的存儲器。利用Virtex -E FPGA 技術提供的 4096位每塊的片上存儲器,將需要[5114 13/4096]=17個存儲器塊。

在我們的方法中,採用一個預處理引擎生成一個序列值(存儲),這一序列值被存儲起來,交織器地址發生器將使用這些序列值。這一硬體單元採用幾個小型數據結構(素數表)來計算所需要的序列。這一準備過程需要的時鍾周期數與信息塊的長度成比例。例如,對於K=40的塊需要280時鍾周期,而對於最大塊長度K=5114,則需要 5290個時鍾周期。該過程只需要在塊長度變化時進行。地址發生器利用這些更為緊湊的數據結構來實時生成交織地址。

3GPP Turbo 解碼器

解碼器包括兩個MAP(最大後驗概率)解碼器和幾個交織器。Turbo演算法的優良的性能源於可以在兩個MAP解碼器間共享可靠性信息(extrinsic data,外數據,或稱先驗數據)。

在我們的設計中,MAP解碼器採用的是Bahl, Cocke, Jelinek 和 Rajiv (BCJR) 演算法。BCJR演算法計算每個符號的最大後驗對數似然率,並且是一種真正的軟判決演算法。考慮到數據是以塊的形式傳輸的,因此可以在時間維中前向或反向搜索一個符號序列。對於任一序列,其出現概率都是單獨符號出現概率的乘積。由於問題是線性的,因此序列概述可以利用概率的對數和來代替。

為了與一般文獻中的習慣一致,我們將解碼迭代的前向和反向狀態概率分別利用 和 來表示。通常,BCJR演算法要求在接收到整個信息後才開始解碼。對於實時應用,這一限制可能太嚴格了。例如,3GPP Turbo解碼器將需要大量存儲器存儲一個5114符號信息塊的完全狀態結構(state trellis)。對於單片FPGA設計來說,這需要的存儲資源太多了。與維特比(Vitebi)演算法類似,我們可以先從全零向量 O和數據{yk}(k 從 n 到 n-L) 開始反向迭代。L次反向迭代可獲得非常好的 n-L近似值。只要L選擇合適,最終的狀態標志(state metric)就是正確的。可以利用這一性質在信息結束前就開始進行有效的位解碼。

L 被稱為收斂長度。其典型值大約是解碼器約束長度的數倍(通常為5至10倍),並隨著信噪比的降低而增加。

通常,Turbo解碼演算法將計算所有的 (對整塊信息),將這些數值存儲起來,然後在反向迭代中與反向狀態概率一起用來計算新的外信息(extrinsic information,或稱先驗信息)。我們的設計中採用了窗口化方法。

解碼過程以一個前向迭代開始,計算包含L 個接收符號的塊i的 值。同時,對未來(i+1)塊進行一個反向迭代(標號 )。對塊i+1的反向迭代結束時,就獲得了開始對塊i 進行反向迭代所需要的正確的 初始向量。 與此同時對數似然函數(Lall)也在進行。 每一 和 處理過程都需要8個max* 操作 - 每個針對狀態結構(tellis)中的8個結點之一。最終的對數似然計算需要14個並行max* 運算符。為了提供可接受的解碼速率,在設計中採用了38個max* 功能單元。

從 C描述到FPGA設計

FPGA Turbo 編碼解碼器設計是利用基於C的設計和驗證方法進行的,如圖3所示。

演算法開發階段採用具有定點C類型的Art Library 來對定點計算的位真(bit-true)效應進行准確建模。在這一階段考察了幾種可能演算法的定點性能。一旦選定正確的量化演算法,就可利用A|rtDesignerPro創建一個專用DSP架構。A|rtDesignerPro的一個最強大的功能之一是可以插入和利用專用的數據通道核心(稱為專用單元,ASU)。利用這些ASU加速器核心可以使我們處理Turbo解碼器演算法內在的計算復雜性。

A|rtDesignerPro可自動完成寄存器分配、調度和控制器生成。在Turbo編碼解碼器設計中, A|rtDesignerr的自動循環合並可獲得最佳的;任務調度,MAP解碼步驟的內部循環都只有一個周期長。

A|rtDesignerPro生成的最終結果是可綜合的寄存器級(RT-level) VHDL或Verilog 描述。基於C的工具流支持FPGA專用功能。例如,可利用BlockRAM自動構造RAM,而寄存器文件也可利用分布式存儲器而不是觸發器來實現 。

最後,邏輯綜合和Xilinx實施工具套件將RTL HDL 轉換為 FPGA 配置位流。

FPGA Turbo 編碼解碼器實現

A|rtDesigner創建的Turbo編碼器和解碼器核心硬體結構包含許多專用ASU加速器。其中最重要的一個加速器完成max* 操作。max* 運算符根據下式計算兩個冪值a 和 b:

max* (a,b)=ln(expc(a)+expc(b))。

如 圖4所示, max* 運算是通過選擇(a,b)最大值,並應用一個存儲在查找表(LUT)中的校正因子近似進行的。這一近似演算法非常適合利用Xilinx FPGA 實現,其中LUT是其最終基本構造單元。

結果

Turbo解碼演算法硬體字長的選擇極大地影響總體性能。利用C-to-FPGA設計流程,這一定點分析是完全在C環境中完成的。結果示於圖 5。

上圖顯示出了我們的浮點Turbo解碼器演算法和對應的定點演算法之間的性能差別。模擬是在5114塊長度、5次解碼迭代和AWGN信道模型情況下進行的。結果清晰明顯出性能的損失是非常小的。

我們的Turbo解碼器的定點性能做為解碼器迭代次數的函數 ,對於1.5 dB SNR,位錯率為10-6。

解碼器功能的實現非常具有挑戰性,我們同時針對Virtex-E和 Virtex-II 器件進行了適配。Virtex-II 器件實施是採用運行在1.85 speedfile資料庫上的Xilinx 4.1i 實施工具集完成的。利用XC2V1000BG575-5 FPGA實現的最終設計,達到了66 MHz 的時鍾性能,消耗了3,060個邏輯片 和 16個塊RAM。對於從40至 5114符號長度的塊,採用5次解碼迭代循環的情況下,解碼器達到了2 至6.5 百萬符號每秒(Msym/s)的吞吐量。編碼器佔用了903個邏輯片、3個塊RAM並支持83 MHz時鍾頻率。對於從40至5114位的塊長度,速率可達到9 至20 Msym/s。

能用上就好了,用不上別怪我。對不起哈~祝福你~

3. 什麼是解碼

解碼是編碼的逆過程,同時去掉比特流在傳播過程中混入的雜訊。利用解碼表把文字譯成一組組數碼或用解碼表將代表某一項信息的一系列信號譯成文字的過程稱之為解碼。
解碼器是電子技術中的一種多輸入多輸出的組合邏輯電路,負責將二進制代碼翻譯為特定的對象(如邏輯電平等),功能與編碼器相反。解碼器一般分為通用解碼器和數字顯示解碼器兩大類。
數字電路中,解碼器(如n線-2n線BCD解碼器)可以擔任多輸入多輸出邏輯門的角色,能將已編碼的輸入轉換成已編碼的輸出,這里輸入和輸出的編碼是不同的。
輸入使能信號必須接在解碼器上使其正常工作,否則輸出將會是一個無效的碼字。解碼在多路復用、七段數碼管和內存地址解碼等應用中是必要的。

4. 基於verilog hdl的(2,1,7)卷積碼解碼器的設計(維特比硬判決解碼),希望高手指點或者提供些有用的資料。

哥們 將你的編碼器程序發給我分享一下 謝謝咯

5. 求一篇數學編程論文!急....

〔論文關鍵詞〕Viterbi 演算法 編程�
〔論文摘要〕雖然Texas Instrument推出的C6000系列DSP使對信號處理的能力顯著提高,但對信息處理能力要求的不斷提升使提對DSP程序的優化越來越成為DSP開發工作中非常重要的環節。本文討論2Mbps視頻數據流的Viterbi演算法的移植與優化策略、技巧。�
��

一、概述�
Viterbi解碼演算法是由Viterbi於1967年提出的一種最大似然解碼辦法,解碼器根據接收序列R按最大似然准則力圖找出正確的原始碼序列。隨著大規模集成電路技術的發展,採用Viterbi演算法的卷積編碼技術已成為廣泛應用的糾錯方案。Viterbi解碼過程可用狀態表示。Sj,t和Sj N/2,t表示t時刻的兩個狀態。在t1時刻,這兩個狀態值根據路徑為0或者1,轉移到狀態S2j,t1和S2j1,t1。每一種可能的狀態轉移都根據接收到的有雜訊的序列R計算路徑度量,然後選擇出各個狀態的最小度量路徑(倖存路徑)。Viterbi演算法就是通過在狀態中尋找最小量路徑向前回溯L步,最後得到的即為解碼輸出。�
在卷積碼(n,k,m)表示法中,參數k表示每次輸入信息碼位數,n表示編碼的輸出卷積碼位數,m稱為約束長度(一些書中採用k=m1為約束長度,也可稱(2,1,2)碼網格圖,r=k/n稱為信息率,即編碼效率。本文運用的是(2,1,3)碼,約速長度為2,狀態數為2�2=-4。
TMS320C6000系列DSPs(數字信號處理器)是TI公司推出的一種並行處理的數字信號處理器,是基於TI的VLIW技術的。本文採用的是TMS320C6211。該處理器的工作頻率經過倍頻可達到150MHz,每個時鍾周期最多可並行執行8條指令,從而可以實現1200MIPS定點運算能力。�

二、編程實現及優化�
根據C6000的軟體編程流程,對Viterbi演算法的編程及其優化可分為三個階段來進行。這三個階段分別為:開發C代碼、優化C代碼、編寫線性匯編代碼。在代碼編寫和優化過程中,這三個階段不是都要經過的,只要在某一階段已經滿足了演算法代碼的功能和性能要求,就不必繼續進行下面的階段。�
1.開發C代碼。這一階段完全是根據任務要求來完成演算法的代碼編寫工作。在C6000的集成開發環境CCS(Code Composer Studio)下進行代碼的編譯和功能驗證,然後可用CCS的調試工具(如Profiler),利用在程序中設置斷點的辦法可找出程序中耗時最多、最影響整體性能的代碼段。為改進代碼性能,可進入下一階段。�
在驗證了演算法代碼實現功能並以設置斷點的辦法測試代碼的性能,這段循環運行耗時(時鍾周期)為1790。顯然,性能不能達到要求,就要進入代碼優化的第二階段了。�
2.一般在代碼調試中,最影響性能的是其中的循環代碼段。而軟體流水是一種用於安排循環內的指令運行方式,盡可能充分利用CPU的功能單元等資源,使循環的多次迭代能夠並行執行的一種技術。在C6000的C/C編譯器里,採用軟體流水使編譯出來的程序代碼優化是一項核心技術。所以在進一步優化之前,需要調整並盡可能簡化代碼的結構並去除影響軟體流水的因素使其能夠被編譯器充分流水,這對大幅提高整個代碼的性能非常重要。�
所以,在考慮影響因素同時對Viterbi演算法的循環代碼進行如下調整;�
*運用內聯函數(intrinsics)替代復雜的C語言程序。C6000編譯器提供了許多intrinsics,可以快速優化C代碼。Intrinsics是直接參與C6000匯編指令映射的內聯函數。在這里運用了_extu(x,y,z),以簡化其中hamm代碼部分。

6. 什麼是DSP

dsp
求助編輯網路名片
基於dsp的線路應用數字信號處理(Digital Signal Processing,簡稱DSP)是一門涉及許多學科而又廣泛應用於許多領域的新興學科。20世紀60年代以來,隨著計算機和信息技術的飛速發展,數字信號處理技術應運而生並得到迅速的發展。數字信號處理是一種通過使用數學技巧執行轉換或提取信息,來處理現實信號的方法,這些信號由數字序列表示。在過去的二十多年時間里,數字信號處理已經在通信等領域得到極為廣泛的應用。德州儀器、Freescale等半導體廠商在這一領域擁有很強的實力。

目錄

DSP微處理器DSP優點
DSP缺點
DSP典型應用框圖
DSP的開發工具
DSP系統的設計過程
DSP演算法及晶元分類
DSP技術的應用基於DSP的智能視頻監控系統
基於DSP的語音實時變速系統
DSP發展軌跡
DSP未來發展
其他DSP尺寸穩定型聚酯纖維
Windows系統DSP
文件擴展名:DSP
磷酸氫二鈉:DSP
dsp單身派
DSP舞團
DSP預警衛星系統
DSP 腹瀉型貝類毒素
DSP 需求方平台
DSP 戴爾服務提供商DSP微處理器 DSP優點
DSP缺點
DSP典型應用框圖
DSP的開發工具
DSP系統的設計過程
DSP演算法及晶元分類
DSP技術的應用 基於DSP的智能視頻監控系統
基於DSP的語音實時變速系統
DSP發展軌跡
DSP未來發展
其他
DSP尺寸穩定型聚酯纖維 Windows系統DSP 文件擴展名:DSP 磷酸氫二鈉:DSP dsp單身派 DSP舞團 DSP預警衛星系統 DSP 腹瀉型貝類毒素DSP 需求方平台DSP 戴爾服務提供商展開 編輯本段DSP微處理器
DSP(digital signal processor)是一種獨特的微處理器,是以數字信號來處理大量信息的器件。其工作原理是接收模擬信號,轉換為0或1的數字信號。再對數字信號進行修改、刪除、強化,並在其他系統晶元中把數字數據解譯回模擬數據或實際環境格式。它不僅具有可編程性,而且其實時運行速度可達每秒數以千萬條復雜指令程序,遠遠超過通用微處理器,是數字化電子世界中日益重要的電腦晶元。它的強大數據處理能力和高運行速度,是最值得稱道的兩大特色。 DSP微處理器(晶元)一般具有如下主要特點: (1)在一個指令周期內可完成一次乘法和一次加法; (2)程序和數據空間分開,可以同時訪問指令和數據; (3)片內具有快速RAM,通常可通過獨立的數據匯流排在兩塊中同時訪問; (4)具有低開銷或無開銷循環及跳轉的硬體支持; (5)快速的中斷處理和硬體I/O支持; (6)具有在單周期內操作的多個硬體地址產生器; (7)可以並行執行多個操作; (8)支持流水線操作,使取指、解碼和執行等操作可以重疊執行。 當然,與通用微處理器相比,DSP微處理器(晶元)的其他通用功能相對較弱些。
DSP優點
對元件值的容限不敏感,受溫度、環境等外部因素影響小; 容易實現集成;VLSI 可以分時復用,共享處理器; 方便調整處理器的系數實現自適應濾波; 可實現模擬處理不能實現的功能:線性相位、多抽樣率處理、級聯、易於存儲等; 可用於頻率非常低的信號。
DSP缺點
需要模數轉換; 受采樣頻率的限制,處理頻率范圍有限; 數字系統由耗電的有源器件構成,沒有無源設備可靠。 但是其優點遠遠超過缺點。
編輯本段DSP典型應用框圖
如右圖所示
[1]
編輯本段DSP的開發工具
數字信號處理器(DSP)作為一種可編程專用晶元,是數字信號處理理論實用化過程的重要技術工具,在語音處理、圖像處理等技術領域得到了廣泛的應用。但對於演算法設計人員來講,利用匯編語言或C 語言進行DSP 功能開發,具有周期長、效率低的缺點,不利於演算法驗證和產品的快速開發。 由MathWorks 公司和TI 公司聯合開發的DSPMATLAB Link for CCS Development Tools(簡稱CCSLink)是MATLAB6.5 版本(Release13)中增加的一個全新的工具箱,它提供了MATLAB、CCS 和DSP 目標板的介面,利用此工具可以像操作MATLAB變數一樣來操作DSP 器件的存儲器和寄存器,使開發人員在MATLAB 環境下完成對DSP 的操作,從而極大地提高DSP 應用系統的開發進程。 MATLAB 具有強大的分析、計算和可視化功能,利用MATLAB 提供的數十個專業工具箱,可以方便、靈活地實現對自動控制、信號處理、通信系統等的演算法分析和模擬,是演算法設計人員和工程技術人員必不可少的軟體工具。
編輯本段DSP系統的設計過程
DSP系統的設計還沒有非常好的正規設計方法。 在設計DSP系統之前,首先必須根據應用系統的目標確定系統的性能指標、信號處理 的要求,通常可用數據流程圖、數學運算序列、正式的符號或自然語言來描述。第二步是根據系統的要求進行高級語言的模擬。一般來說,為了實現系統的最終目標, 需要對輸入的信號進行適當的處理,而處理方法的不同會導致不同的系統性能,要得到 最佳的系統性能,就必須在這一步確定最佳的處理方法,即數字信號處理的演算法(Algo rithm),因此這一步也稱演算法模擬階段。例如,語音壓縮編碼演算法就是要在確定的壓縮比條件下,獲得最佳的合成語音。演算法模擬所用的輸入數據是實際信號經採集而獲得的,通常以計算機文件的形式存儲為數據文件。如語音壓縮編碼演算法模擬時所用的語音信 號就是實際採集而獲得並存儲為計算機文件形式的語音數據文件。有些演算法模擬時所用的輸入數據並不一定要是實際採集的信號數據,只要能夠驗證演算法的可行性,輸入假設的數據也是可以的。 在完成第二步之後,接下來就可以設計實時DSP系統,實時DSP系統的設計包括硬體設計和軟體設計兩個方面。硬體設計首先要根據系統運算量的大小、對運算精度的要求、系統成本限制以及體積、功耗等要求選擇合適的DSP晶元。然後設計DSP晶元的外圍電路及其他電路。軟體設計和編程主要根據系統要求和所選的DSP晶元編寫相應的DSP匯編程序,若系統運算量不大且有高級語言編譯器支持,也可用高級語言(如C語言)編程。由於現有的高級語言編譯器的效率還比不上手工編寫匯編語言的效率,因此在實際應用系統中常常採用高級語言和匯編語言的混合編程方法,即在演算法運算量大的地方,用手工編寫的方法編寫匯編語言,而運算量不大的地方則採用高級語言。採用這種方法,既可縮短軟體開發的周期,提高程序的可讀性和可移植性,又能滿足系統實時運算的要求。DSP硬體和軟體設計完成後,就需要進行硬體和軟體的調試。軟體的調試一般藉助於DSP開發工具,如軟體模擬器、DSP開發系統或模擬器等。調試DSP演算法時一般採用比較實時結果與模擬結果的方法,如果實時程序和模擬程序的輸入相同,則兩者的輸出應該一致。應用系統的其他軟體可以根據實際情況進行調試。硬體調試一般採用硬體模擬器進行調試,如果沒有相應的硬體模擬器,且硬體系統不是十分復雜,也可以藉助於一般的工具進行調試。 系統的軟體和硬體分別調試完成後,就可以將軟體脫離開發系統而直接在應用系統上運行。當然,DSP系統的開發,特別是軟體開發是一個需要反復進行的過程,雖然通過演算法模擬基本上可以知道實時系統的性能,但實際上模擬環境不可能做到與實時系統環境完全一致,而且將模擬演算法移植到實時系統時必須考慮演算法是否能夠實時運行的問題。如果演算法運算量太大不能在硬體上實時運行,則必須重新修改或簡化演算法。[2]
編輯本段DSP演算法及晶元分類
DSP運算的基本類型是乘法和累加(MAC)運算,對於卷積、相關、濾波和FFT基本上都是這一類運算。這樣的運算可以用通用機來完成,但受到其成本和結構的限制不可能有很高的實時處理能力。 DSP運算的特點是定址操作。數據定址范圍大,結構復雜但很有規律。例如FFT運算,它的蝶形運算相關節點從相鄰兩點直至跨越N/2間隔的地址范圍,每次變更都很有規律,級間按一定規律排列,雖然要運算log2N遍,但每級的地址都可以預測,也就是定址操作很有規律而且可以預測。這就不同於一般的通用機,在通用機中對資料庫的操作,具有很大的隨機性,這種隨機定址方式不是信號處理器的強項。 無論是專用的DSP晶元或通用DSP晶元在結構考慮上都能適應DSP運算的這些特點。而專用晶元在結構上考慮的更加專業化,更為合理,因而有更高的運算速度。 DSP晶元按用途或構成分類可以分為下列幾種類型: 為不同演算法而專門設計的專用晶元:例如用於做卷積/相關並具有橫向濾波器結構,INMOS公司的A100、A110;HARRIS公司的HPS43168;PLESSYGEC公司的PDSP16256等。用於做FFT,Austek公司的A41102,PLESSYGEC公司的PDSP16150等。這些都是為做FIR、IIR、FFT運算而設計的,因而運算速度高,但是具有有限的可編程能力,靈活性差。 為某種目的應用專門設計系統,即ASIC系統。它只涉及一種或一種以上自然類型數據的處理,例如音頻、視頻、語音的壓縮和解壓,調制/解調器等。其內部都是由基本DSP運算單元構建,包括FIR、IIR、FFT、DCT,以及卷積碼的編/解碼器及RS編/解碼器等。其特點是計算復雜而且密集,數據量、運算量都很大。 積木式結構:它是由乘法器、存儲器、控制電路等單元邏輯電路搭接而成,這種結構方式也稱為硬連線邏輯電路。它是一種早期實現方法,具有成本低、速度高等特點,由於是硬連接因而沒有可編程能力。目前主要用於接收機的前端某些高頻操作中。 用FPGA(現場可編程陳列)實現DSP的各種功能。實質上這也是一種硬連接邏輯電路,但由於有現場可編程能力,允許根據需要迅速重新組合基礎邏輯來滿足使用要求,因而更加靈活,而且比通用DSP晶元具有更高的速度。一些大的公司如Xinlinx、Altera也正把FPGA產品擴展到DSP應用中去。 通用可編程DSP晶元:這是目前用得最多的數字信號處理應用器件 片上系統Soc(SystemonChip),這是數字化應用及微電子技術迅速發展的產物,是下一代基於DSP產品的主要發展方向之一。它把一種應用系統集成在一個晶元上。通常,為滿足系統的性能要求和提高功率效率,會把DSP和MCU的多處理器處理平台集成在一起。圖1是由TI公司推出的開放多媒體應用平台(OMAP),用來支持2.5G和3G應用而設計的處理器體系結構,它支持語音、音頻、圖像和視頻信號處理應用的各種性能。其中關鍵器件有:低功耗的DSP晶元,用來做媒體處理;MCU用來支持應用操作系統及以控制為核心的應用處理;MTC是內存和流量控制器,確保處理器能高效訪問外部存儲區,避免產生瓶頸現象,提高整個平台的處理速度。[3]
編輯本段DSP技術的應用
語音處理:語音編碼、語音合成、語音識別、語音增強、語音郵件、語音儲存等。 圖像/圖形:二維和三維圖形處理、圖像壓縮與傳輸、圖像識別、動畫、機器人視覺、多媒體、電子地圖、圖像增強等。 軍事:保密通信、雷達處理、聲吶處理、導航、全球定位、跳頻電台、搜索和反搜索等。 儀器儀表:頻譜分析、函數發生、數據採集、地震處理等。 自動控制:控制、深空作業、自動駕駛、機器人控制、磁碟控制等。 醫療:助聽、超聲設備、診斷工具、病人監護、心電圖等。 家用電器:數字音響、數字電視、可視電話、音樂合成、音調控制、玩具與游戲等。 生物醫學信號處理舉例: CT機示例
CT:計算機X射線斷層攝影裝置。(其中發明頭顱CT英國EMI公司的豪斯菲爾德獲諾貝爾獎。) CAT:計算機X射線空間重建裝置。出現全身掃描,心臟活動立體圖形,腦腫瘤異物,人體軀干圖像重建。 心電圖分析。
基於DSP的智能視頻監控系統
傳統的視頻監視系統是簡單的非智能閉路電視(CCTV)系統,其缺點十分明顯。這樣的系統或者需要安保人員實時監視畫面以捕捉關鍵事件,或者需要在事後對視頻記錄進行回放並進行人工分析。耗時耗力,成本高而效率低。近幾年,DSP在智能視頻監控系統方面的應用不斷完善,正在逐漸取代傳統的模擬非智能系統。 iSuppli公司2006年的一份分析報告曾指出,IP視頻監控系統市場到2010年將增長近十倍。IP監控的創新技術之一是「智能攝像機」,它擁有強大的數字信號處理器,能探測威脅並觸發自動響應。可見,DSP晶元是智能監控的核心。
基於DSP的語音實時變速系統
在外語多媒體教學中,要求對語速進行快慢控制,以適應不同程度學生的需求。然而,傳統的語音變速產品往往在教師改變語速的同時,也改變了原說話者的語調,不能達到教學的真正目的。因此,語音變速系統應當具備調整語速的同時,還需要保證原說話者語調保持不變的特點。基於DSP(TMS320C5409)的語音實時變速系統能夠任意調整語音語速,達到外語多媒體教學的需求。
編輯本段DSP發展軌跡
DSP產業在約40年的歷程中經歷了三個階段:第一階段,DSP意味著數字信號處理,並作為一個新的理論體系廣為流行。隨著這個時代的成熟,DSP進入了發展的第二階段,在這個階段,DSP代表數字信號處理器,這些DSP器件使我們生活的許多方面都發生了巨大的變化。接下來又催生了第三階段,這是一個賦能(enablement)的時期,我們將看到DSP理論和DSP架構都被嵌入到SoC類產品中。」 第一階段,DSP意味著數字信號處理。80年代開始了第二個階段,DSP從概念走向了產品,TMS32010所實現的出色性能和特性備受業界關注。方進先生在一篇文章中提到,新興的DSP業務同時也承擔著巨大的風險,究竟向哪裡拓展是生死攸關的問題。當設計師努力使DSP處理器每MIPS成本降到了適合於商用的低於10美元范圍時,DSP在軍事、工業和商業應用中不斷獲得成功。到1991年,TI推出價格可與16位微處理器不相上下的DSP晶元,首次實現批量單價低於5美元,但所能提供的性能卻是其5至10倍。到90年代,多家公司躋身DSP領域與TI進行市場競爭。TI首家提供可定製 DSP——cDSP,cDSP 基於內核 DSP的設計可使DSP具有更高的系統集成度,大大加速了產品的上市時間。同時,TI瞄準DSP電子市場上成長速度最快的領域。到90年代中期,這種可編程的DSP器件已廣泛應用於數據通信、海量存儲、語音處理、汽車電子、消費類音頻和視頻產品等等,其中最為輝煌的成就是在數字蜂窩電話中的成功。這時,DSP業務也一躍成為TI最大的業務,這個階段DSP每MIPS的價格已降到10美分到1美元的范圍。21世紀DSP發展進入第三個階段,市場競爭更加激烈,TI及時調整DSP發展戰略全局規劃,並以全面的產品規劃和完善的解決方案,加之全新的開發理念,深化產業化進程。成就這一進展的前提就是DSP每MIPS價格目標已設定為幾個美分或更低。
編輯本段DSP未來發展
1、數字信號處理器的內核結構進一步改善,多通道結構和單指令多重數據(SIMD)、特大指令字組(VLIM)將在新的高性能處理器中將佔主導地位,如Analog Devices的 ADSP-2116x。 ADSP產品
2、DSP 和微處理器的融合: 微處理器是低成本的,主要執行智能定向控制任務的通用處理器能很好執行智能控制任務,但是數字信號處理功能很差。而DSP的功能正好與之相反。在許多應用中均需要同時具有智能控制和數字信號處理兩種功能,如數字蜂窩電話就需要監測和聲音處理功能。因此,把DSP和微處理器結合起來,用單一晶元的處理器實現這兩種功能,將加速個人通信機、智能電話、無線網路產品的開發,同時簡化設計,減小PCB體積,降低功耗和整個系統的成本。例如,有多個處理器的Motorola公司的DSP5665x,有協處理器功能的Massan公司FILU-200,把MCU功能擴展成DSP和MCU功能的TI公司的TMS320C27xx以及Hitachi公司的SH-DSP,都是DSP和MCU融合在一起的產品。互聯網和多媒體的應用需要將進一步加速這一融合過程。 3、DSP 和高檔CPU的融合: 大多數高檔GPP如Pentium 和PowerPC都是SIMD指令組的超標量結構,速度很快。LSI Logic 公司的LSI401Z採用高檔CPU的分支預示和動態緩沖技術,結構規范,利於編程,不用擔心指令排隊,使得性能大幅度提高。Intel公司涉足數字信號處理器領域將會加速這種融合。 4、DSP 和SOC的融合: SOC
SOC(System-On-Chip)是指把一個系統集成在一塊晶元上。這個系統包括DSP 和系統介面軟體等。比如Virata公司購買了LSI Logic公司的ZSP400處理器內核使用許可證,將其與系統軟體如USB、10BASET、乙太網、UART、GPIO、HDLC等一起集成在晶元上,應用在xDSL上,得到了很好的經濟效益。因此,SOC晶元近幾年銷售很好,由1998年的1.6億片猛增至1999年的3.45億片。1999年,約39%的SOC產品應用於通訊系統。今後幾年,SOC將以每年31%的平均速度增長,到2004年將達到13億片。毋庸置疑,SOC將成為市場中越來越耀眼的明星。 5、DSP 和FPGA的融合: FPGA是現場編程門陣列器件。它和DSP集成在一塊晶元上,可實現寬頻信號處理,大大提高信號處理速度。據報道,Xilinx公司的Virtex-II FPGA對快速傅立葉變換(FFT)的處理可提高30倍以上。它的晶元中有自由的FPGA可供編程。Xilinx公司開發出一種稱作Turbo卷積編解碼器的高性能內核。設計者可以在FPGA中集成一個或多個Turbo內核,它支持多路大數據流,以滿足第三代(3G)WCDMA無線基站和手機的需要,同時大大 WCDMA無線基站
節省開發時間,使功能的增加或性能的改善非常容易。因此在無線通信、多媒體等領域將有廣泛應用。

7. 解碼是干什麼的

Viterbi解碼
接收到的符號首先經過解調器判決,輸出0、1
碼,然後再送往解碼器的形式,稱為硬
判決解碼。即編碼信道的輸出是0、1
的硬判決信息。
我們選擇似然概率(
)
m
P
RC
的對數作為似然函數。容易看出,硬判決的最大似然解碼
實際上是尋找與接收序列漢明距離最小的編碼序列。對於網格圖描述Viterbi
演算法,整個
Viterbi
解碼演算法可以簡單概括為「相加-比較-保留」,解碼器運行是前向的、無反饋的,
實現過程並不復雜。
我們來分析Viterbi
演算法的復雜度:
(n,
k,
N)
卷積碼的狀態數為2k
(N−1)
,對每一時刻要
做2k
(N−1)
次「加-比-存」操作,每一操作包括2k
次加法和2k
−1
次比較,同時要保留2k
(N−1)
條倖存路徑。由此可見,Viterbi
演算法的復雜度與信道質量無關,其計算量和存儲量都隨約束
長度N
和信息元分組k
呈指數增長。因此,在約束長度和信息元分組較大時並不適用。
為了充分利用信道信息,提高卷積碼解碼的可靠性,可以採用軟判決Viterbi
解碼演算法。
此時解調器不進行判決而是直接輸出模擬量,或是將解調器輸出波形進行多電平量化,而不
是簡單的
0、1
兩電平量化,然後送往解碼器。即編碼信道的輸出是沒有經過判決的「軟信
息」。
與硬判決演算法相比,軟判決解碼演算法的路徑度量採用「軟距離」而不是漢明距離。最常
採用的是歐幾里德距離,也就是接收波形與可能的發送波形之間的幾何距離。在採用軟距離
的情況下,路徑度量的值是模擬量,需要經過一些處理以便於相加和比較。因此,使計算復
雜度有所提高。除了路徑度量以外,軟判決演算法與硬判決演算法在結構和過程上完全相同。
一般而言,由於硬判決解碼的判決過程損失了信道信息,軟判決解碼比硬判決解碼性能
上要好約2
dB

不管採用軟判決還是硬判決,由於Viterbi
演算法是基於序列的解碼,其解碼錯誤往往具
有突發性

8. 卷積碼編解碼器的Matlab模擬實現

卷積程序我還是有的:
function [f,k]=conv_m(f1,k1,f2,k2)
%計算連續信號卷積積分f(t)=f1(t)*f2(t)
% f: 卷積積分f(t)對應的非零樣值向量
% k:f(t)的對應時間向量
% f1: f1(t)非零樣值向量
% f2: f2(t)的非零樣值向量
% k1: f1(t)的對應時間向量
% k2: f2(t)的對應時間向量
% p:取樣時間間隔
p=input('p=');
f=conv(f1,f2); %計算序列f1與f2的卷積和f
f=f*p;
k0=k1(1)+k2(1); %計算序列f非零樣值的起點位置
k3=length(f1)+length(f2)-2; %計算卷積和f的非零樣值的寬度
k=k0:p:k3*p; %確定卷積和f非零樣值的時間向量
subplot(2,2,1)
plot(k1,f1) %在子圖1繪f1(t)時域波形圖
title('f1(t)')
xlabel('t')
ylabel('f1(t)')
subplot(2,2,2)
plot(k2,f2) %在子圖2繪f2(t)時波形圖
title('f2(t)')
xlabel('t')
ylabel('f2(t)')
subplot(2,2,3)
plot(k,f); %畫卷積f(t)的時域波形
h=get(gca,'position');
h(3)=2.5*h(3);
set(gca,'position',h) %將第三個子圖的橫坐標范圍擴為原來的2.5倍
title('f(t)=f1(t)*f2(t)')
xlabel('t')
ylabel('f(t)')

9. 什麼是軟判決

很多初入通信行業的開發人員,都會接觸到過信道編解碼,信道編解碼中常常出現軟判決與硬判決。
那麼什麼是軟判決,什麼是硬判決呢?軟判決就是Demolator將解調後的模擬信號直接接入到Decoder來實現解碼,硬判決就是對Demolator輸出信號做N比特量化,如果分量高於門限就認為Demolator輸出1,否則輸出0。(根據調制方式,例如MPSK,M=2^N,則N比特量化)
但是通常在做軟判決時,模擬信號難以在數字信號系統中處理,所有為實現軟判決,不得不某些妥協,那就是用多比特量化來逼近模擬信號作為Decoder的輸入。這樣當然會帶來量化雜訊。我們還可以注意到如果軟判決採用量化,那麼硬判決就是軟判決的特殊情況。
所以在數字通信系統,可以認為硬判決就是N比特量化,軟判決就是多比特量化(>>N)。
另外,量化總會帶來量化雜訊,要越好逼近模擬信號,就要越多的比特位。
在均勻量化,信號在其空間均勻分布得到的情況下,多一個比特可以多得到6dB的增益。
具體推導可以參看老樊的《通信原理》,當然你也要自己做些推導,書

閱讀全文

與卷積碼編譯器相關的資料

熱點內容
右腦開發pdf 瀏覽:646
okuma系統如何手工編程 瀏覽:975
a4紙文件夾封面 瀏覽:965
命令查看網卡信息 瀏覽:302
僑豐真空壓縮袋價格 瀏覽:585
西方倫理學pdf 瀏覽:906
浪潮英信伺服器如何打開機箱 瀏覽:419
如何設置微信加密後別人知道嗎 瀏覽:914
貼吧知乎這類屬於什麼類型的app 瀏覽:763
華為雲網路系統伺服器 瀏覽:188
阿里雲教育雲伺服器 瀏覽:755
androidui設計尺寸 瀏覽:512
如何改變我的世界伺服器 瀏覽:250
程序員的不足之處 瀏覽:847
編譯的五大過程 瀏覽:989
三個火槍手pdf 瀏覽:276
opc伺服器怎麼區分 瀏覽:845
app重影是什麼意思 瀏覽:616
android更改鍵盤 瀏覽:722
壓縮機氣液分離器結構 瀏覽:654