編碼原理是對編碼的屬性及其各自適用于具體應用的方法研究。編碼用于數(shù)據(jù)壓縮,加密,糾錯和網(wǎng)絡。編碼在各種科學學科(如信息理論,電氣工程,數(shù)學,語言學和計算機科學)都有研究 -旨在設計高效可靠的數(shù)據(jù)傳輸方法。這通常涉及去除冗余以及發(fā)送數(shù)據(jù)中的錯誤的校正或檢測。實現(xiàn)編碼的具體方法和電路很多,方法有低速編碼和高速編碼、線性編碼和非線性編碼;電路有逐次比較型、級聯(lián)型和混合型編碼。 編碼原理按照應用來分可以分為算術(shù)編碼原理,音頻編碼原理、圖像編碼原理、字符編碼原理等。
這里主要介紹線性編碼有關內(nèi)容
線性編碼
術(shù)語代數(shù)編碼理論表示編碼原理的子領域,其編碼性質(zhì)以代數(shù)術(shù)語表示,然后進一步研究 。
代數(shù)編碼理論基本上分為兩大類代碼:
線性分組碼
卷積碼
它分析一個編碼的以下三個特性-主要是:
碼字長度
有效代碼字總數(shù)
兩個有效代碼字之間的最小距離,主要使用漢明距離,有時也使用其他距離像Lee距離。
線性分組碼
線性分組碼具有的特性的線性度,即,任何兩個碼字的總和也是一個編碼字,并且它們被應用到組的源比特中,因此稱為線性分組碼。有分組碼不是線性的,但是很難證明編碼是沒有這個屬性的編碼。
線性分組碼由其符號字母(例如,二進制或三元)和參數(shù)(n,m,
n是碼字的長度,以符號表示,
m是將一次用于編碼的源符號的數(shù)量,
有許多類型的線性分組碼,如循環(huán)碼(如漢明碼)、重復代碼、奇偶校驗碼、多項式編碼(例如BCH碼)、里德 - 所羅門編碼、代數(shù)幾何編碼、里德 - 穆勒編碼、完美編碼。
編碼原理使用N維球體模型。例如,可以在桌面上或三維中將多少便士包裝成圓圈,可以將多少個彈珠包裝在一個球面上。其他注意事項輸入編碼的選擇。例如,六邊形包裝成矩形框的約束將在角落留下空的空間。隨著尺寸越來越大,空白空間的百分比越來越小。但是在某些維度上,包裝使用所有空間,這些代碼是所謂的“完美”代碼。唯一非常重要和有用的完美編碼是距離為3漢明碼,其參數(shù)滿足(2 r - 1,2 r - 1 - r,3)和[23,12,7]二進制和[11,6,5 ]三重Golay碼。
另一個編碼屬性是單個碼字可能具有的鄰居的數(shù)量。再次,以便士為例。首先我們把便士打包成矩形網(wǎng)格。每一分錢將有4個鄰近的鄰居(在距離更遠的角落有4個)。在六邊形,每一分錢將有6個近鄰。當我們增加尺寸時,近鄰的數(shù)量增加非???。結(jié)果是使接收端選擇鄰居(因此錯誤)的噪聲的方式也增加。這是分組碼以及所有編碼的基本限制??赡芨y對單個鄰居造成錯誤,但鄰居數(shù)量可能足夠大,因此總錯誤概率實際上會受到影響。
線性分組碼的屬性可以應用于很多應用。例如,線性分組碼的校正子集合唯一性被用網(wǎng)格成形,是最有名的形狀碼之一。傳感器網(wǎng)絡中使用相同的屬性進行分布式源代碼編碼。
卷積碼
如果特定的一致監(jiān)督關系不是在一個碼字中實現(xiàn),而是在個碼字中實現(xiàn),這種碼稱為卷積碼。卷積碼可用移位寄存器來實現(xiàn),這種卷積編碼器的輸出可看作是輸入信息碼元序列與編碼器響應函數(shù)的卷積。能糾正突發(fā)錯誤的哈格伯爾格碼也是一種卷積碼。在平穩(wěn)高斯噪聲干擾的信道上采用序貫譯碼方法的卷積碼有很好的性能,能用于衛(wèi)星通信和深空通信。
UTF-8 編碼原理
為了統(tǒng)一全世界各國語言文字和專業(yè)領域符號(例如數(shù)學符號、樂譜符號)的編碼,ISO制定了ISO 10646標準,也稱為UCS(Universal Character Set)。UCS編碼的長度是31位,可以表示231個字符。如果兩個字符編碼的高位相同,只有低16位不同,則它們屬于一個平面(Plane),所以一個平面由216個字符組成。目前常用的大部分字符都位于第一個平面(編碼范圍是U-00000000~U-0000FFFD),稱為BMP(Basic Multilingual Plane)或Plane 0,為了向后兼容,其中編號為0~256的字符和Latin-1相同。UCS編碼通常用U-xxxxxxxx這種形式表示,而BMP的編碼通常用 U xxxx這種形式表示,其中x是十六進制數(shù)字。在ISO制定UCS的同時,另一個由廠商聯(lián)合組織也在著手制定這樣的編碼,稱為Unicode,后來兩家聯(lián)手制定統(tǒng)一的編碼,但各自發(fā)布各自的標準文檔,所以UCS編碼和Unicode碼是相同的。
有了字符編碼,另一個問題就是這樣的編碼在計算機中怎么表示?,F(xiàn)在已經(jīng)不可能用一個字節(jié)表示一個字符了,最直接的想法就是用四個字節(jié)表示一個字符,這種表示方法稱為UCS-4或UTF- 32,UTF是Unicode Transformation Format的縮寫。一方面這樣比較浪費存儲空間,由于常用字符都集中在BMP,高位的兩個字節(jié)通常是0,如果只用ASCII碼或Latin-1,高位的三個字節(jié)都是0。另一種比較節(jié)省存儲空間的辦法是用兩個字節(jié)表示一個字符,稱為UCS-2或UTF-16,這樣只能表示BMP中的字符,但BMP中有一些擴展字符,可以用兩個這樣的擴展字符表示其它平面的字符,稱為Surrogate Pair。無論是UTF-32還是UTF-16都有一個更嚴重的問題是和C語言不兼容,在C語言中0字節(jié)表示字符串結(jié)尾,庫函數(shù)strlen、 strcpy等等都依賴于這一點,如果字符串用UTF-32存儲,其中有很多0字節(jié)并不表示字符串結(jié)尾,這就亂套了。
UNIX之父Ken Thompson提出的UTF-8編碼很好地解決了這些問題,現(xiàn)在得到廣泛應用。UTF-8具有以下性質(zhì):
* 編碼為U 0000~U 007F的字符只占一個字節(jié),就是0x00~0x7F,和ASCII碼兼容。
* 編碼大于U 007F的字符用2~6個字節(jié)表示,每個字節(jié)的最高位都是1,而ASCII碼的最高位都是0,因此非ASCII碼字符的表示中不會出現(xiàn)ASCII碼字節(jié)(也就不會出現(xiàn)0字節(jié))。
* 用于表示非ASCII碼字符的多字節(jié)序列中,第一個字節(jié)的取值范圍是0xC0~0xFD,根據(jù)它可以判斷后面有多少個字節(jié)也屬于當前字符的編碼。后面每個字節(jié)的取值范圍都是0x80~0xBF,見下面的詳細說明。
* UCS定義的所有231個字符都可以用UTF-8編碼表示出來。
* UTF-8編碼最長6個字節(jié),BMP字符的UTF-8編碼最長三個字節(jié)。
* 0xFE和0xFF這兩個字節(jié)在UTF-8編碼中不會出現(xiàn)。
具體來說,UTF-8編碼有以下幾種格式:
U-00000000 – U-0000007F: 0xxxxxxx
U-00000080 – U-000007FF: 110xxxxx 10xxxxxx
U-00000800 – U-0000FFFF: 1110xxxx 10xxxxxx10xxxxxx
U-00010000 – U-001FFFFF: 11110xxx 10xxxxxx10xxxxxx 10xxxxxx
U-00200000 – U-03FFFFFF: 111110xx 10xxxxxx10xxxxxx 10xxxxxx 10xxxxxx
U-04000000 – U-7FFFFFFF: 1111110x 10xxxxxx10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
第一個字節(jié)要么最高位是0(ASCII字節(jié)),要么最高兩位都是1,最高位之后1的個數(shù)決定后面有多少個字節(jié)也屬于當前字符編碼,例如111110xx,最高位之后還有四個1,表示后面有四個字節(jié)也屬于當前字符的編碼。后面每個字節(jié)的最高兩位都是10,可以和第一個字節(jié)區(qū)分開。這樣的設計有利于誤碼同步,例如在網(wǎng)絡傳輸過程中丟失了幾個字節(jié),很容易判斷當前字符是不完整的,也很容易找到下一個字符從哪里開始,結(jié)果頂多丟掉一兩個字符,而不會導致后面的編碼解釋全部混亂了。上面的格式中標為x的位就是UCS編碼,最后一種6字節(jié)的格式中x位有31個,可以表示31位的UCS編碼,UTF-8就像一列火車,第一個字節(jié)是車頭,后面每個字節(jié)是車廂,其中承載的貨物是UCS編碼。UTF-8規(guī)定承載的UCS編碼以大端表示,也就是說第一個字節(jié)中的x是UCS編碼的高位,后面字節(jié)中的x是UCS編碼的低位。
例如U 00A9(?字符)的二進制是10101001,編碼成UTF-8是11000010 10101001(0xC2 0xA9),但不能編碼成11100000 10000010 10101001,UTF-8規(guī)定每個字符只能用盡可能少的字節(jié)來編碼。
一、接線方法:編碼器有5條引線,其中3條是脈沖輸出線,1條是COM端線,1條是電源線(OC門輸出型)。編碼器的電源可以是外接電源,也可直接使用PLC的DC24V電源。電源“-”端要與編碼器的COM端連...
旋轉(zhuǎn)編碼器是用來測量轉(zhuǎn)速的裝置,光電式旋轉(zhuǎn)編碼器通過光電轉(zhuǎn)換,可將輸出軸的角位移、角速度等機械量轉(zhuǎn)換成相應的電脈沖以數(shù)字量輸出(REP)。它分為單路輸出和雙路輸出兩種。技術(shù)參數(shù)主要有每轉(zhuǎn)脈沖數(shù)(幾十個...
http://wenku.baidu.com/view/ce0d0b1fb7360b4c2e3f64fc.html 一、光電編碼器,是一種通過光電轉(zhuǎn)換將輸出軸上的機械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感...
格式:pdf
大?。?span id="xrudh89" class="single-tag-height">281KB
頁數(shù): 2頁
評分: 4.4
本文以光電編碼器為例介紹了數(shù)控檢測系統(tǒng)的種類,詳細分析了光電編碼器的結(jié)構(gòu)原理。分析SZLF-102.4BM-C05L光電脈沖編碼器電路原理,把機械轉(zhuǎn)角通過光電轉(zhuǎn)換元件將變化的光信號轉(zhuǎn)換成近似正弦波的電信號,然后由放大電路、整形電路、經(jīng)頻率---電壓變換器變成正比于頻率的電壓,作為速度反饋信號,供給速度控制單元,進行速度調(diào)節(jié)。
格式:pdf
大?。?span id="qj9l83b" class="single-tag-height">281KB
頁數(shù): 2頁
評分: 4.7
序號 物料編碼 型號規(guī)格 1 3225040084179578 熒光管 /歐司朗DULUXSTAR CL/7W 2 3225080084179570 金屬鹵化物燈 /歐司朗HQI-E/涂粉70W 3 3225040082797872 熒光管 /OSRAM DULUXSTAR/TWIST 23W 4 3225040084513150 熒光管 /歐司朗YZ15T8 15W 5 3225040084179582 熒光管 /歐司朗 電子節(jié)能燈 DULUXSTAR 32W 6 3225990084534074 節(jié)能燈 /歐司朗 24W 7 3213100084566170 日光燈具 歐司朗LMY-36W 8 3213100084179573 日光燈具 歐司朗LMY-2*36W 9 3229990083704157 應急日光燈具 歐司朗LMYyj-1*36W 10 3213100084566
卷積碼擁有良好的糾錯性能,是一種被廣泛應用于移動通信的信道編碼系統(tǒng)。一個(n,k,m)卷積碼編碼器由k個輸入,具有m階存儲的n個輸出的線形時序電路實現(xiàn)。通常, n和k是較小的整數(shù),且
反向CDMA信道使用(3,1,8)卷積碼,碼率
該電路由一個八位寄存器、三個碼生成邏輯、一個時隙發(fā)生器和一個四選一復用器構(gòu)成。mux的輸入為
卷積編碼器的初始狀態(tài)用rst異步清零信號置為0,
OMRON編碼器工作原理
由一個中心有軸的光電碼盤,其上有環(huán)形通、暗的刻線,有光電發(fā)射和接收器件讀取,獲得四組正弦波信號組合成A、B、C、D,每個正弦波相差90度相位差(相對于一個周波為360度),將C、D信號反向,疊加在A、B兩相上,可增強穩(wěn)定信號;另每轉(zhuǎn)輸出一個Z相脈沖以代表零位參考位。 由于A、B兩相相差90度,可通過比較A相在前還是B相在前,以判別編碼器的正轉(zhuǎn)與反轉(zhuǎn),通過零位脈沖,可獲得編碼器的零位參考位。 編碼器碼盤的材料有玻璃、金屬、塑料,玻璃碼盤是在玻璃上沉積很薄的刻線,其熱穩(wěn)定性好,精度高,金屬碼盤直接以通和不通刻線,不易碎,但由于金屬有一定的厚度,精度就有限制,其熱穩(wěn)定性就要比玻璃的差一個數(shù)量級,塑料碼盤是經(jīng)濟型的,其成本低,但精度、熱穩(wěn)定性、壽命均要差一些。 分辨率-編碼器以每旋轉(zhuǎn)360度提供多少的通或暗刻線稱為分辨率,也稱解析分度、或直接稱多少線,一般在每轉(zhuǎn)分度5~10000線。
假設我們只有一個沒有帶類別標簽的訓練樣本集合
自編碼神經(jīng)網(wǎng)絡嘗試學習一個
我們剛才的論述是基于隱藏神經(jīng)元數(shù)量較小的假設。但是即使隱藏神經(jīng)元的數(shù)量較大(可能比輸入像素的個數(shù)還要多),我們?nèi)匀煌ㄟ^給自編碼神經(jīng)網(wǎng)絡施加一些其他的限制條件來發(fā)現(xiàn)輸入數(shù)據(jù)中的結(jié)構(gòu)。具體來說,如果我們給隱藏神經(jīng)元加入稀疏性限制,那么自編碼神經(jīng)網(wǎng)絡即使在隱藏神經(jīng)元數(shù)量較多的情況下仍然可以發(fā)現(xiàn)輸入數(shù)據(jù)中一些有趣的結(jié)構(gòu)。
稀疏性可以被簡單地解釋如下。如果當神經(jīng)元的輸出接近于1的時候我們認為它被激活,而輸出接近于0的時候認為它被抑制,那么使得神經(jīng)元大部分的時間都是被抑制的限制則被稱作稀疏性限制。這里我們假設的神經(jīng)元的激活函數(shù)是sigmoid函數(shù)。如果你使用tanh作為激活函數(shù)的話,當神經(jīng)元輸出為-1的時候,我們認為神經(jīng)元是被抑制的。
注意到
進一步,讓
表示隱藏神經(jīng)元
其中,
為了實現(xiàn)這一限制,我們將會在我們的優(yōu)化目標函數(shù)中加入一個額外的懲罰因子,而這一懲罰因子將懲罰那些
這里,
其中
這一懲罰因子有如下性質(zhì),當
我們可以看出,相對熵在
我們的總體代價函數(shù)可以表示為
其中
為了對相對熵進行導數(shù)計算,我們可以使用一個易于實現(xiàn)的技巧,這只需要在你的程序中稍作改動即可。具體來說,前面在后向傳播算法中計算第二層(
我們將其換成
就可以了。
有一個需要注意的地方就是我們需要知道
證明上面算法能達到梯度下降效果的完整推導過程不再本教程的范圍之內(nèi)。不過如果你想要使用經(jīng)過以上修改的后向傳播來實現(xiàn)自編碼神經(jīng)網(wǎng)絡,那么你就會對目標函數(shù)