Matlab的卷積編碼實現

2021-10-04 09:05:41 字數 1166 閱讀 4924

最近在做乙個scfde波形的c和向量實現,指導老師給了幾份matlab****,要我把對應的c語言和向量寫出來(並行運算指令操作),簡單的**一下就寫完了,有些寫的還是有點煩躁,特別是卷積編碼的解碼,今天我們先不談解碼,先談下編碼,這個還是寫的比較流暢的。

卷積編碼器,聽著就不好理解,沒事,我來分析一波,首先我們來分析下(3,1,2)編碼器,這三個數啥意思啊,3代表有三個輸出,1代表乙個輸入,而約束度為n=2+1=3;這是啥意思呢,簡單的來說就是乙個輸入進去,有三個輸出,而約束度是為了在糾錯時用的,也就是其能夠監督3個資訊段(每次乙個位元輸入的話,也就是能監督9個位元);下面我們來分析其實際應用:

在matlab我們適用卷積編碼函式時,是不是得呼叫乙個網格函式?就是這個trel = poly2trellis(constraintlength,codegenerator);

簡單的來說,constraintlength是有幾個移位寄存,codegenerator是代表有幾路輸出以及輸出與移位暫存器的關係,

設trel = poly2trellis(7,[171,133]);這裡代表有7個暫存器,兩路輸出,171和133是啥啊,在這裡171和133是八進位制,要轉換為二進位制才能知道他們的關係:[1111001,1011011];這是不是很清楚了(如圖1),它們是異或運算,也就是,第乙個輸出是1、2、3、4、7暫存器的值的異或。

第乙個輸出與1、2、3、4、7這幾個暫存器有關係,那麼trel = poly2trellis(7,[171,133]),convenc_out = convenc(x(n),trel)是不是就代表(2,1,6)編碼器呢?那麼(3,1,2)編碼器同理,這不過這樣說明,沒有指定輸出與暫存器的關係,下面看一段我實現的**(如圖2、圖3):

下面驗證一下結果(如圖4):

如果有什麼問題我們還可以再討論一下。

卷積操作的matlab實現

工作之餘,腦海中突然蹦出 影象的卷積操作怎麼實現呢?然後仔細考慮了以下實現細節,並記錄下來,以備日後檢視。為了便於敘述和驗證程式的有效性,這裡貼出一張原圖 圖1 和它相應地經過均值核卷積以後的效果圖 圖2 圖1.castle原始 圖2.castle經過均值核卷積後的結果 matlab functio...

matlab卷積動畫實現

為了完成學校布置的卷積動畫任務,匆匆學了下matlab的相關操作,寫的 也是很爛,最後實現了相關功能,分享一下。clc subplot 2 1,2 t1 0 0.1 同時輸入兩個點,兩點一線 m1 0.5 t1 p plot t1,m1,b markersize 5 axis 0501.5 grid...

卷積編碼verilog實現

完成 2,1,7 編碼方式 多項式為 133,171 也可以完成 2,1,5 編碼方式多項式 23,35 的verilog實現 對應 中的注釋的位置。相應的解碼器也寫已寫完,後續。相關的卷積編碼的基礎知識請參看 timescale 1ns 1ps company engineer create da...