*민*
Bronze개인인증
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 2
검색어 입력폼
  • SNR에 따른 QPSK 신호점 및 BER곡선 그리기 평가D별로예요
    SNR에 따른 QPSK 변조 신호의 신호점(Signal Constellation) 그리기순서1) 사용 프로그램2) 목적3) 변조방식4) 결과 그래프5) 코드 설명 및 수정 방법6) 프로그램 코드1) 사용 프로그램: 매틀랩2) 목적- QPSK 심볼의 신호점(signal constellation)을 SNR에 따라서 어떻게 변화하는지 확인한다.- QPSK의 BER 그래프를 확인한다.3) 변조방식- QPSK4) 결과 그래프- SNR에 따른 신호점(Signal Constellation)그림 SNR=0dB 인 경우의 신호점그림 SNR=2dB 인 경우의 신호점그림 SNR=4dB 인 경우의 신호점그림 SNR=6dB 인 경우의 신호점그림 SNR=8dB 인 경우의 신호점그림 SNR=10dB 인 경우의 신호점그림 SNR=12dB 인 경우의 신호점그림 SNR=14dB 인 경우의 신호점그림 SNR=16dB 인 경우의 신호점그림 SNR=18dB 인 경우의 신호점그림 SNR=20dB 인 경우의 신호점- QPSK의 BER 곡선그림 QPSK의 BER 곡선5) 코드설명 및 수정방법- Initiation부분- clc 명령어: command 창을 깨끗이 지우는 명령어- clf 명령어: 현재 열려있는 그림창을 닫아주는 명령어- clear all: 매틀랩안에 있는 변수들을 삭제→ clear all을 사용하지 않으면 이전에 실행했던 변수들이 매틀랩 안에 남아 있어서, 현재 실행했던 변수들과 엉켜버리는 경우가 생긴다. 여러 번 실행을 할 경우 이전 변수들을 삭제하기 위한 명령어이다. 이 초기화 부분에서 사용한 clc, clf, clear all은 변경하지 않는 것을 권장한다.- SNR설정 및 data 수SNR = [0 : 2 : 25];data = 1e5;관측하고 싶은 SNR 구간과 data 수 결정a) SNR의 경우 현재 0dB부터 25dB까지 2dB마다로 설정이 되어있다. 만약 1dB마다 설정을 하고 싶은 경우 SNR을 아래와 같이 수정한다.SNR = [0 : 1 : 25];관측하고 싶은 SNR 구간이 1dB, 2dB, 3dB ...25dB인 경우b) datat 수 결정- data 수는 현재 1e5=100000로 되어있다.- data 수가 많으면 시뮬레이션 시간이 길어지므로 1e4~1e5로 하는 것이 좋다.- data 수는 사용자가 원하는 대로 결정해도 되지만 BER의 그래프를까지 확인 하고자 한다면로 설정하는 것을 권장 한다.→ BER 그래프를 그릴 때 에러가 튀는 부분이 생길 수 있기 때문이다. 즉, BER 그래프가 부드럽게 나오지 않는 경우가 생긴다. 이럴 때는 시뮬레이션을 다시 실행하는 것도 방법 중 하나이다.- QPSK modulation 부분- 현재 아래의 그림과 같이 Gray coding을 기준으로 QPSK심볼을 매핑을 했다.- 심볼 패턴을 바꾸려면 코드안의 table을 수정하면 가능하다. 주의해야할 사항은 패턴을 바꾸면 demodulation부분도 같이 수정해야한다. 현재의 demodulation방법은 아래의 QPSK demodulation부분을 참고하길 바란다.- QPSK demodulation 부분- QPSK심볼은 한 개의 심볼당 2개의 비트를 나타낸다. 현재 2개의 비트 중 앞의 비트는 X축, 뒤의 비트는 y축을 기준으로 한다.- 예를 들어 1사분면과 4사분면의 앞의 비트는 0을 나타내고 2사분면과 3사분면의 앞의 비트는 1을 나타낸다. 즉, 앞의 비트는 x축을 기준으로 음수이면 1에 해당되고, 양수이면 0에 해당된다.- 코드 안에서 bit0은 앞의 비트를 나타내고, bit1은 뒤의 비트를 나타낸다.%% demodulationbit0 = real(rx_symbols) < 0; % '0' --> -1, '1' --> 1bit1 = imag(rx_symbols) < 0;→ bit0: x축을 기준으로 음수이면 1이 되고 양수이면 ‘0’이 된다.→ bit1: y축을 기준으로 음수이면 1이 되고 양수이면 ‘0’이 된다.- 그래프 그리기 참고%% SNR에 따른 QPSK 신호점 그리기current_snr = SNR(snr_idx);scatter(real(rx_symbols),imag(rx_symbols),'.');axis squaregrid onaxis([-1.5 1.5 -1.5 1.5]);current_snr = SNR(snr_idx);title(['SNR = ',num2str(current_snr)]);pause(1);- 프로그램을 실행시키면 그림이 하나씩 자동으로 나오고 맨 마지막엔 BER곡선이 나올 것이다.- 멈추게하는 명령어가 pause()함수인데 안에 들어가는 숫자는 몇 초 동안 멈출것에 대한 파라미터이다. 현재는 1이므로 1초 동안 멈추고 자동으로 넘어간다.- 만약에, “(1)”을 삭제하고 “pause;”만 넣게 되면 사용자가 스페이스바를 누를 때까지 신호점 그림이 멈출 것이다. (프린트스크린할 시 사용하길 바란다.)- 참고로 title이라는 명령어는 말 그대로 그래프의 제목을 넣는 부분이다. 현재는 SNR 값을 문자로 변환(num2str)하여 입력을 해 놓은 상태이다. 자세한 내용은 command창에 help title 이라고 입력하면 자세한 사용법이 나온다.6) 매틀랩 코드(QPSK)?표 안의 내용을 매틀랩에 그대로 복사해서 사용하시면 됩니다.% QPSK Signall constellation% 1) Purpose:% - QPSK의 신호점이 SNR에 따라 어떻게 변화하는 지 확인% - QPSK의 BER을 그래프로 나타낸다%% 2) Specification% a) Modulation type : QPSK% b) Channel : AWGN%% 3) 주요 변수 설명% - SNR% - data_bits : information data bit sequences% - mod_symbols : 변조된 심볼, (1 x N) row vector, complex% - table : mapping table%% 4) Revision history:%%%Initiationclc;clf;clear all%% ParametersSNR = [0 : 2 : 25];num_data = 1e5;for snr_idx = 1:length(SNR)%% Generaton of data bitsdata_bits = randint(1,num_data); % generation of databits%% QPSK modulationtable = exp(j/4*pi*[1 -1 3 -3]); % [1+j 1-j -1+j -1-j]tmp_mod_symbols = reshape(data_bits,2,num_data/2); % generation of tx_symbols (2 x (data/2) matrix)mod_symbols = table([2 1]*single(tmp_mod_symbols)+1); % mapping to table%% AWGN channelrx_symbols = awgn(mod_symbols,SNR(snr_idx),'measured');%% SNR에 따른 QPSK 신호점 그리기current_snr = SNR(snr_idx);scatter(real(rx_symbols),imag(rx_symbols),'.');axis squaregrid onaxis([-1.5 1.5 -1.5 1.5]);current_snr = SNR(snr_idx);title(['SNR = ',num2str(current_snr)]);
    공학/기술| 2011.04.10| 10페이지| 2,500원| 조회(1,339)
    미리보기
  • PSK, ASK, QAM, PAM의 신호점(signal constellation) 그리는 매틀랩(Matlab)프로그램
    신호점(Signal Constellation) 그리기1) 사용 프로그램: 매틀랩2) 목적- 각각의 변조방식에 해당하는 심볼의 신호점(signal constellation)을 그림3) 변조방식a) PSK : 2/4/8/16 PSKb) ASK :on-off keying 방식c) QAM : 4/16/32/64 QAMd) PAM : 2/4/8/16 PAM4) 결과 그래프a) PSK2-PSK signal constellation4-PSK signal constellation8-PSK signal constellation16-PSK signal constellationb) ASKASK signal constellationc) QAMQAM signal constellation16-QAM signal constellation32-QAM signal constellation64-QAM signal constellationd) PSK2-PAM signal constellation4-PAM signal constellation8-PAM signal constellation16-PAM signal constellation5) 사용 및 수정방법- 실행방법(그레이코드 설명)a) 아래와 같이 변조 방식과 변조레벨을 선택modu_type = 'QAM' % 변조방식 선택modu_level = 16; % 변조레벨 선택16-QAM으로 선택하는 예b) 원하는 데이터 비트 수 선택num_bits = 100; % 발생시킬 비트 수비트수를 100으로 선택하는 예- 심볼매핑 패턴 변경방법 (예: QAM)a) Gray 코드를 사용할 경우(default 값)- 매핑테이블을 아래와 같이 사용 한다table = modem.qammod('M',4,'SymbolOrder','Gray');변조레벨을 4로 사용/ 매핑순서를 Gray코드를 사용 하는 예- 변수 설명?M: 변조레벨?SymbolOrder : 매핑순서(패턴)b) 매핑패턴을 임의로 변경할 경우- 매핑테이블을 아래와 같이 변경 한다table = modem.qa.15 : 수평의 위치? +0.15 : 수직의 위치c)예(수평위치 변경)? 다음과 같이 -0.15를 0.3으로 변경 한 경우text(real(table.Constellation(jj))-0.3,imag(table.Constellation(jj))+0.15,...원본 그림수평위치 변경결과? -0.15를 -0.3으로 변경한 결과, 위와 같이 텍스트의 위치가 좌측으로 이동한 것을 확인할 수 있을 것이다.6) 매틀랩 코드?표 안의 내용을 매틀랩에 그대로 복사해서 사용하시면 됩니다.% Modulation% 1) Purpose:% - bit sequence를 입력으로 받아, PSK, ASK, QAM, PAM 변조(symbol mapping)% - 결과(symbol)를 signal constellation으로 그림%% 2) Specification% a) Modulation type% - 2/4/8/16 PSK% - ASK (on-off keying)% - 4/16/32/64 QAM% - 2/4/8/16 PAM% b) Mapping method% - Wireless LAN (802.11a) 기준% - Gray coding방식% - 매핑 방식은 변경 가능함(한글파일 참고)%% 3) 주요 변수 설명% - bits_in : data bits% - mod_symbols : 변조된 심볼, (1 x N) row vector, complex% - table : mapping table% - modu_type : 변조 방식% - modu_level : 변조 레벨%% 4) Revision history:% - 2010.03.11 by MC Money%% 초기화clear allclc;%% 변조 방법 및 변조 레벨 선택% PSK - 변조레벨: 2,4,8,16중 선택% ASK - 변조레벨: 2 (on-off방식)% QAM - 변조레벨: 4,16,32,64 중 선택% PAM - 변조레벨: 4,8,16 중 선택modu_type = 'QAM' % 변조방식 선택modu_level = 4; % 변조레벨_bits)];%% check for data length & make integer multiple% 비트열의 길이가 변조레벨의 정수배가 되어야 함% 정수배가 안될경우 나머지 비트열을 0으로 채움bits_per_one_symbol = log2(modu_level); % 한 심볼당 비트 수(변조레벨에 따라 달라짐)num_rem_bits = rem(length(bits_in),bits_per_one_symbol);bits_in = [bits_in zeros(1, bits_per_one_symbol-num_rem_bits)]; % make integer multiplefull_len = length(bits_in); % 비트열의 길이if ((modu_type=='PSK') & (modu_level==2)) | ((modu_type=='PAM') & (modu_level==2))%% 2PSK modulation or 2PAMtable=modem.pskmod('M',2,'SymbolOrder','user-defined','SymbolMapping',[1 0]);inp=bits_in;mod_symbols=modulate(table,inp); % mapping transmitted bits into BPSK symbolselseif ((modu_type=='PSK') & (modu_level==4)) | ((modu_type=='QAM') & (modu_level==4))%% 4PSK(QPSK) or QAMtable=modem.qammod('M',4, 'SymbolOrder','user-defined','SymbolMapping',[1 0 3 2]); % mapping table%table=modem.qammod('M',4, 'SymbolOrder','Gray'); % mapping tabletmp_inp=reshape(bits_in,2,full_len/2).';inp=bi2de(tmp_inp,'left-msb').'; % convert binary into decmalymbolOrder', 'Gray'); % mapping tabletmp_inp=reshape(bits_in,4,full_len/4).';inp=bi2de(tmp_inp,'left-msb').'; % convert binary into decmalmod_symbols=modulate(table,inp); % mapping transmitted bits into 16-PSK symbolselseif modu_type=='ASK'table = struct(...'M' , 2, ...'Constellation', [0 1], ...'SymbolMapping', [0 1]); % mapping patternmod_symbols=bits_in;elseif (modu_type=='QAM') & (modu_level==16)%% 16 QAMtable=modem.qammod('M',16, 'SymbolOrder','user-defined','SymbolMapping',[2 3 1 0 6 7 5 4 14 15 13 12 10 11 9 8]); % mapping tabletmp_inp=reshape(bits_in,4,full_len/4).';inp=bi2de(tmp_inp,'left-msb').'; % convert binary into decmalmod_symbols=modulate(table,inp); % mapping transmitted bits into 16-QAM symbolselseif (modu_type=='QAM') & (modu_level==32)%% 32 QAMtable=modem.qammod('M',32, 'SymbolOrder', 'Gray'); % mapping tabletmp_inp=reshape(bits_in,5,full_len/5).';inp=bi2de(tmp_inp,'left-msb').'; % convert binary into decmalmod_symbols=modulate(table,inp); % mapping transmitted bitsrates 4 PAM symbolstable=modem.pammod('M',4, 'SymbolOrder', 'Gray'); % mapping tabletmp_inp=reshape(bits_in,2,full_len/2).';inp=bi2de(tmp_inp,'left-msb').'; % convert binary into decmalmod_symbols=modulate(table,inp); % mapping transmitted bits into 4PAM symbolselseif (modu_type=='PAM') & (modu_level==8)%% generates 8 PAM symbolstable=modem.pammod('M',8, 'SymbolOrder', 'Gray'); % mapping tabletmp_inp=reshape(bits_in,3,full_len/3).';inp=bi2de(tmp_inp,'left-msb').'; % convert binary into decmalmod_symbols=modulate(table,inp); % mapping transmitted bits into 8PAM symbolselseif (modu_type=='PAM') & (modu_level==16)%% generates 16 PAM symbolstable=modem.pammod('M',16, 'SymbolOrder', 'Gray'); % mapping tabletmp_inp=reshape(bits_in,4,full_len/4).';inp=bi2de(tmp_inp,'left-msb').'; % convert binary into decmalmod_symbols=modulate(table,inp); % mapping transmitted bits into 16PAM symbolselseerror('Unimplemented modulation');end%% Create a scatter plot% 기본적으로 각 변조 방식에 대한 signal constellation 그림 +ff
    공학/기술| 2010.04.30| 15페이지| 2,500원| 조회(2,554)
    미리보기
전체보기
받은후기 1
1개 리뷰 평점
  • A+최고예요
    0
  • A좋아요
    0
  • B괜찮아요
    0
  • C아쉬워요
    0
  • D별로예요
    1
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 05월 25일 월요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
7:31 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감