Monostable

Learning stuff 2012. 3. 24. 20:41

 

  

 

1Monostable  회로

 





trigger 신호를 일정시간동안 high 상태로 유지시켜주는 회로입니다.

저항은 470k옴을 직렬 6개 달았고 캐패시터는 0.33마이크로 패럿을 5개 병렬로 달아서    RC  delay값을 약 3.2 sec정도가 되도록 만들었습니다.  Vin에서 입력이 들어오면캡 양쪽 에서의 전압이 0V로 떨어지고 캡 왼쪽에서의 전압이 0V에서 캡의 영향으로Exponential  의 형태로 전압이 충전이 되며 약 3.2sec 후에는 inverter  threshold인 약 2.5V(이론상의 값)을 넘으면서 inverter output 0으로 바뀌면서 NOR Output 의 값이 상승하여 캡 양쪽의 전압이 5V이상이 되어서LEDoff된다물론 NOR gate의 출력 저항이 유한한 경우에는 입력에 펄스가 가해지더라도 0V까지 바로 떨어지지는 못하고 또한 Inverterthreshold 도 가정을 한 2.5V가 아니기 때문에 생성되는 펄스 폭에 어느정도의 오차가 존재 할 수 있을것이다. 하지만 회로를 구성한 후 실험을 하였을 때에 NOR gate의 출력이 0V까지 떨어지지 않고 2V 정도 밖에 떨어지지 않아서 inverter가 가지는 Vih값을 넘어버려 1로 인식을 해 버리는 데에서 문제가 생겼다.

 

 


 

 

2Monostable 회로




 

2번 회로는 mosfet을 이용한 것으로 스위치가  Open 시에는 캡 위에서의 전압이 5V로 유지되어 LEDOn 된 상태로 유지된다. 이때 스위치를 닫으면 즉 Short시키면 캡 양쪽의 전압이 0V로 낮아지고 스위치를 때면 mosfet이 캡으로 충전이 시작된다.  Mosfetgatevoltagemosfet  threshold 2V 를 넘으면 다시 LEDON이 된다

'Learning stuff' 카테고리의 다른 글

Open collector, Open drain  (0) 2012.04.11
schmitt trigger  (0) 2012.04.11
낸드으 플래시_1  (0) 2012.03.13
SDK axi_timer_ds764  (0) 2012.03.05
Bypass Capacitor  (0) 2012.02.07

낸드으 플래시_1

Learning stuff 2012. 3. 13. 10:48
낸드 플래시 메모리는 주로 대용량 자료를 deal with 할떄 쓰인다.
우선 낸드 플래시는 바이너리 데이터를 가지고 있다고 하더라도 자체에서 실행이 안된다. 그러면 어떻게 해주냐 Main binary를  SDRAM 으로 복사를 하고 난 후 SDRAM 에서 돌아간다는거.... 그러면 이 복사는 또 누가 해주냐 그건 부트로더(Boot loader)가 해 줍니다. 그래서 낸드 플래시로 지원 해 주는 임베디드 시스템을 들여다 보면 보통 낸드 플래시 부트로더와 internal RAM 이 함께 있게 된다는거. 즉 임베디드를 ON 해주면 Flash에 있는 부트 로더를 internal RAM으로 자동 복사 해 주고 그 안에서 로드된 부트 로더가 나머지 일을 해 줍니다.

 
그렇다면 낸드 플레시는 왜 위와 같은 스펙을 가지게 되었는것인가...  NOR 와는 달리!
제가 Orcad로 Nand  flah 가 mount 된 딤형태의 머시기 그 .... 여튼 그런걸 제작할때도 그렇던데 얘는 Address 를 안 쓰더라고요. 즉 노어 플래시와 에스디램은 주소를 표현하기 위해서 시피유와 메모리 사이에 데이터와 어드레스 라인을 연결하지만 낸드 플래시는 데이터 라인과 어드레스 라인을 연결하지 않아요. 그리고 그만큼의 space도 줄일 수 있겠지요.  
 
위와 같이 만드니까 작아져서 크기도 줄일 수 있고 라인도 몇개 연결 안되니 간단하고 용량까지 훨씬 크고 또한 중요한건 얘가 단가가 싸다는거.... 그니까 대충 어떤 스타일인지 감이 잡힌다. 대용량용(?)이라 해야되나

낸드 플레시 컨트롤러를 간단히 정리 해 보자면 다음과 같아요

ALE

  -     Address Latch Enable

-        낸드의 몇번째 페이지인지 알려주기 위해서 필요

 

CLE

-         Command Latch Enable

-        Erase, Read, Write 같은 command를 보내기 위해서 필요

 RE

   -     Read Enable

CE

WE

   -     Write Enable
 
근데 주소가 없으면 데이터에 어떻게 접근을 할까??
낸드 플래시는 주소를 표현할 때 블럭으로 표시를 해줍니다. 블럭은 작은 페이지로 이루어 져 있고 한 페이지는 각각 256byte 2Kbyte 4Kbyte 짜리로 나눌 수 있습니다.


page -> block -> plane -> device 순이지요

읽기 쓰기는 page단위로, 지우기는 block 단위로 동작을 합니다. 그래서 낸드 플레시는 노어와는 달리 배드 블럭 처리를 해 줘야 해요. 베드 블럭 처리는 일반적으로  XSR 방식으로 해 줍니다. 아 참 배드 블럭이란 그냥 쉽게 말해서 고장난 블럭 부분을 찾아내서 씨피유한테 가르쳐 주는 거에요.


그리고 지우기 동작
지우기 동작은 ALE  로 주소를 주고(참고로 낸드는 주소가 없으니 낸드 플래시 컨트롤러에 죠야 합니다) 다음과 같이 두 싸이클에 통해서 명령어가 들어가게 되어 있어요.


그리고 낸드 플래시의 페이지 정보를 주기 위해서는 3사이클이 필요 하네요.


페이지 정보는 2번째 3번째 사이클에서 정해 진다고 하니 명령어 2번 페이지 정보 2번 총 4번의 동작을 하면 됩니다.
하드웨어 디버거로 동작하는건 잘 모르겠고
씨 프로그램으로 구현을 하면 다음과 같네여
 
#define NFCMD                   *(volatile unsigned char *)(0x4E000004)
#define NFADDR                  *(volatile unsigned char *)(0x4E000008)
#define NFDATA                  *(volatile unsigned char *)(0x4E00000C)
#define NFSTAT                  *(volatile unsigned char *)(0x4E000010)
#define NFEnable()              *(volatile unsigned long *)(0x4E000000) &= ~(1<<11)
#define NFDisable()             *(volatile unsigned long *)(0x4E000000) |=  (1<<11)
#define CMD_READ0               0x00
#define CMD_READ1               0x01
#define CMD_READ2               0x50
#define CMD_BLOCK_ERASE         0x60
#define CMD_READ_STATUS         0x70

void erase (void)
{

row = theParam->start_addr;
len=theParam->size>>14; 

NFEnable();

NFCMD = CMD_BLOCK_ERASE;
NFADDR = (row >> 9) & 0xFF;
NFADDR = (row>>17)&0xFF;
NFCMD = 0xD0;
   

  ㅇ

'Learning stuff' 카테고리의 다른 글

schmitt trigger  (0) 2012.04.11
Monostable  (0) 2012.03.24
SDK axi_timer_ds764  (0) 2012.03.05
Bypass Capacitor  (0) 2012.02.07
Mutual Information  (0) 2012.02.07

SDK axi_timer_ds764

Learning stuff 2012. 3. 5. 21:12

Gernerate mode

 

  -       The value loaded into the load register and it is called the generate value.

 -       Load bit is in the TCSR(Timer Control Status Register)

o   1 : load the counter

  -       ARHT(Auto Reload/Hold)

o   1 : roll over all ‘1’s to all ‘0’

  -       GENT(Generate_out)

o   1 : output pulse is generated

 

Capture mode

 

  -       The value of the counter is stored in the load register

-         TINT bit set

  -       Counter up or down is dependent on the UDT bit

-         The capture signal is sampled within the Timer/Counter with the S_AXI_ACLK

-         Capture event is defined as the transition on the sampled to the asserted state

-         ARHT bit

o   0 : capture event occurs

o   If the load register is  not read, subsequence capture events do not update the load register and are lost

o   1 : In contrast with the ‘0’, overwriting

  -       UDT : Count  up or down

 

Pulse Width Modulation mode

 

-         Control frequency and duty factor

-         Timer0 : period ; Timer1 : high time for the PWM0 output

-         MDT bit in the TCSR set to ‘0’

-         PWMA0 bit & PWMB0 bit in TCSR1 must be set to ‘1’

-         Both Generate_Out bit must be set

-         C_GEN0_ASSERT & C_GEN1_ASSERT must be set to ‘1’

  -       Period and Duty factor can be determined by the TLR0(Timer Load Register)&TLR1

o   When UDT=’0’

§  PWM_PERIOD = (MAX_COUNT–TLR0 + 2) * AXI_CLOCK_PERIOD

§  PWM_HIGH_TIME = (MAX_COUNT-TLR1+2) *AXI_CLOCK_PERIOD

o   When UDT=’1’

§  PWM_PERIOD = (TLR0+2)*AXI_CLOCK_PERIOD

§  PWM_HIGH_TIME=(TLR1+2)*AXI_CLOCK_PERIOD

 

 

 

 

Cascade mode

 

  -       Two timer/counter are cascaded to operate as a single 64-bit counter/timer

-         C_ONE_TIMER_ONLY should be set to’0’

-         C_COUNT_WIDTH should be set to ‘32’(width of each timer)

-         When UDP=’1’

o   TIMING_INTERVERVAL = (TLR + 4)*AXI_CLOCK_PERIOD

-         When UDP= ‘0’

o   TIMING_INTERVERVAL = (MAX_COUNT-TLR+4)*AXI_CLOCK_PERIOD

 

Interrupt

 

  -       TC interrupt signals can be signaled or disabled with the ENIT bit in the TCST

 

Register Data Types and Organization : Little endian!(Byte, Half word, Word)

 

 

Registers

 

-         TCSR0(Timer Control Status Register)

-         TLR0(Timer Load Register)

-         TCR0(Timer/Counter Register)

-         TLR1

  -       T CR1

 

TCSR0

 

  -       CASC

o   Enable cascade mode of timers

o   0 : Disable cascaded operation

o   1 : Enable cascaded operation

-         ENALL

o   Enable All Timers

o   0  : No effect on timers

o   1 : Enable all timers

-       PWMA0

o   Enable Pulse Width Modulation for Timer0

o   0 : disable

o   1 : enable

  -       T0int

o   Timer interrupt

o   0 : No interrupt has occurred

o   1 : Interrupt has occurred

o   Writing 1 : Clear T0INT(Clear to ‘0’)

-         ENT0

o   0 : Disable timer

o   1 : Enable timer

-         ENIT0

o   Enable Interrupt for timer0

o   0 : Disable interrupt

o   1 : Enable interrupt

  -       LOAD0

o   1 : Loads timer with value in TLR0

-          ARHT0

o   Auto Reload/Hold Timer0

o   0 : Hold counter or capture trigger

o   1 : Reload generate value or overwrite capture value

-         CAPT0

o   Enable External Capture Trigger

o   1 : Enable

  -       GENT0

o   Enable External generate signal timer

o   1 : Enable

-         UDT0

o   UP/DOWN Count timer0

-         MDT0

o   Timer0 Mode

o   0 : Timer mode is generate

o   1 : Timer mode is Capture


그렇다고.....ㅋ

 

'Learning stuff' 카테고리의 다른 글

Monostable  (0) 2012.03.24
낸드으 플래시_1  (0) 2012.03.13
Bypass Capacitor  (0) 2012.02.07
Mutual Information  (0) 2012.02.07
Information Theory 의 basic principle  (0) 2012.02.07

Bypass Capacitor

Learning stuff 2012. 2. 7. 20:31

1. 기본적인 개념
(1) R은 직류, 교류 둘다 전류가 흐름
(2) C는 교류(주파수가 높을수록)만 흐르고, 직류(주파수=0)는 흐르지 않음.
(3) L은 직류만 흐르고, 교류는 흐르기 힘듬

2. 예를 들어 아래와 같은 회로가 있을 때 입력으로 직류와 교류를 넣어준다면

(1) 파란 화살표 부분에서 교류(ac)성분은 GND를 통해 빠져 나가고(bypass) 직류(dc) 성분만 남음.
(2) BYPASS는 어떤 신호를 지나 가게 한다는 의미, 주로 전원 LINE과 GND사이에 붙여 전원에 실린
     고주파 노이즈를 제거하여 직류 안정을 위해 사용. 
(3) logic IC의 신호가 H->L, L->H로 천이 될 때 발생하는 스파크성 노이즈를 제거함. 또한 RS232, 프린터 포트
    등의 출력 단에도 적은 용량의 콘센서를 붙여 필요 없는 고파 성분을 제거함.


참고) 보통 104는 바이패스용으로 사용, 100uF/25V 전해 콘덴서는 필터용으로 사용
1. 바이패스용은 IC마다 전원단자에 사용(반드시 세라믹 사용, 되도록 smd type 권장)
2. 필터용은 전원 초입(정류 회로 혹은 DC공급 단자)에 붙이는 것이 바람직

참고) 커플링 캐피시터
  바이패스나 커플링은 동일한 캐패시터라고 할 수 있고, 다만 용도가 다르게 사용하는 것이라고 할 수 있음.
(1) 바이패스 : 특정 주파수에 공진, 그 주파수의 노이즈 성분을 GND로 흘리거나 특정 주파수 성분만 다음
                    블록으로 흘려주는 역활
(2) 커플링 : 주로 한단과 다른 단을 결합시켜주는 역할
                각 단에는 보통 dc bias가 걸려있어서 다른단의 dc특성에 영향을 주지 않고 결합시켜 주기 위하여
                dc는 차단하고 신호 성분만 다음단으로 연결시켜주는 역할

'Learning stuff' 카테고리의 다른 글

Monostable  (0) 2012.03.24
낸드으 플래시_1  (0) 2012.03.13
SDK axi_timer_ds764  (0) 2012.03.05
Mutual Information  (0) 2012.02.07
Information Theory 의 basic principle  (0) 2012.02.07

Mutual Information

Learning stuff 2012. 2. 7. 20:30

Mutual Information, Self-information   상호 정보, 자기 정보

수정일 : 2011-10-08

1. 개요

  ㅇ 자기 정보 (Self-information)
     - 다른 사건과는 관련없이 순전히 자기 사건 만의 발생 확률에 근거한 정보량
       

  ㅇ 조건부 자기 정보 (Conditional Self Information)
     - 사건 Y=yj가 주어졌을 때, 사건 X=xj가 발생되는 조건부 정보
       

  ㅇ 상호 정보 (Mutual Information)
     - 사건들 간에 상호 조건적으로 발생되는 연관성에 따른 정보량
        . 사건 Y=yj를 관찰하고, 이 때문에 사건 X=xj (i=1,2,...,n)에 대해 기대하는 정보량
        . 그 역도 성립
       
     - 정보량의 차이
       
        . 사건들이 통계적 독립 즉, P(xi|yj) = P(xi) 일 때
           .. I(xi;yj) = 0 -> 상호정보는 없다
        . 사건들이 종속적 즉, P(xi|yj) = 1 일 때
           .. I(xi;yj) = I(xi) -> 상호정보 = 자기정보


2. 채널을 통한 상호 정보량

  ㅇ 의미
     - 채널을 통해 전송된 정보량으로, 채널에 대한 정보공학적 특성을 나타냄
     - 2가지 정보량의 차이
       . 선험적 확률(사전 확률)에 의한 정보량(전송하기전 원래 갖고있던 정보량) 및
         후험적 확률(사후 확률)에 의한 정보량(수신된 심볼을 조건으로하여 송신심볼에
         기대되는 정보량)의 차이

  ㅇ 종류
     - 전향조건 상호정보
        . 전향조건확률에 의한 평균
     - 후향조건 상호정보
        . 후향조건확률에 의한 평균
     - 시스템 상호정보
        . 정보채널을 통해 전송된 평균정보량


3. 시스템 상호정보 = 평균적 상호정보량

  ㅇ 정보채널을 통해 전송된 평균정보량 
  ㅇ 수신측이 채널을 통해 획득 가능한 정보량

  ㅇ   I(X;Y) = H(X) - H(X|Y)

  ㅇ 특징
     - 양수    I(X;Y) ≥ 0
     - 교환성  I(X;Y) = I(Y;X)
     - 결합    

  ㅇ ... (작성중) ...

'Learning stuff' 카테고리의 다른 글

Monostable  (0) 2012.03.24
낸드으 플래시_1  (0) 2012.03.13
SDK axi_timer_ds764  (0) 2012.03.05
Bypass Capacitor  (0) 2012.02.07
Information Theory 의 basic principle  (0) 2012.02.07

Information Theory 의 basic principle

Learning stuff 2012. 2. 7. 20:29

Information  Theory

 

정보에 관한 수학적 이론. 일상용어로서의 정보는 <어떤 사항에 관한 알림>을 뜻하지만, 정보이론에서 다루는 정보는 통신·제어 시스템에서 전송·수신되는 과학이나 공학의 대상을 뜻한다. 즉 정보량이나 정보원(情報源) 에 수학적인 정의를 부여하고 통신로(通信路)의 정보전송용량, 정보원에서 발생하는 통신문(메시지)의 능률적 부호화, 예측 등을 수학적인 입장에서 연구한 것이다. 이처럼 정보를 자연과학·공학의 대상으로 연구해야 한다고 가장 먼저 제창한 사람은 Norbert Wiener 였다. 그는 제 2 차세계대전중 고사포의 제어에 관한 문제를 다루면서, 레이더와 고사포로 구성되는 제어시스템 안에서 정보의 흐름이 중요한 작용을 한다는 것, 더 나아가 인간의 신경계와 운동에 관해서도 이와 비슷한 시각이 적용될 수 있다는 것 등을 발견하고 정보가 과학의 중요한 대상이 됨을 지적하였다. 그러나 수학을 이용하여 구체적으로 정보이론을 체계화한 사람은 Claude Shannon 이다. 그는 1948년 논문 《통신의 수학적 이론 : The Mathematica1 Theory of Communication》을 벨전화연구소의 기관지에 발표하였는데 그 뛰어난 이론체계는 많은 각광을 받게 되었다. 섀넌 자신은 전기통신공학이 전문이어서 전기통신을 추상화하여 정보이론으로 체계화하였지만 그 모델은 인간과 인간, 인간과 기계, 기계와 기계 등 모든 커뮤니케이션 과정에 적용될 수 있는 것이었다. 그래서 실제로 전기통신공학뿐 아니라 언어학·사회학·생물학·의학·경제학 등 모든 학문 영역에 커다란 영향을 미치고 있다. .............

섀넌이 확립한 정보이론은 주로 정보를 운반하고 있는 기호의 확률적 성질에 착안한 것이다. 그런데 이 확률적인 수량화가 음악연구에서도 일찍이 받아들여져 음악에 내재된 요소들을 분석하는 데 적용된 바가 있다. 가장 대표적인 것이 1930년대에 수학자 G.D. 버코프의 <미적척도(aesthetic measure)>에 관한 연구이다. 그는 이미 정보이론의 정식화 이전에, 명확한 순서로 음악의 객관적 특징을 계량하여 통일과 복잡성의 비(比)에 따라 이 척도의 값을 구하고 나아가 같은 값이 되도록 하는 창작도 시도하였다. 또 정보이론이 학계에 제출될 무렵에는, 음악의 시뮬레이션이나 작곡가 사이의 개인 양식의 비교 등을 시도하는 이도 있었다. 이처럼 정보이론을 이용하여 음악의 요소들을 분석하고자 했던 일련의 노력들은, 박자구조에서의 강박(强拍)·약박(弱拍)의 구분과 같이 분석대상의 음이 등가(等價)가 아닌 경우가 많으므로 그다지 성공적이지는 못하였다. 그러나 음악 인지를 모델로 응용한 것이나 분석결과를 합성할 수 있도록 하는 정량적 분석을 가능케 한 것, 그리고 음악의 의미론에 관계 없이 분석이 이루어졌다는 것 등이, 정보이론에 의한 연구를 표방하지 않는 영역에까지 커다란 의의를 부여하였다. 한편 정보이론의 적용에 성공한 각 분야에서는 신호이론·패턴인식이론·언어이론·인공지능이론 등이 전개되었는데, 특히 언어구조에 주목한 N. 촘스키 등에 의해 언어이론이 체계화되었으며 그 외에 자연어처리 (Natural Language Processing) 를 목적으로 하는 의미론도 제시하였다. 인공지능 (Artificial Intelligence) 연구와의 관련에서는 학습기구·추론기구·지식구조 등을 체계화하는 데 중요한 역할을 하고 있다. 또 로보트공학에서는 패턴인식 (Pattern Recognition) 특히 화상분석(畵像分析) 분야가 연구대상이 되는 등, 넓은 의미에서의 정보이론은 정보과학 및 정보공학의 모든 기초분야를 포함하여 앞으로의 전개가 기대되고 있다. ..........  (Yahoo 백과사정 : 정보이론)

term :

제어 (Control)   사이버네틱스 (Cybernetics)   정보이론 (Information Theory)   Claude Shannon   Norbert Wiener   

site :

Wikipedia : Information Theory

여기에서 말하는 정보란, 신문의 뉴스나 특종기사와 같은 정보가 아니라, 문자 ·음성 ·화상(晝像) 및 생체의 유전자 등 넓은 의미의 정보를 뜻한다. 정보는 문자의 경우 종이와 잉크, 음성의 경우 공기의 소밀파(疎密波), 라디오 ·텔레비전에서는 전파 등과 같이 그것을 표시하기 위하여 약간의 물질과, 그것을 전달하기 위하여 에너지가 필요하다. 그러나 그 작용은 물질이나 에너지와는 다른 추상적인 개념이며, 어떤 의미에서는 물질이나 에너지를 제어하는 것으로도 생각할 수 있다.

협의의 정보이론에서는 정보의 내용이나 인간감정의 작용 등에 관하여는 논의하지 않으며, 정보를 순수하게 공학적으로 다루어 그 형식적 외관, 즉 부호화(符號化)된 정보의 전달 등에 관해서만 논의한다. 이 부분은 특히 통신이론이라고도 불린다. 이에 대하여, 넓은 뜻으로는 사이버네틱스 패턴(cybernetics pattern) 인식(認識), 학습이론 ·언어이론, 오퍼레이션 리서치(operation research) 등의 제분야와 밀접하게 관련된 광범위한 학문체계를 뜻한다.

정보이론은 통신방식의 발달과 더불어 발전하였다. R.V.L.하트리는 1920년대에 k종류의 부호를 n개 늘어놓음으로써 이루어지는 계열의 하나가 가지는 정보량은 배합의 수 kn종의 대수(對數)인 k=n log k에 의해서 가장 합리적으로 표시됨을 밝혔다. 이것이 정보량에서의 엔트로피(entropy)의 개념이다....., N.위너의 상관기(相關器) ·예측기(豫測器)의 이론 등 사이버네틱스의 일환으로서의 여러 이론이 정보이론의 발전상 중요한 성과로 꼽힌다. 정보이론을 가장 완전하게 체계적으로 확립한 사람은 벨 연구소의 C.E.섀넌이다. 섀넌은 정보를 확률과정으로서 파악, 정보량을 확률과정론에 도입하여 넓은 의미에서 정의하고, 잡음에 의한 영향을 고려하였으며, 정보량으로서의 엔트로피라든가 정보로(情報路)의 통신용량의 개념 등 많은 새로운 개념을 도입하였다.

정보이론의 통신공학상의 주된 응용은 정보의 양의 측도(測度:measure)를 정하는 일, 각종 통신방식의 통신로의 용량을 정하고, 필요한 정보를 요구되는 전송속도로 전달할 수 있도록 설계하는 일, 잡음에 의한 오전송(誤傳送)을 없애는 부호화의 연구, 예측 및 여파(濾波)의 이론을 이용하여 잡음에 파묻혀 있는 신호를 검출하는 일 등이다.

창조, 그 넌센스의 가장자리 : 샤논의 정보이론 (information theory) 에 관한 설명이다...... 

샤논은 1948년 "통신의 수학적 이론"(A Mathematical Theory of Communication)이라는 혁명적인 한편의 논문을 발표했다.벨연구소의 연구원이었던 그는 전화,전보,라디오 등에서 통신상의 잡음의 문제를 해결하기 위한 이론적 기초로써 이 문제를 연구했다.이것은 2차세계대전 동안 암호해독에 종사했던 그의 경력이 큰 도움이 되었다.  이 논문은 정보를 수량적으로 다루는 방법을 고찰하여 "정보량"(information content)의 정의를 세우고 이것을 통해 통신의 효율화를 비롯한 정보전달의 여러 가지 문제를 해결할 수 있는 이론적 기초를 제공했다.  

샤논은 정보단위로서 2진법 또는 비트를 택했다.비트는 갤런,온스,인치가 각 부피,무게,길이의 측도인 것처럼 정보량의 측도이다.1비트는 2가지의 똑같은 확률을 가진 메시지 가운데 하나의 선택이다."그것이 이것이냐?"는 질문에 대해 "예" 또는 "아니오"의 답이 가능하다."예"는 메시지를 받은 사람의 마음속에 있는 모든 불확실성을 제거해주는데 왜냐하면 그는 가능한 두 선택지 가운데 어느 하나가 답이라는 것을 알고 있기 때문이다."아니오"라는 답도 모든 불확실성을 제거해주는데 답이 첫 번째 것이 아니라 두 번째 것이라는 것을 알 수 있기 때문이다. 

이것은 단지 2개의 부호-"예"는 1,"아니오"는 0-로 되어있기 때문에 아주 융통성 있는 코드이다. 1은 무선 또는 전신 채널을 통해 전기적 임펄스의 형태로 송출하고 0은 임펄스가  송출되하지 않도록 하는 방식으로 전달할 수 있다.또는 "온"(on),"오프"(off)의 스윗치 형태로 표현할 수도 있다.비가 오고 있는지 아닌지 애매하다면 "비가 오고 있는가?"라고 물으면 된다.1또는 0의 송출이 답을 제공해줄 것이다.똑같은 것이 동전을 던져서 앞,뒤 어느것이 나올 것인가의 선택에,룰렛에서 붉은 것 또는 검은 것이 나올 것인가의 선택에,짝수가 나올 것인가 홀수가 나올 것인가의 선택에도 적용가능하다. 

다음 카드 맞추기 게임을 생각해 보자. 

"여기 세로 가로 4장씩 16장의 트럼프가 있다.이중 한 장만 머릿속에 점찍어 두시오" 

"예,점찍었습니다" 

"그것은 상단에 있는가?" 

"그렇습니다" 

"그럼 상단의 오른쪽 반에 있는가?" 

"아닙니다" 

"그럼 왼쪽 반의 상단에 있는가?" 

"아닙니다" 

"그럼 하단의 오른쪽에 있는가?" 

"그렇습니다" 

"당신이 점찍은 것은 크로바3이군요" 

 최종적으로 그 답을 알기위해서는 다음 세가지 조건이 필요하다. 

첫째,카드의 수.여기서는 16장이므로 아무런 정보도 없는 상황에서 알아맞힐 확률은 1/16이다. 

둘째,상대의 대답의 종류.여기서는 예,아니오 두 종류만 허용된다. 

셋째,질문횟수.여기서는 4회이다.16장의 카드에서 특정 카드를 알아맞히는데는 4회의 질문이 필요하다. 

이 셋종류의 수치는 다음과 같은 수식으로 표현된다. 

24 = 16 

이것은 일반적으로 다음과 같이 쓸 수 있다. 

W = 2n 

여기서 W는 카드의 수이고 n은 질문횟수이다.카드의 수가 알려지면 알고자하는 것을 확정지우는데 필요한 질문의 수가 결정된다.4회의 질문으로 16장의 카드속에서 한 장을 알아맞힐 수 있다.이것은 거꾸로 말하면 16장의 카드에서 1장을 알아맞히는데는 4회의 질문이 필요하다.이것을 수식을 나타내면 log216=4이다.

이것을 일반식으로 나타내기 위해서 양변에 log를 취해서 n에 대해서 정리하면 된다. 

logW = n log2 → n = logW/log2

     n = log2W 

앞서의 예에서 카드의 수는 16이므로 log216이 되어 n은 4가 된다.이 n이 정보량이다.이것의 단위가 비트(bit)인데 비트란 두가지 가운데 하나를 고르는 정보량의 단위다.그러므로 16장의 카드에서 어떤 특정 카드를 고르는 정보는 4비트이다.샤논은 이것을 확률적 방식으로 표현했다.16장 가운데 1장을 고를 확률은 1/16이므로 이것을 n = -log21/16로 표기하면 그 값 n은 앞서와 같이 4이다.

일반적으로 어떤 사상의 확률을 p라고 했을 때 이 n을 확률을 사용해서 표현하면 다음과 같다. 

  n = -log2P 

이 식을 사용해서 다음의 경우 정보량을 구해 보자.

주사위를 던져서 짝수의 눈이 나타날 사상을 E1,2의 눈이 나타날 사상을E2,어느 것이 나타날지 알 수 없다는 사상을 E3라 할 때 각 사상의 정보량은 얼마일까? 

짝수의 눈의 경우 확률 P(E1)은 1/2이고 그것의 정보량 n은 -log21/2=1 즉 1비트이다 .눈이 2가 나올 확률 P(E2)은 1/6이고 그것의 정보량 n은 -log21/6=2.584962..비트이다.주사위 눈이 어느것인지 알수 없다는 것은 주사위 눈이 1,2,3,4,5,6 중 어느것일 것이라는 것이므로 그것의 확률P(E3)=1이다.그러므로 그것의 정보량 n은 -log21,즉 0이다. 

눈이 2가 나올 정보량은 2.584962..비트라는 것은 무엇을 의미한는 것일까?그것을 확정짓기 위해 최대 3회의 질문이 필요하다는 것이다.(운이 좋다면 2회로 확정될 수 있다) 즉 6개의 눈을 임의로 두 무더기로 나누고 이것이냐고 묻는다.만일 아니라면 나머지 무더기 3개중에 하나인 셈이다.이것을 다시 둘로 나누는데 하나는 2개이고 다른 하나는 1개이다.2개인 것을 지적하면서 이것이냐고 묻는다.만일 아니오라면 나머지 1개가 찾고 있는 그것으로 확정된다.2회 질문으로 완료됨으로 2비트이다.만일 예라면 또 한번의 질문이 필요함으로 3비트가 된다.그러므로 2비트와 3비트 사이의 중간에 있는 값인 2.58..비트가 그것의 정보량이다.이것을 통해 분명해지는 것처럼 정보량이란 그 사상에 대해 모르는 정도에 대한 양이라고 할 수 있다.이것을 엔트로피라고 하는데 여기서 이 샤논의 정보량은 볼츠만의 엔트로피와 같은 의미임이 드러난다.  

그런데 우리는 지금까지 각 사상이 동일한 확률로서 발생한다고 가정했다.붉은 공과 흰공이 각 1개씩 있을 때 그것의 정보량은 1비트이다.그러나 8개의 붉은 공과 2개의 흰공이 한 상자에 들어 있을 때 그것의 정보량은 몇 비트인가?1비트라고 할 수 없는데 붉은공과 흰공의 확률이 다르기 때문이다.이 때는 각 사상의 정보량을 평균함으로써 그 계의 정보량을 얻을 수 있다.이것은 다음식으로 표현된다. 

n =  -P1log2P1 - P2log2P2 

10개 가운데 8과 2의 확률은 각각 P1=8/10.P2=2/10이므로 정보량은 다음과 같다. 

-4/5log2(4/5)-1/5log2(1/5)=0.32....비트가 되어 등확률일 경우 보다 "정보량이 적다." 이 말의 의미를 오해하지 말아야 하는데 이것은 그만큼 모르는 정도 즉 엔트로피가 적다는 것이다.이것의 의미를 분명히 하기 위해서 다음의 예를 보자. 

영어에서 각 알파벳(공백포함)은 단어에서 동일한 확률로 발생하는 것이 아니다.영어사전을 보면 e가 발생빈도가 가장 높고,z가 빈도가 가장 낮다.아래에 각 알파벳의 발생빈도가  나와 있는데 이것을 이용해서 알파벳의 정보량을 구해 보자. 

문자

발생확률

문자

발생확률

공백

0.1859

N

0.0574

A

0.0642

O

0.0632

B

0.0127

P

0.0152

C

0.0128

Q

0.0008

D

0.0317

R

0.0484

E

0.1031

S

0.0514

F

0.0208

T

0.0796

G

0.0152

U

0.0228

H

0.0467

V

0.0083

I

0.0575

W

0.0175

J

0.0008

X

0.0013

K

0.0049

Y

0.0164

L

0.0321

Z

0.0005

M

0.0198

 

 

n = -0.0819 log0.0819 -0.0642 log0.0642 - .....        -0.0005 log0.0005 = 4.08비트. 

이것을 수식으로 간단히 표현하면 다음과 같다. 

만일 모든 알파벳이 똑같은 확률로 발생한다면(이 경우 엔트로피가 가장 높다.) 정보량은 log227=4.754887..비트이다.영어알파벳은 발생빈도를 달리함으로써 정보량 즉 엔트로피를 줄이고 있음을 알 수 있다.여기서 실제 정보량(엔트로피) 4.08을 최대정보량(최대엔트로피) 4.754887..로 나눈 값 0.848을 "상대 엔트로피"(relative entropy)라고 하고 1에서 이것을 뺀 값을 "린던던시"(redundancy)라고 한다.영어 알파벳의 리던던시는 1-0.848=0.152이다. (redundancy : 여분, 과잉, 쓸데 없는것의 의미. 컴퓨터에서는 "그것이 없어도 전체 정보의 본질적인 뜻이 변하지 않는 정보"를 의미한다.)

일반적으로 상태의 수(가능경우의 수 즉 선택지)가 많을수록 엔트로피가 커질 것이다.그러나 상태의 수가 대단히 커서 겉보기에는 큰 엔트로피를 가질 것 같은 정보원에서도 각 상태들의 확률분포에 따라 엔트로피가 줄어들 수 있다.언어의 경우 각 알파벳 마다 빈도를 달리함으로써 엔트로피를 상당히 줄이고 있다.이 감소의 정도를 리던던시라고 한다. 

우리의 컴퓨터 자판기의 키는 모두 똑같은 크기로 되어 있다.원숭이가 이 자판기를 제멋대로 두드린다면 여기서 의미있는 문장이 만들어질 가능성은 거의 없다.베넷(W.R.Bennet)은 세익스피어의 햄릿의  "죽느냐,사느냐 그것이 문제로다."(To be,or not:that is the problem)는 문장을 만들어 내는 데는 1조마리의 원숭이가 초당 10개의 키를 두드리는 속도로 시행한다고 가정했을 때 우주가 존재해온 시간의 1조배가 걸린다는 계산결과를 얻었다. 

그러나 자판기의 키의 크기가 서로 다르다면 사정은 달라진다.예컨대 빈도가 높은 e 키는 가장 크게 하고, t,r,s키는 중간크기로.그리고 x나 z키는 아주 작게 한 자판기가 있다고 하자.원숭이는 제멋대로 키를 두드리겠지만 그렇게 만들어진 문장은 앞서처럼 완전히 제멋대로는 아닐 것이다.이것은 키의 비대칭적 크기가 리던던시를 생성시킴으로 엔트로피를 상당히 줄여 놓았기 때문이다.이 자판기로 원숭이가 "죽느냐,사느냐 그것이 문제로다."를 타이프해서 우리를 깜짝 놀라게 할지 모른다. 

알파벳의 빈도를 달리함으로써 엔트로피를 줄이는 이 방법을 1차근사라 하는데 이외에 엔트로피를 줄이는 많은 방법이 있다. 리던던시의 또 다른 형태는  단어 속에 어떤 철자가 나타날 확률이 그것에 선행하는 철자에 의존하는 방식이다.한 예로 e앞에는 i가 온다. 다만 e다음에 c가 올 경우는 예외이다.그래서 주어진 철자의 열에 후속하는 철자를 예측하기가 쉽다. 절대적인 것은 아니지만 th다음에 모음이 올 확률이 높다. 또 q가 주어지면  그 다음 a,u가 올 확률은 거의 100%이다.  

샤논은 영어텍스트에서 리던던시의 양을 산출하려는 몇가지 방법을 시도했다. 그는 예측가능성을 만드는 과외의 정보를 제거함으로써 문장의 메시지를 압축하기 위해서 암호에 관한 그의 지식을 사용했다.그는 무작위적으로 글자를 타이프해서 쓰레기문장을 만들었다.그리고 나서 리던던시의 규칙들을 부가시켜감으로써 그 문자열의 통계적 분포가 영어 문자열의 그것에 점점 근접해 가도록 만들었다..........

데이터 압축의 기초이론은 지금부터 약 50년전인 1948년에 샤논에 의해 시작되었다. 샤논은 주어진 정보를 통신하거나 기록하는데 최저 몇비트의 데이터가 있으면 좋을까하는 문제에 대하여 논의를 하여 정보에 포함된 여분인 부분을 제거한 본질적인 정보의 양으로 엔트로피로 불리는 것을 도입하였다. 그리고, 원래의 정보를 잃지않게 데이터압축을 한 경우, 압축의 한계가 엔트로피로 정하여 지는 것을 증명하였다. 즉, 아무리 이상적인 데이터 압축을 시행하여도 엔트로피로 정하여지는 사이즈보다 작게 되지 않는 것, 또, 만약 이 최소사이즈보다 작게 압축한 경우에 원래의 정보를 잡음없이 복원할 수 없다는 것을 보였다.


'Learning stuff' 카테고리의 다른 글

Monostable  (0) 2012.03.24
낸드으 플래시_1  (0) 2012.03.13
SDK axi_timer_ds764  (0) 2012.03.05
Bypass Capacitor  (0) 2012.02.07
Mutual Information  (0) 2012.02.07