달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'전자공학이론'에 해당되는 글 66

  1. 2015.10.16 2. Sequence
  2. 2015.09.16 윈도우 기반 서버, 클라이언트 Hello World!
  3. 2015.09.16 IP 유틸리티들
  4. 2015.09.08 1. Set
  5. 2015.09.07 라플라스 변환
  6. 2015.09.07 트랜지스터의 특성
2015. 10. 16. 15:30

2. Sequence 전자공학이론/이산수학2015. 10. 16. 15:30

    는 Definition을 나타내고,      는  Theorem을 나타낸다.


ordered pair

we call (x, y) on ordered pair.

(x1, x2)=(y1, y2) if and only if x1=y1, and x2=y2.


cartesian product

X x Y = { (x, y) | x∈X and y∈Y} 


sequence

A sequence is an ordered list.

S or {Sn} is a sequence named S, the entire sequence.

Sn is single element of the sequence S at index n.


sub-sequence

A sub-sequence {Snk} is a sequence that consist of certain element of {Sn} retained in the original order in S.


string

A string over a set X is a finite sequence of elements from X.


'전자공학이론 > 이산수학' 카테고리의 다른 글

6. Proofs  (0) 2015.10.17
5. Proposition  (0) 2015.10.17
4. function  (0) 2015.10.17
3. Relation  (0) 2015.10.17
1. Set  (0) 2015.09.08
:
Posted by youjin.A

윈도우 운영 체제를 기반으로 간단한 TCP/IP 소켓통신을 구현해 보았다.


 ws2_32.lib 라이브러리를 링크

윈도우 기반의 소켓을 '윈속'이라고 하는데 이를 개발 하기위해서는 헤더파일 <winsock2.h>를 포함시켜야 한다.

이것을 포함시키기 위해서는 ws2_32.lib 라이브러리를 링크시켜야 한다.

현재 Visual studio 2013을 사용하고 있는데 2008으로도 가능하다는 것으로 봐서 다른 버전에서도 그대로 적용 가능한 것 같다.

ws2_32.lib 라이브러리를 링크시키기 위해서는 Project>properties>Linker>Input>Additional Dependencies에 ws2_32.lib를 적고 적용시킨다.


다음으로 server와 client 프로젝트를 각각 열고 코드를 입력한다.



server 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <WinSock2.h>
 
void ErrorHandling(char* message)
{
    fputs(message, stderr);
    fputc('\n', stderr);
    exit(1);
}
 
int main(int argc, char ** argv)
{
    WSADATA wsaData;
    SOCKET hServSock;
    SOCKET hClntSock;
    SOCKADDR_IN servAddr;
    SOCKADDR_IN clntAddr;
    int szClntAddr;
    char message[] = "Hello World! \n";
 
    if (argc != 2){
        printf("Usage : %s <port>\n", argv[0]);
        exit(1);
    }
 
    if (WSAStartup(MAKEWORD(22), &wsaData) != 0){
        ErrorHandling("WSAStartup() error!");
    }
 
    hServSock = socket(PF_INET, SOCK_STREAM, 0);
    if (hServSock == INVALID_SOCKET){
        ErrorHandling("socket() error");
    }
 
    memset(&servAddr, 0sizeof(servAddr));
    servAddr.sin_family = AF_INET;
    servAddr.sin_addr.s_addr = htonl(INADDR_ANY);
    servAddr.sin_port = htons(atoi(argv[1]));
 
    if (bind(hServSock, (SOCKADDR*)&servAddr,
        sizeof(servAddr)) == SOCKET_ERROR){
        ErrorHandling("bind() error");
    }
 
    if (listen(hServSock, 5== SOCKET_ERROR){
        ErrorHandling("listen() error");
    }
 
    szClntAddr = sizeof(clntAddr);
    hClntSock = accept(hServSock, (SOCKADDR*)&clntAddr,
        &szClntAddr);
    if (hClntSock == INVALID_SOCKET){
        ErrorHandling("accept() error");
    }
    send(hClntSock, message, sizeof(message), 0);
 
    closesocket(hClntSock);
    closesocket(hServSock);
    WSACleanup();
    return 0;
 
 
}
cs



client 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <WinSock2.h>
 
void ErrorHandling(char* message);
 
int main(int argc, char ** argv)
{
    WSADATA wsaData;
    SOCKET hSocket;
    char message[30];
    int strLen;
    SOCKADDR_IN servAddr;
 
    if (argc != 3){
        printf("Usage: %s <IP> <port>\n", argv[0]);
        exit(1);
    }
 
    if (WSAStartup(MAKEWORD(22), &wsaData) != 0)
        ErrorHandling("WSAStartup() error!");
 
    hSocket = socket(PF_INET, SOCK_STREAM, 0);
    if (hSocket == INVALID_SOCKET)
        ErrorHandling("hSocketet() error");
 
    memset(&servAddr, 0sizeof(servAddr));
    servAddr.sin_family = AF_INET;
    servAddr.sin_addr.s_addr = inet_addr(argv[1]);
    servAddr.sin_port = htons(atoi(argv[2]));
 
    if (connect(hSocket, (SOCKADDR*)&servAddr,
        sizeof(servAddr)) == SOCKET_ERROR)
        ErrorHandling("connet() error!");
 
    strLen = recv(hSocket, message, sizeof(message) - 10);
    if (strLen == -1)
        ErrorHandling("read() error!");
    message[strLen] = 0;
    printf("Message from server : %s \n", message);
 
    closesocket(hSocket);
    WSACleanup();
    return 0;
}
 
void ErrorHandling(char* message)
{
    fputs(message, stderr);
    fputc('\n', stderr);
    exit(1);
}
cs




server 실행하기


project에 마우스 오른쪽> Properties>Debugging>Command Argument 에 포트번호를 적는다. 9190



그 다음 server프로젝트를 빌드하고 디버깅하면 다음과 같이 뜬다.




client 실행하기

client도 마찬가지로 project에 마우스 오른쪽> Properties>Debugging>Command Argument 에 들어간다.

Command Argument 에 다가 server의 ip주소, 포르번호를 적는다.

지금은 server와 client 둘 다 내컴퓨터이니까 Command Argument에 127.0.0.1 9190 이라고 적는다.

그리고 client 프로젝트를 빌드하고 디버깅하면 server 프로세스에서 보낸 Hello world! 라는 메세지가 뜬다.


:
Posted by youjin.A
2015. 9. 16. 12:41

IP 유틸리티들 전자공학이론/데이터 통신2015. 9. 16. 12:41

wire shark

Term Project #1 2013104430 안유진.hwp


nslookup 

해당 호스트의 IP 주소를 찾는다.

nslookup <host name>


ipconfig

호스트의 TCP/IP 정보를 보여준다.

해당 컴퓨터의 IP주소를 확인 할 수 있고 ipconfig /all을 입력하면 MAC 어드레스까지 확인이 가능하다.

리눅스: ifconfig


ping

입력한 호스트가 인터넷에 연결되어 있는지 확인할 수 있다.

ping <host name>


tracert

network layer의 packet이 다른 호스트에 도착하는 데 지나가는 경로를 확인할 수 있다.

tracert <host name>


netstat

로컬 호스트의 네트워크 상태에 대한 정보를 볼 수 있다.

:
Posted by youjin.A
2015. 9. 8. 23:29

1. Set 전자공학이론/이산수학2015. 9. 8. 23:29

    는 Definition


set

an unordered collection of object.

A = {1, 3, 5, 7}

B = { n | n is a prime number} which we read as 'the set of all n such that n is a prime number'.

Two sets X and Y equal if ((x∈X -> x∈Y) ^ (x∈Y -> x∈X)).

cadinality, denoted by |X|, is the number of elements in a set X.(size)


subset

We write X⊆Y to mean that any member of X is also in Y, and say that X is a subset.

X is proper subset if X ⊆ Y and X≠Y. 


Power set

The set of all subsets of X is called its power set P(X). Thus

P(X) =  { Y | Y⊆X}


partition

A partition S on a set X is a familly {A1, A2, ... , An} of subsets of X, such that

S = {A| (A⊆X) ^ (Aj∩Ak = ø. for every j, k) ^ ( A1∪A2∪ ... ∪ An = X)


operation

①union

X∪Y = { x| x∈X or x∈Y}

② intersection

X∩Y = { x| x∈X and x∈Y}

Two sets X and Y are disjoint if X∩Y = ø.

A collection of sets S is said to be pairwise disjoint if whenever X and Y are distinct sets in S, X and Y are disjoint. 

③ difference

X - Y = { x| x∈X and x∉Y}

④ complement

X^ ̄ = U - X

⑤ Other Notation

Let S = {A1, A2, A3, ... , An}

∪S = { x|x∈X for some X∈S} = A1∪A2∪ ... ∪An

∩S = { x|x∈X for all X∈S} = A1∩A2∩ ... ∩An 

pairwise disjoint의 예) S = { { 1, 4, 5}, {2, 6}, {3}, {7, 8} }


Properties of set operations



문제

'전자공학이론 > 이산수학' 카테고리의 다른 글

6. Proofs  (0) 2015.10.17
5. Proposition  (0) 2015.10.17
4. function  (0) 2015.10.17
3. Relation  (0) 2015.10.17
2. Sequence  (0) 2015.10.16
:
Posted by youjin.A
2015. 9. 7. 23:12

라플라스 변환 전자공학이론/수학2015. 9. 7. 23:12






다음 파일은 RLC회로의 미분방정식을 라플라스 변환과 역변환을 이용하여 푸는 문제들이다.

라플라스변환 회로 문제.hwp


'전자공학이론 > 수학' 카테고리의 다른 글

복소수와 페이저  (0) 2016.02.06
미분법  (0) 2016.02.06
벡터 해석(벡터 대수의 기본 법칙)  (0) 2016.02.06
연립 방정식 푸는 법  (0) 2016.02.06
상수 계수를 가진 1차, 2차 선형 미분방정식  (0) 2015.10.19
:
Posted by youjin.A
2015. 9. 7. 00:14

트랜지스터의 특성 전자공학이론/전자회로2015. 9. 7. 00:14

컬렉터 특성 곡선


위의 회로에서 V(BB)를 고정시킨다.

그리고 V(CC)를 증가시키면서 V(CE)의 변화에따른 I(C)의 변화를 살펴보면 다음과 같다.


그리고 위의 실험을 V(BB)를 증가시키면서 반복하면 다음과 같은 그래프가 나온다.

위 그래프는 세 영역으로 나눌 수 있는 데 왼쪽부터 Saturation영역, 중간은 Active영역, 오른쪽은 Breakdown영역이다.

여기서 우리는 Active영역을 다루는 데, 이영역은 거의 일정한 직선으로 본다.

그러면 I(C) = B(베타)I(B)

실제로는 Active영역에서 I(C)는 증가하지만 증가하지 않고 일정하다고 가정하면 문제를 풀 수 있기때문이다.



직류 등가 회로


베이스-이미터 접합의 전기적 특성은 다이오드 특성 곡선과 같다.

V(CE)가 활성영역일때 I(C)는 I(B)에 종속적이다.

컬렉터 전류와 베이스 전류의 비는 전류 이득이고 이를 베타로 표시한다.값은 20~200정도 이다.

   

컬렉터 전류와 이미터 전류의 비는 알파로 표시한다. 값은 0.95~0.99 사이이다. 그 이유는 I(C)가 I(E)보다 약간 작기 때문이다.



직류 부하선

맨 위의 회로에서 이번에는 V(CC)가 고정되어 있는 경우를 고려해본다.

핑크색깔 직선은 V(CC)가 고정 되어 있을 때, V(BB)를 변화 시켰을 때의 V(CE)와 I(C)이다.

V(BB)를 증가 시킴에 따라 I(B)가 증가하면 핑크색 그래프위의 점은 차단점->Q1->Q2->Q3->포화점으로 이동한다.

차단점은 I(B)가 0일 때, I(C) = 0이고 V(CE) = V(CC)인 점이고

포화점은 V(CE)가 0인 이상적인 상황에서 흐를 수 있는 최대 전류 IC(sat) 이다.



동작점


베이스에 교류신호를 입력했을 때 신호가 차단점 이하이거나 포화점 이상이면 출력파형이 짤리게 된다.


출력 파형이 짤리지 않게 하기위해서 교류신호 말고 DC로 바이어스를 시켜준다.


회로에 교류 입력 전압을 인가하지 않았을 때 I(C)와 V(CE)를 동작점이라고 하는데 이 동작점을 부하선의 가운데로 맞춰준다.



:
Posted by youjin.A