*주*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 25
검색어 입력폼
  • 관계지향DB 구축(C++, postgres 연동)
    REPORT데이터베이스 설계 프로젝트- 호텔객실관리 시스템 -과 목 명 : 데이터베이스담당교수 : 교수님제 출 일 : 2013년 6월 13일- contents -응용 프로그램의 설정1. 응용 프로그램의 개요2. 응용 프로그램의 목적3. 응용 프로그램의 사용자4. 응용 프로그램의 요구사항 분석데이터베이스의 설계1.데이터베이스 구성항목 (데이터)1) 데이터 세부내용 및 구득방법2.데이터베이스 설계방법1) 요구사항을 반영한 설계방법/모델링2) 설계내역 (ERD 혹은 class diagram + 스키마)3) 제약조건 (응용 프로그램의 요구사항) 명시4) SQL sample데이터베이스의 구현1. DBMS에서의 구현방법1) 데이터 로딩2) 데이터 세부내용3) 인덱스 설계4-1) 대표적인 쿼리 설계와 예상 출력 결과4-2) 대표적인 쿼리 설계와 예상 출력 결과(C와 연동)2. C를 이용한 DB의 연동1) 회원 등록 및 수정2) 이용내역조회3) 객실 선택 및 조회데이터베이스 활용방법1.응용 프로그램과의 연결 및 활용방법2.활용이나 분석을 위한 사용예제3.예상되는 결과와 성능4.한계와 향후 개선 방안데이터베이스 설계 프로젝트- 호텔 객실관리 시스템 -응용 프로그램의 설정1. 응용 프로그램의 개요? 호텔 객실관리 시스템- 호텔을 이용하는 고객들과 대여를 관리하는 직원을 위해 원하는 객실의 정보를 제공하여 원활한 대여를 유도하며 객실을 효율적으로 관리할 수 있게 하는 시스템2. 응용 프로그램의 목적호텔 프런트 직원들이 이용할 수 있는 시스템을 설치하여 객실을 대여하려는 고객에게 원하는 객실정보를 입력받고 적절한 객실 정보를 제공- 대여하려는 고객에게 원하는 객실 정보를 입력받음- 그에 해당하는 객실의 정보를 시스템으로 파악한 후 사용자에게 알려줌- 만약 원하는 객실이 없을 경우 가장 유사한 다른 객실 권유3. 응용 프로그램의 사용자? 호텔 프런트에서 객실 대여를 담당하는 직원, 호텔 이용 고객- 직원- 회원- 비회원4. 응용 프로그램의 요구사항 분석- 각 객실별 대여 상태 분석자g, substring)- substring과 string의 값을 비교하여 Boolean값을 return한다.⑦ JOIN ON- 테이블들을 ON 이후의 제약조건에 의해 합쳐주는 역할을 한다.데이터베이스의 구현1. DBMS에서의 구현방법1) 데이터 로딩?ERwin에서 테이블 모델링데이터 베이스로 연결하는 과정데이터베이스의 구조를 확인하는 과정.생성된 .dll 파일을 txt형식으로 열었을 때.PGAdmin 데이터베이스 접속 과정추출했던 dll파일을 SQL에 오픈했을 때?pgAdmin에서 데이터베이스 스키마 생성확인2) 데이터 세부내용- 층(floor) 테이블- 이용자(iuser) 테이블- 객실(room_space) 테이블- 주차공간(parking_space) 테이블- 이력(registration) 테이블3) 인덱스 설계Primary Key가 등록되면 자동으로 인덱스가 설정된다.설정된 인덱스 확인4-1) 대표적인 쿼리 설계와 예상 출력 결과1. 이용자의 테이블에서 회원번호, 이름, 핸드폰 번호를 출력2. 층 테이블에서 층 번호, 현재 대여 가능한 회원과 비회원 객실 수 출력2. 발권테이블에서 입실시간과 퇴실시간을 이용하여 요금을 계산3. Room_space테이블에서 입실 가능한 곳(1으로 표시)과 그 곳의 위치를 출력4-2) SQL문을 C에서 사용할 경우의 표현 방법? c코딩에서 사용된 이용자 등록 SQLiuser 테이블에있는 각각의 필드에 레코드 값을 입력받아서 등록함? 위의 코딩상 SQL을 실제 Pgadmin에서 실행했을때의 화면? SQL문을 실행한뒤 테이블 확인VALUES로 등록한 데이터가 테이블에 들어와 있음을 확인가능프로그램 실행 메인화면메인화면 이용자를 선택한다.이용자 등록을 선택한다.이용자의 정보를 입력후 등록한다.이용자 등록완료pgadmin에서 확인한 등록 이용자 테이블메인메뉴에서 이용자 수정선택이용자 정보 수정수정된 이용자 테이블메인메뉴에서 이용자 조회2) 요금조회요금조회 선택입차시간과 출차시간을 이용한 요금조회3) 객실 선택 및 조회메인메뉴에서 객***************************************n");while(1){pCon = PQsetdbLogin("165.246.31.207", "54321", NULL, NULL, "12090876", "12090876", "12090876");PQsetClientEncoding(pCon, "EUCKR");// Encoding = 한글if( PQstatus(pCon) == CONNECTION_BAD ){printf("Connection Fail..nn");}else{printf("Connection Success..nn");break;}}while(1){switch(nMenu){case MENU_EXIT:PQfinish(pCon);exit(1);break;case MENU_MAIN:call_menu_main();break;case MENU_USER_MAIN:call_menu_user_main();break;case MENU_INSERT_USER:call_menu_insert_user();break;case MENU_SEARCH_ROOM:call_menu_search_room();break;case MENU_SELECT_ROOM:call_menu_select_room();case MENU_VIEW_ALL_IUSER:call_menu_view_all_iuser();break;case MENU_MODIFY_IUSER:call_menu_modify_iuser();break;case MENU_ADMIN_MENU:call_menu_admin_main();break;case MENU_FEE:call_menu_fee();break;}}}void call_menu_main(){printf("=============================n");printf("[ 메인메뉴 ]n");printf(" 0 : 프로그램 종료n");printf(" 1 : 이용자n");printf(" 2 : 관리자n");printf("=================ntf("등록이 실패하였습니다.n");}nMenu = MENU_USER_MAIN;return;}else if( menu_in == 2 ){system("cls");nMenu = MENU_MAIN;return;}}void call_menu_search_room(){int ii, jj;int nRow, nField;int floor_;printf("검색할 객실을 입력하시오. n");printf("층 입력 : ");scanf("%d", &floor_);PGresult *pRes = NULL;printf("=============================n");sprintf(sql, "SELECT current_nmember_RS, current_member_RS FROM floor WHERE floor_id = %d;", floor_);pRes = PQexec(pCon, sql);if( PQresultStatus(pRes) == PGRES_TUPLES_OK ){nRow = PQntuples(pRes);nField = PQnfields(pRes);if( nRow == 0 ){printf("검색 실패..n");return;}printf(" 일반 객실공간 / 회원 객실공간 n");for( ii = 0 ; ii < nRow ; ii++ ){printf("[%d] ", ii);for( jj = 0 ; jj < nField ; jj++ ){char* str = PQgetvalue(pRes, ii, jj);printf("%s ", str);}printf("n");}}else{PQclear(pRes);}{printf("=============================n");printf("[ 메인메뉴 > 회원 관리 ]n");printf(" 0 : 프로그램 종료n");printf(" 1 : 이용자 등록n");printf(" 2 : 객실 조회n");printf(" 3 : 객실 선택n");printf(" 4 : 메인 메뉴로..n");printf("=====t_member_RS-1 WHERE floor_id = %d;", floor_);pRes = PQexec(pCon, sql);if( PQresultStatus(pRes) == PGRES_TUPLES_OK ){nRow = PQntuples(pRes);nField = PQnfields(pRes);if( nRow == 0 ){printf("검색 실패..n");return;}printf(" 비회원 객실공간 / 회원 객실공간 n");for( ii = 0 ; ii < nRow ; ii++ ){printf("[%d] ", ii);for( jj = 0 ; jj < nField ; jj++ ){char* str = PQgetvalue(pRes, ii, jj);printf("%s ", str);}printf("n");}}else{PQclear(pRes);}{printf("=============================n");printf("[ 메인메뉴 > 회원 관리 ]n");printf(" 0 : 프로그램 종료n");printf(" 1 : 이용자 등록n");printf(" 2 : 객실 조회n");printf(" 3 : 객실 선택n");printf(" 4 : 메인 메뉴로..n");printf("=============================n");printf(">>");scanf("%d", &nMenu);if( nMenu == 0 )nMenu = MENU_EXIT;else if( nMenu == 1 )nMenu = MENU_INSERT_USER;else if( nMenu == 2 )nMenu = MENU_SEARCH_ROOM;else if (nMenu == 3 )nMenu = MENU_SELECT_ROOM;else if( nMenu == 4 )nMenu = MENU_MAIN;system("cls");}}}void call_menu_admin_main(){printf("=============================n");printf("[ 메인메
    공학/기술| 2013.06.27| 37페이지| 5,000원| 조회(216)
    미리보기
  • GPS개론 오차 보정을 통한 위치 정립
    목 차1. 실습목적 ………………………………………………………… 22. 기본개념 ………………………………………………………… 2GPS System의 오차요인용어 및 계산식3. Assignment……………………………………………………… 5Program Coding결과4. 고 찰 ……………………………………………………………… 15※ 실습 목적최근 GPS 사용의 범위가 급격히 증가하며, IT 분야에서 그 정확도는 날이 갈수록 중요해지고 있다. 이런 GPS 사용에 있어 허용오차 기준은 GPS 사용에 있어 중요한 과제로 논의 된다. 강의에서 배운 오차요인을 토대로 Matlab 프로그램의 알고리즘을 사용하여 주어진 시각의 좌표를 계산하고, 각각의 오차원인을 줄여가며, 그 변화를 살펴본다.※ 기본 개념GPS System의 오차요인ⅰ) 전리층 오차약 3500km 고도 상에 집중적으로 분포되어 있는 자유 전자와 GPS 위성 신호와의 간섭현상에 의해 발생한다. SA(Selective Availability) 이후 가장 큰 오차 요인으로 코드 측정치에서는 지연, 반송파 위상 측정치에서는 앞섬 형태로 발생한다. 오차의 크기는 약 7m 내외로서 오후 2시 경에 최댓값을 지니며, 밤에는 전리층 활동량이 적으므로 최솟값을 지닌다. 전리층을 통과하는 신호의 주파수에 의해 결정되므로 이중 주파수에 대한 측정치를 이용하면 전리층 오차를 계산할 수 있다. 일반적으로 전리층 지연을 보정하는 데 쓰이는 전리층 모형 식으로 Klobuchar 모형식이 있으며 약 50% 정도까지의 오차 보정효과가 나타난다.ⅱ) 대류층 오차고도 50km까지의 대류 층에 의한 GPS 위성 신호 굴절현상으로 인해 발생하며 코드 측정치 및 반송파 위상 측정치 모두에서 지연 형태로 나타난다. 오차의 크기는 약 3m ~ 20m로서 기저선의 길이가 짧고, 기준국과 사용자 사이의 고도차이가 작을 경우, 오차 상관관계가 크므로 차분 기법에 의해 상쇄된다.ⅲ) 위성 궤도 및 시계 오차위성 위치를 구하는 데 필요한 위성 궤도 정보의 부정확성으로 인{k} : 최소자승법으로 추정ⅴ) 최소자승법(Least square)잔차의 제곱이 최소가 되도록 하는 것으로, 미지수의 개수보다 주어진 점의 개수가 많을 경우 사용한다.p _{r} ^{s1} (t)`=` sqrt {(x ^{s1} `-`x _{r} ) ^{2} `+`(y ^{s1} `-`y _{r} ) ^{2`} +(z ^{s1} `-`z _{r} ) ^{2}}p _{r} ^{s2} (t)`=` sqrt {(x ^{s2} `-`x _{r} ) ^{2} `+`(y ^{s2} `-`y _{r} ) ^{2`} +(z ^{s2} `-`z _{r} ) ^{2}}p _{r} ^{s3} (t)`=` sqrt {(x ^{s3} `-`x _{r} ) ^{2} `+`(y ^{s3} `-`y _{r} ) ^{2`} +(z ^{s3} `-`z _{r} ) ^{2}}p _{r} ^{s4} (t)`=` sqrt {(x ^{s4} `-`x _{r} ) ^{2} `+`(y ^{s4} `-`y _{r} ) ^{2`} +(z ^{s4} `-`z _{r} ) ^{2}}의사거리를 측정하기 위해선 GPS 수신기의 좌표 값과 수신기 시계오차를 알아야 한다. 관측방정식을 나타내보면 y _{obs} (t)`=`G( bar{x} (t),t)`+` {sigma G} over {sigma x} x` _{bar{x}} (x`-` bar{x} )`+`HOT 라는 공식을 얻을 수 있다.y``=`y _{obs} `-`y _{com}##x`=`x`-` bar{x}##H``=` {sigma G} over {sigma x} _{bar{x}}라고 써준 후, I번 째 측정값의 방정식을 다시 써주면, y _{i} `=`H _{i} x`+` epsilon _{i} 라고 쓸 수 있다.H 매트릭스는 H(1,1)`=` {sigma G} over {sigma x _{i}} `=` {-(x ^{s} `-`x _{r} )} over {sqrt {(x ^{s} `-`x _{r} ) ^{2} `+`(y ^{s} `-`y _{r} ) ^{2` -26465.412431 2071.275229 -2222.469347 -389.909336 8 9 10 97% PG09 -14959.180416 -895.428603 21377.870901 230.626612 7 6 5 121% PG18 3433.133323 15780.124819 21494.310106 246.499127 6 6 4 122% PG21 -354.365677 23822.265930 11711.332882 -289.154913 9 7 6 121% PG24 -15329.335165 19122.015736 10180.667089 -3.632912 9 5 7 137% PG26 -18364.188618 -7173.407650 17320.924236 -45.999317 5 5 4 105rPosOfSV = [ -26465.412431 2071.275229 -2222.469347 % PG05-14959.180416 -895.428603 21377.870901; % PG093433.133323 15780.124819 21494.310106; % PG18-354.365677 23822.265930 11711.332882 ; % PG21-15329.335165 19122.015736 10180.667089; % PG24-18364.188618 -7173.407650 17320.924236 ]; % PG26rPosOfSV= rPosOfSV * 1000; % km 단위이므로 m 단위로 변환%% H 행렬을 작성하고 최소자승추정법을 적용해 계산한 좌표와 고시좌표(참값과 추정치의 3차원 오차 비교)% 추정한 좌표값을 Pos라고 한다면 3차원 오차는 norm(Pos - TruePos)로 계산가능% 계산에 사용할 변수 준비rJ = zeros(rNumOfSV, 4); % (rNumOfSV*4) J matrixrK = zeros(rNumOfSV, 1); % (rNumOfSV*1) K matrixrRho = zeros(rNumOfSV, 1); % (rNumOfSV*1) Rho ma465.412431 2071.275229 -2222.469347 % PG05-14959.180416 -895.428603 21377.870901; % PG093433.133323 15780.124819 21494.310106; % PG18-354.365677 23822.265930 11711.332882 ; % PG21-15329.335165 19122.015736 10180.667089; % PG24-18364.188618 -7173.407650 17320.924236 ]; % PG26rPosOfSV= rPosOfSV * 1000; % km 단위이므로 m 단위로 변환%% H 행렬을 작성하고 최소자승추정법을 적용해 계산한 좌표와 고시좌표(참값과 추정치의 3차원 오차 비교)% 추정한 좌표값을 Pos라고 한다면 3차원 오차는 norm(Pos - TruePos)로 계산가능% 계산에 사용할 변수 준비rJ = zeros(rNumOfSV, 4); % (rNumOfSV*4) J matrixrK = zeros(rNumOfSV, 1); % (rNumOfSV*1) K matrixrRho = zeros(rNumOfSV, 1); % (rNumOfSV*1) Rho matrixC = 2.99792458e+08;% 반복 변수 설정rNumOfIteration = 10;rIntermediate = zeros(rNumOfIteration, 6);% 초기값 설정 : APPROX POSITION XYZ in "suwn0900.13o"rx_initial = [-3062023.1994 4055449.2325 3841819.5904 C*0.0]';rx_estimated = zeros(4,1);delT_s = zeros(rNumOfSV,1);[gw_T, gs_T] = date2gwgs(2013, 3, 31, 2, 45, 0);[gw_Toe, gs_Toe] = date2gwgs(2013, 3, 31, 2, 0, 0);ii = 1;%% 시계오차 계산(2013. 3. 31 2 00 00의 Data)rCloct(4), t, PRN21(:,1),PRN21(:,2),PRN21(:,3));[rMoveOfSV(5,1),rMoveOfSV(5,2),rMoveOfSV(5,3)] = Lagrange(new_t(5), t, PRN24(:,1),PRN24(:,2),PRN24(:,3));[rMoveOfSV(6,1),rMoveOfSV(6,2),rMoveOfSV(6,3)] = Lagrange(new_t(6), t, PRN26(:,1),PRN26(:,2),PRN26(:,3));rMoveOfSV = rMoveOfSV * 1000; % km 단위를 m 단위로 바꾸어줌.%% 시계오차 계산(2013. 3. 31 2 00 00의 Data)rClockCorrection = [-0.389897264540D-03 -0.136424205266D-11; % PRN 50.230632722378D-03 0.261479726760D-11; % PRN 90.246497336775D-03 0.193267624127D-11; % PRN 18-0.289144460112D-03 -0.216004991671D-11; % PRN 21-0.362796708942D-05 -0.682121026330D-12; % PRN 24-0.460292212665D-04 0.148929757415D-10]; % PRN 26while ii 1if rIntermediate(ii-1, 6) < rIntermediate(ii, 6)rx_estimated(1) = rIntermediate(ii-1, 1);rx_estimated(2) = rIntermediate(ii-1, 2);rx_estimated(3) = rIntermediate(ii-1, 3);rx_estimated(4) = rIntermediate(ii-1, 4);breakendend% x initial updaterx_initial = rx_estimated;% ii updateii = ii + 1;endfprintf('위성 시계오차와 신호전달시간 고려 : %5f n', rIntermedi
    공학/기술| 2013.11.16| 17페이지| 2,000원| 조회(327)
    미리보기
  • GPS개론 julianday계산과 gpstime 도출 평가A+최고예요
    목 차1. GPS Week Number, GPS Weekday Number, DOY 산출 ···································21-1.Julian Date (JD) ·················································································21-2.GPS Week Number ···············································································21-3.GPS Weekday Number ···········································································21-4.DOY ( Day Of Year ) ···········································································31-5.Matlab Cording 및 결과분석 ···································································32. GPS Week Number, GPS Week Second 산출 ········································62-1.GPS Week Seconds ·············································································62-2.Matlab Cording 및 결과분석 ···································································73. 실습 고찰 ·························································································81. Calendar Day를 변환하여 GPS Week Number, GPS Weekday Number, 그리고 DOY를 산출하는 코드를 작성하라. 작성한 프로그램을 테스트 하기 위해 아래의 날짜를 이용하라.1-1) 2011년 3월 1일 ( 환산 결과: Week: 1625, Day: 2, DOY: 060 )1-2) 2008년 3월 1일 ( 환산 결과: Week: 1468, Day: 6, DOY: 061 )function [gw,gd,doy] = date2gpstime ( year, month, day )ⅰ) Julian Date (JD)▶ B.C 4713년 1월 5일 낮 12시부터 센 평균태양일(mean solar day)의 수로써 우리가 실습에 사용한 날짜인 2011년 3월 1일을 예로 들면, 2455621.5이 나오고 정수부분은 지나온 일수, 소수점 자리인 0.5는 시간을 나타내며 자정이 0이 아닌 이유는 첫 기준이 낮 12시부터 센 태양일이기 때문에 소수점 자리가 없으려면 낮 12시의 JD를 측정하면 소수점자리가 사라지게 된다.계산식JD = INT [362.25*year] + INT [30.6001(month+1)] + day + hour/25 + 1720981.5여기서 INT는 여기서 INT는 ()안에 들어간 값을 넘지 않는 가장 큰 정수이다ⅱ) GPS Week Number▶1980년 1월 6일 자정부터 센 주의수이다.계산식INT [(JD - 2444244.5)/7]위식의 2444244.5는 1980.01.06. 자정의 JD이며 이때부터 날을 세기 때문에 현재의 JD에서 1980.01.06.자정의 JD를 빼준 후 주의 수를 구하기 위해 7을 나누어준 식이다.ⅲ) GPS Weekday Number▶요일을 0에서 6사이의 정수로 표현하는 것0은 일요일, 1은 월요일, 2는 화요일 , , 6은 토요일 로 나타낸다.ⅳ) DOY ( Day Of Year )▶ 1월 1일을 DOY = 001로 시작해서 1년 중 며칠 째 인가를 나타낸다.12월 31일의 경우에는 윤년일 경우는 DOY = 366, 윤년이 아닐 때는 DOY = 365 이다.윤년이라 함은 일반적인 경우는 2월의 일수가 28 일인데 29일로 하루 더 많아 지는 해를 뜻한다.윤년 계산법윤년 = (4의 배수 ∩ 100의 배수가 아닌 것) ∪ 400의 배수1-1 코딩function [jd, mjd] = date2jd(year, month, day)%함수의 출력값은 Julian Date, Modified Julian Date이며,%함수이름은 date2jd이고 입력값은 year, month, day이다.if month 2%월의 입력 값이 2보다 클 경우,if (mod(year,4) == 0) & (~(mod(year,100) == 0)) | (mod(year,400) ==0)doys(2) = 29; %윤년을 계산하여 미리 입력해둔 doys(2)의 값을 29로 바꿔준다.endfor k = 1: month - 1doy = doy + doys(k); %입력한 월의 전월까지 doys를 모두 더해주고, day를 플러스해준다.endelseif month == 1doy = day; %1월일 경우 day를 그대로 나타내고elseif month ==2doy = day + 31; %2월일 경우 day에 31일을 더해준다..end위와 같은 코딩을 완료한 뒤, 과제에 주어진 값을 입력했을 때의 결과는 다음과 같다.결과에서 확인할 수 있듯이 2011년은 윤년이 아니므로 3월 1일의 DOY가 60으로 출력되었고, 2012년은 윤년이기 때문에 6일 차이가나는 3월 7일의 DOY가 67로 출력되었다. 윤년을 구분하는 또 한 가지 조건인 100의 배수가 아닐 경우를 확인하기 위해 1900년 3월 7일을 입력하자 DOY가 66으로 출력되는 것을 확인할 수 있었다.1-2. 각자의 생일과 생시(날짜와 시간)를 Calendar Day와 시간(시, 분, 초) 형태로 입력하여 GPS Week Number와 GPS Week Second를 계산하는 프로그램을 작성하라. 작성한 프로그램을 테스트 하기 위해 아래의 날짜와 시간을 이용하라.2-1) 1988년 8월 8일 오전 8시 8분 8초 ( 결과: gw : 448, gs: 115688 )2-2) 2011년 3월 1일 오전 1시 1분 1초 ( 결과: gw : 1625, gs: 176461 )2-3) 2012년 3월 7일 오후 4시 8분 12초 ( 결과: gw : 1678, gs: 317292)function [ gw, gs ] = date2gwgs ( yr, mon, d, h, m, s )ⅰ. GPS Week Seconds▶ GPS Week Seconds는 토요일에서 일요일로 변경되는 자정에서부터 센 초의 수를 말한다.GPS Week Second는 모든 GPS 정보의 기준이 되며, 토요일에서 일요일로 변경되는 자정 에 초기화 된다. 예를 들어 월요일 낮 12시를 기준으로 본다면 태양일을 기준으로 했을 때24*60*60 = 86400초 이므로 86400+43200 = 129600초가 GPS Week Second가 된다.※ 나머지 이론은 앞의 1-1의 이론과 중복되므로 생략.1-2. 코딩▶ 이번 코딩은 1-1에서 만든 함수를 그대로 불러다 쓰면서, GPS Week Second만 계산해주면 되는 코딩이기 때문에 간단하게 작성할 수 있었다.function [gw,gs] = date2gwgs(year, month, day, h, m, s)%함수의 출력 값은 GPS Week Number와, GPS week second이며%함수이름은 date2gwgs이고 입력변수는 년, 월, 일, 시, 분, 초이다.[jd,mjd] = date2jd(year, month, day); %앞서 만든 date2jd로 jd, mjd값을 호출한다.[gw, gd, doy] = date2gpstime(year, month, day); %앞서 만든 date2gpstime으로gw, gd, doy를 호출한다.gw = floor((jd - 2444244.5)/7); %GPS Week Number를 계산하는 과정.gs = (gd*24*3600) + h*3600 + m*60 + s; %GPS Week Second를 계산하는 과정%GPS Week Number를 초단위로 바꿔주고 시,분,초를%더하여서 GPS Week Second를 계산한다.end코딩에 특별한 어려움은 없었다. GPS Week Second를 구할 때 태양일을 기준으로 입력일의 GPS Week Day를(GPS Week Day 역시 토요일에서 넘어가는 일요일을 기준으로 초기화 되므로) 초단위로 바꿔주고 나머지 시, 분 값 역시 초단위로 변경해준 뒤, 모든 변수를 더해주었다.만들어진 함수에 예제로 주어진 값을 입력했을 때의 결과는 다음과 같았다.예제에서 주어진 값과 같은 값이 출력된 것을 확인할 수 있었다.
    공학/기술| 2013.11.16| 8페이지| 2,000원| 조회(872)
    미리보기
  • GPS개론 cross-correlation
    목 차1. Tapped Feedback Shift Registers···············································31-1.코드 (Code) ·····················································································31-2.PRN(Pseudo Random Noise) ·································································31-3.PRN 코드의 조건 및 특성 ······································································41-4Tapped Feedback Shift Registers ································································41-5.Matlab Cording 및 결과분석 ···································································42. Code Correlation ···········································································62-1.Code Correlation Technique ····································································62-2.Matlab Cording 및 결과분석 ···································································73. 실습 고찰 ·························································································8강의시간에 PRN 코드와 cross-correlation에 대해서 배웠다. 이 과제에서는 여러분 스스로 PRN 코드를 만든 다음 다른 PRN 코드와 비교하도록 한다.문제 1) MATLAB 프로그램을 작성하여 x3 + x10 feedback register sequence를 만들어 낸다.10개의 레지스터를 모두 1로 채우고, 여러분의 알고리즘을 1023회 반복하라. 0과 1대신에 각각 1과 -1로 결과를 저장하도록 하자. 여러분이 작성한 프로그램이 제대로 작동하는지 점검하려면 알고리즘을 1023회 반복했을 때 최초의 레지스터가 나오는지 확인해보라. 결과로 나오는 PRN 코드를 그림으로 그려본 뒤, 50 bit만 그려서 제출하라 (MATLAB의 stairs 함수를 이용하면 된다.)1-1) 코드(Code)정보표현 시스템이라 할 수 있으며, 시스템의 규칙도 포함하는 개념이다.GPS 코드는 이진 시퀀스 (binary sequence) 즉, 0과 1로 표현된다. GPS의 신호에서 코드는 기준주파수라 불리는 10.23MHz의 정배수의 주파수를 사용하며, 코드의 종류는 PRN코드인 C/A코드 , P코드 및 Y코드로 나누어져 있다.1-2) PRN (Pseudo Random Noise) 코드PRN이란 잡음과 같은 성질을 지닌 결정적인 2진 sequence로 Pseudo noise codes라고도 불린다. 이러한 코드는 확산 스펙트럼 방식 통신 시스템과 GPS와 같은 거리계산 시스 템에 사용된다. PRN 부호는 각 위성마다 유일하도록 서로 다르며 매우 길고 복잡하기 때문에 신호 자체만 보았을 때는 의미를 파악할 수가 없으나 실은 그 속에 일정한 규칙을 갖는 코드이다. 그리고 이 PRN 부호는 다시 두 종류의 부호로 나뉘는데, Coasrse Acquisition 이라고 불리는 C/A 부호는 민간 신호라고도 하며 특별히 허락 받지 않은 개인이나 단체도 이용할 수 있으나 P부호 (Precise code) 는 신호의 암호화가 이루어지므로 이용을 위해서는 허가가 필요하다.1-3) PRN 코드의 조건 및 특성예리한 자기상관 특성 : 송수신 PN 코드가 동일하고 시간적 관계가 정확히 일치함.낮은 상호 상관 특성 : 사용자들에게 할당된 임의의 두 PN 코드사이에 상호상관특성이 작아야 함.통계적 균형성 : 한 주기 코드에 “0” 과 “1”이 균형적으로 존재.편이와 가산성 : 특정 PN코드를 시간 지연 시켜 모듈러-2 연산하여 생긴 시퀸스는본래 코드를 단지 시간지연 시킨 코드와 동일한 코드가 됨.런 특성 : 한 주기 안에 있는 심볼이 연속적으로 이어져 나오는 시퀸스를 의미함.1-4) Tapped Feedback Shift Registers시프트 레지스터란 연속된 1비트 셀 10개로 구성되며 각각을 1에서 10까지라 부른다.시계 펄스(clock pulse)가 레지스터에 작용되면 각 셀의 내용물이 한 비트씩 오른쪽으 로 이동(shift) 된다. 이러한 시프트 레지스터의 특성은 비게 되는 1번째 셀에 어떤 정보 가 들어 가는가 하는 것에 따라 결정된다.탭 되먹임 시프트 레지스터는 1번 셀에 입력되는 정보가 한 개 혹은 그 이상의 셀 내 용에 따라 결정되는 시프트 레지스터 이다.입력(input) : 제일 왼쪽 셀에 들어가는 값을 입력이라 한다.C/A코드는 2개의 10비트 탭 되먹임 시프트 레지스터로 구성되며 각 레지스터의 합이 다시 이진 합 방식으로 더해져서 해돵 코드 시퀸스를 생성한다.이러한 코드는 일정 시간 동안 난수(random)처럼 보이지만, 피드백 메커니즘 때문에 특 정 시간 이후에는 반복될 수 밖에 없다.1-5) 코딩1111111111먼저, 처음 주어진 의 PRN 값을 1023번 Tap 시키는 과정의 코딩이다. line 21 - 24를 보면 알 수 있듯이, 각 셀의 값을 1씩 뒤로 밀면서, 첫 번째 값은 3번 셀과 10번 셀의 값이 동일한지, 아닌지에 따라 변화하는 xnew값을 대입한다. 우리가 확인해야할 PRN값은 변수 out에 10번 셀 값을 저장하게하고 이를 1023 by 1인 data 행렬에 차례대로 저장하게 한다.1-6) 코딩 결과 확인문제에 나와있듯이, 1023번 tap되었을 때, 처음의 PRN 값과 동일한 값이 출력되는 것을 확인 할 수 있다. 이 때, PRN 코드를 1번 ~ 50번까지 확인해보면 그림 2와 같은 PRN코드가 생성되고 있음을 알 수 있다.문제 2) 1에서 작성한 PRN 코드와 e-Class에서 다운받은 두 개의 코드(PRNcode1과 PRNcode2)를 비교하라. 둘 중 하나는 1에서 만들어지는 코드를 shift 한 것이라면 어느 것이 shift된 것인가? 여러분이 shift되었다고 판단한 코드는 정확하게 몇 bit가 shift 되었는지 결정하라. 만약 전체 PRN 코드가 1msec마다 반복된다면 여러분이 결정한 shift인 t는 거리로는 얼마로 환산되는가?여기서 t=0 이면 Cij는 1이 되고 ,|t|>0 이면 Cij는 0과 1사이의 값을 가진다. 이 문제에서는 C를 아래 수식으로 계산하도록 한다. 각기 다른 shift에 대해 c값을 구하다가 c가 1이 되면 루프를 중단하도록 한다. c가 1이 되었을 때의 shift를 t라 하면 문제 1에서 구하고자 하는 거리는 Ct로 계산된다. (참고 : 1msec는 300km에 해당)2-1) 코드상관관계 기술(Code Correlation Technique)수신기에서는 기준 반송파를 만들고, 이를 PRN 코드와 이진 위상 변조 시킨다.이렇게 생성된 신호와 수신된 위성 신호간의 상관관계를 결정한다.두 신호를 시간적으로 시프트(shift)시켜 가장 높은 값의 상관성을 가지는 시간 delay(lag)를 결정한다. 시계 오차는 존재하지 않는다고 가정하고 결정한 최적의 시간 delay(lag)가GPS 위성과 안테나 사이의 거리에 해당한다.2-2) 코딩두 번째 문제는 Cross - Correlation value를 1이 될 때를 계산하여 dt값을 계산할 수 있게끔 하는 것이 핵심이다. 먼저, Line 46 ~ 55와 같이 분모의 값을 미리 계산하여 sumex, sumprn에 저장하고 내가 가진 data와 예제로 주어진 PRNCode가 일치할 때 까지, for loop를 이용해 예제의 PRN Code를 계속 shift 시킨다. 여기서 중요한건, for loop를 하나만 사용하는 실수를 저지르기 쉬운데, 그렇게 되면 1023개의 PRN 값이 1번씩만 shift 되고 loop가 종료 되기 때문에, 이중 for loop를 사용해줘야만 모든 값을 shift 한 후에도, 변환된 값을 기준으로 다시 shift 하게 된다는 점을 생각해야한다. 또한 Line 61 ~ 65와 같이 TRIANGLE t에 의해 값의 위치가 1023을 넘어갔을 때 역시 고려해주면, C _{ij} 값을 구하는데 전혀 문제가 없다.
    공학/기술| 2013.11.16| 7페이지| 2,000원| 조회(563)
    미리보기
  • GPS개론 brdc를 이용한 위성 위치 계산
    1) 4월 8일 실습시간에 brdc0900.13n 항법 RINEX 파일을 이용해 GPS 위성의 WGS84(ECEF) 기준 3차원 좌표를 구하였다. 이번 과제에서는 동일한 과정을 이용해 아래 표에 명시한 바와 같이 각자 주어진 시각에 해당되는 PRN 좌표를 계산한다. 그리고 그 결과를 해당날짜의 정밀 궤도력 파일에 기록된 좌표와 비교해 각 성분별 및 3차원 궤도오차를 계산한다.참고 1. 항법 RINEX 파일에서 각 위성의 궤도정보는 대략 2시간마다 주어진다. 그러므로 각자에게 해당된 시각의 위성 좌표를 계산할 때 가장 근접한(해당 시각 이전) 시각의 항법메시지를 이용하면 좌표정확도를 높일 수 있음을 기억하라.참고 2. 과제제출 시 보고서에는 프로그램의 코드 hard copy가 포함되어야 한다.참고 3. 필요한 SP3 파일은 ftp://cddis.gsfc.nasa.gov에서 다운 받도록 한다.ⅰ) RINEX 파일의 구조RINEX[라이넥스] 파일이란 로 수신기와 무관하게 사용할 수있는 표준 GPS 파일 포맷이다. RINEX 파일은 파일의 타입에 따라 관측 라이넥스 파일, 항법 라이넥스 파일, 기상 라이넥스 파일 등으로 나뉜다. 각각의 파일은 수신기를 통해 얻어진 자료를 필요에 따라 기입하여 사용한다. 각 라이넥스 파일은 헤더와 데이터 부분으로 이루어져 있으며 헤더에는 파일의 구조에 대한 명세가, 데이터는 좌표, 속도, 코드 값 등이 기록된다.ⅱ) 케플러 궤도 요소행성(위성)의 위치를 나타내는 케플러의 궤도에는 6가지 요소가 있다.a(semi - major axis) : 위성 궤도인 타원의 장반경을 나타내는 값.e(eccentricity) : 타원의 이심률. 원을 기준으로 얼만큼 타원에 가까운지를 나타내는 값.i(inclination) : 궤도경사각. 위성 궤도가 기준면인 적도면과 이루는 각.w(argument of perigee) : 근지점인수. 지구 중심에서 근지점의 방향벡터와 기준면이 이루는 각.OMEGA (RA of the AN) : 승교점적경. 위성이 운동하다 상승하며(z축 방향 기준) 기준면과 만나는 점과 춘분점이 이루는 각.M(mean anomaly) : 평균 근점이각. 위성의 평균속도 * (현재시각 - 근지점 통과 시각)ⅲ) SP3SP 파일은 GPS 위성 궤도, GPS 위성 시계 오차가 담긴 ASCII 파일이다. SP3 포맷은 GPS에서 수신된 자료를 후처리 함으로써 정확도를 향상시켜, IGS 궤도력을 제공하는데 거기에는 3종류가 있다.정밀(precise) 궤도력 : igs로 표기되며, 14일 정도의 시간이 소요된다.신속(rapid) 궤도력 : igr로 표기되며, 1일 저옫의 시간이 소요된다.초신속(Ultra-rapid) 궤도력 : igu로 표기되며, 4시간 안팍의 시간이 소요된다.2) 과제 분석나에게 주어진 과제는 2013년 3월 31일 PRN 2번 위성의 19시의 좌표를 계산하는 것이다.먼저, brdc0900에서 자료를 검색해보니, 19시의 데이터는 없고 19시를 기준으로 18:00:00와 19:59:44의 자료가 있었다. 따라서, 참고에 나왔듯 19시 이전의 자료인 18시의 데이터를 사용하여 좌표를 구하기로 하였다.3) 코딩먼저, Step1 ~ Step3의 내용이다. 먼저, 이번 코딩의 경우는 소수점 밑 값이라 할지라도 아주 작은 값이더라도 엄청난 오차를 불러낼 수 있기 때문에 brdc라는 8 by 4 행렬을 만들어 원본 파일에서 값을 받아온 후 사용하는게 실수를 줄일 수 있는 좋은 방법이라고 생각했다.Step 1에서는 장반경과 궤도 주기의 관계식으로부터 얻어지는 mu 와 WGS-84에서 기본적으로 사용하는 값인 OMEGA _{e}을 입력한다. Step2 부터는 미리 정의한 brdc로부터, RINEX 데이터 부분 구조를 참고하여 각각의 변수에 값을 대입해준다. Step 2는 미리정의한 a로부터 mean motion을 구하기 위한 n0값을 구해준다. Step 3에서는 실제 mean motion 값을 구하기 위해 n0에 TRIANGLE n값을 더해주어 실제 값 n을 구해준다.Step4에서는 파일내 입력변수로 지정한 hour, minute, second를 전체 time으로 받은 뒤, 기준시각과의 차를 계산한다. 여기서 주의할 것은 이 실습에서는 GPS Week Day가 0일인 자료를 사용하였기 때문에 시, 분, 초의 값을 그대로 넣었지만 만약 GPS Week Day가 0이 아닐 때를 사용할 때는 GPS Week Day Number * 86400을 더해줘야 한다. 왜냐하면 GPS 자료의 모든 기준은 GPS Week Second이며, 실제로 기준시각도 GPS Week Second 값이기 때문에다. Step5에서는 Step4에서 구한 기준시각 M _{0}에 t _{k}동안의 M 값을 더해준다. Step 6에서는 예제로 준 함수를 사용하여 E값을 구한다. 이 방법은 가장 쉬운 방법이며, 우리가 수치해석 때 배웠던 뉴튼 랩슨 법이나, 이분법과 같은 방법을 사용할 수도 있다. Step 7에서는 진근점이각을 구해야하는데, 이 원식이 tanf _{k} `=` {sqrt {1-e ^{2}} sinE _{k}} over {cosE _{k} `-e} 이기 때문에, Arctan를 사용하여, 역 값을 구해 f _{k}를 계산해준다. Step 8은 위도 인수(argument of latitude)를 구해주는 과정이다.Step 9에서는 3가지 섭동량을 산출한다. delta u _{k}는 위도 인수 보정량, delta r _{k}는 radius 보정량, 그리고 delta i _{k}는 궤도 경사각 보정량이다. Step 10에서는 Step 9에서 계산된 세 가지 보정량을 이용하여 위도 인수, radius, 그리고 궤도 경사각을 산출한다. Step 11에서는 궤도면을 기준으로 한 x ^{'} `,`y ^{'} 값을 계산해준다.
    공학/기술| 2013.11.16| 5페이지| 2,000원| 조회(655)
    미리보기
전체보기
받은후기 3
3개 리뷰 평점
  • A+최고예요
    3
  • A좋아요
    0
  • B괜찮아요
    0
  • C아쉬워요
    0
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 05월 01일 금요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
5:15 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감