• 전문가 요청 쿠폰 이벤트
*병*
Bronze개인인증
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 11
검색어 입력폼
  • 정합필터 Matched filter의 C++구현과 적분수신기와의 BER비교
    0. input#1.dat을 Plot 하여 신호가 얼마나 Noisy 한지 확인하시오.<100번째 값까지 plot>신호가 많이 깨져서 bit를 육안으로는 판단할 수 없다.1. input#1.dat, input#2.dat, input#3.dat에 대하여 각각 Matched Filter를 사용하는 최적 수신기를 구현하고, BER를 구하시오. 각각의 결과를 비교하고 성능의 차이를 설명하시오.< Input#1.dat BER = 48/1000 >- Input#1과 Input#2의 경우에는 Matched filter를 구현하였을 때 BER이 48/1000이 나왔고, Input#3의 경우에는 BER이 224/1000 이 나왔다. Input#1의 경우 이상적인 경우라 가정하면 rectangular의 증폭이 20이고, 10개의 sample을 하나의 bit로 판정하므로 bit 1일 때의 에너지는 = 20× 20× 10이 되어 4000이 된다. 또한 bit 0일 때의 에너지는 0이 된다. 따라서 4000과 0의 중간값인 2000을 bit 판정 기준으로 하였고, Input#2의 경우는 bit 1일 때와 bit 0일 때가 부호만 반대가 되므로 판정 기준은 0으로 했다. Input#3의 경우에는 Input#1과 #2의 경우와 같이 계산하면 bit 1일 때의 에너지는 1000이고 bit 0일 때의 에너지는 0이므로 그 중간값인 500을 bit 판정기준으로 했다
    공학/기술| 2008.11.17| 13페이지| 2,500원| 조회(995)
    미리보기
  • BPSK와 DS/BPSK 수신기를 각각 구현하고 성능을 측정하여 비교 평가A좋아요
    전자공학과 통신이론 2 HW#3목표 : BPSK와 DS/BPSK 수신기를 각각 구현하고 성능을 측정하여 비교한다.개요 :? 각 Data File에는 AWGN Channel를 통하여 수신된 신호가 저장되어 있고, 각 통신 방식에 대한 규격은 다음과 같다.* 공통- Carrier :- 위상 : Bit=1일 때 0, Bit=0일 때 180- Symbol 구간 : 60 Samples* BPSK- File Name : bpsk.dat* DS/BPSK- File Name : dsbpsk.dat- Chip 구간 : 4- PN Code : {1,-1,-1,-1,1,1,1,1,-1,1,-1,1,1,-1,-1}* 송신한 Bit 정보 : bit.dat (총 1,000 bits)? 모든 C Code? 문제 1의 결과문제 :BPSK와 DS/BPSK 의 Bit Error Rate를 각각 구하고 차이를 설명하시오.BPSKDS/BPSKBER3.5%0.5%BPSK BERDS/BPSK BER#include #include int main(void){FILE *fin, *fout, *fin_bit;int i, n=0;float input_buf[60], carrier[60];float bpsk_buf1;int bpsk, bit_error_rate;int bit[1000], comparison[1000];fin = fopen("bpsk.dat" , "rt");fout = fopen("bpsk_out.dat" , "wt");fin_bit = fopen("bit.dat" , "rt");if(fin == NULL){printf("file open error!n");}for (i=0 ; i
    공학/기술| 2009.11.29| 9페이지| 2,500원| 조회(591)
    미리보기
  • 음성신호의 spectral envelope(LPC검색, Cepstrum) 평가B괜찮아요
    전자공학과 음성 및 오디오 신호처리Design Project #32009.5.14.목표 :LPC와 Cepstrum 방법을 이용하여 음성 신호의 Spectral Envelope을 분석한다.문제 :? 입력 신호 “male.raw"에 대하여 각각 Spectral Envelope을 구하고 비교 분석한다- File Format : 8kHz Sampling, 16-bit mono singed integer- 첫 320 sample 이용- 320-sample Hamming Window 적용window[n] = 0.54-0.46*cos(2*PI/320*n)? 10차 LPC 계수를 구하여 Spectral Envelope을 구한다. 입력 신호의 Spectrum Magnitude와 Spectral Envelop들 동시에 Plot하여 정확한 Envelope이 구하여진 것을 검증한다. 이 때, 두 Plot의 Gain이 다르므로 서로의 Gain을 맞추어 Plot한다.a11.7661557441463769a2-2.*************391a32.48*************8a4-2.4091887766532292a52.1*************91a6-1.*************098a71.*************621a8-0.61*************90a90.2*************801a10-0.04*************400< C code >#include #include #define PI 3.1415#define N_point 320int main(void){int n, i, j;short input[320];short window_smp[320];short zero_padded_input[340] = {0,};double E[11]={0,}, R[11]={0,}, k[11]={0,}, durbin_buf;double a[11][11]={0,};double window[320];double re[320], im[320];double mag[320], formant[320];double LPC_coef[10], LPC_coef_1[320]={0,};/****************** file open *******************/FILE *fin, *fout, *DFT_out, *R_out;fin = fopen("male.raw", "rb");if(fin==NULL)printf("file open errorn");DFT_out = fopen("DFT_out.txt", "wt");fout = fopen("output.txt", "wt");R_out = fopen("autocorrelation.txt", "wt");fread(input, sizeof(short), 320, fin);/******************** window ********************/for (n=0 ; n
    공학/기술| 2009.05.27| 13페이지| 2,500원| 조회(1,374)
    미리보기
  • [C언어]오디오 신호의 주파수를 분석하여 계이름을 찾는 시스템 설계 평가A+최고예요
    음성 및 오디오 신호처리Design Project #1목표 :오디오 신호의 주파수를 분석하여 각 Note를 추출하는 시스템 설계문제 :? Goldwave를 이용하여 Audio Sample "pop1.raw"와 “pop2.raw"의 소리와 파형을 확인한다.* 신호 Format : 16kHz Sampling, 16-bit mono, signed integer? “pop1.raw"의 총 8개의 Note와 ”pop2.raw"의 첫 3 Note에 대하여 주파수를 분석하여 각 Note의 이름을 찾는다.short형으로 input file인 pop1.raw를 입력받아 input[N] 배열에 저장하고 이를 DFT한다. 음과 음 사이를 skip하기 위해 일정 기준을 정할 필요가 있었다. 기준은 1000으로 하였다. 따라서 input data에서 읽어 들인 energy가 1000×1000 즉, 1000000이하일 경우 skip한다. 따라서 각각의 음의 스펙트럼은 magnitude가 비교적 작은 신호는 skip되었기 때문에 거의 쉬는 시간 없이 바로바로 나오게 되었다. 또한, exponential 연산은 불가능하기 때문에 오일러의 법칙을 이용하여 실수항과 허수항의 magnitude를 각각 구한 후, 이를 제곱하여 더한 다음 제곱근을 취함으로써 평균값을 구한다. 이 과정에서 1500으로 define되었던 배열이 750으로 줄어든다. 그 이유는 N개의 input이 있을 경우 DFT를 하면N over 2인 부분을 기점으로 좌우 대칭인 스펙트럼이 나타나게 되는데 여기서 앞쪽 부분만 사용해도 상관없기 때문이다. 또한 16K sampling frequency를 가진 input file이 주어졌기 때문에, N은 대략 500이상일 경우 큰 문제는 나타나지 않으나 조금 더 정확한 해상도를 위해 N은 1500으로 설정하였다. window는 가장 간단한 sine윈도우를 사용했고, 돌발적인 delta에 가까운 신호를 smoothing하여 고주파성분을 제거한다.#define N 1500#define pi 3.141592#include #include "math.h"//cosine, sine연산을 위한 헤더int main(){FILE *fin, *fout_txt;floatinput[N], re[N], im[N], mag[N], window[N]={0,};floatmax_mag = 0;intmax_freq = 0;floatpitch = 0;shortdata;inti,n,j,k;// raw포맷으로 저장된 pop1.raw를 읽어들인다if((fin = fopen("pop1.raw", "rb")) == NULL) {printf("input file errorn");}fout_txt = fopen("out_pop1.txt","wt");// N 크기의 window 생성for (n=0; n
    공학/기술| 2009.04.20| 11페이지| 2,500원| 조회(2,785)
    미리보기
  • C++을 이용한 2D FFT 구현 & 영상에서의 LPF와 HPF
    1) 배경 이론 설명 및 고찰이산 푸리에 변환식을 영상의 모든 픽셀에 적용하는 데에는번의 연산이 필요하기 때문에 영상의 크기가 큰 경우에는 아주 많은 시간을 필요로 한다. 이러한 문제를 해결하기 위하여 여러 가지 고속 푸리에 변환(FFT:Fast Fourier Transformation) 기법이 개발되었다. 고속 푸리에 변환 중에서 가장 단순한 방법으로 2차원 푸리에 변환을 1차원 푸리에 변환으로 분할하여 적용하는 방법이 있다. 이 방법에서는 영상의 각 행에 대하여 1차원 FFT를 적용한 다음에 계산 결과의 각 열에 대하여 1차원 FFT를 한 번 더 적용한다. 행과 열을 나누어서 하기 보다는, 2차원 배열을 transpose하여 같은 연산을 두 번 처리 하였다. 고속 푸리에 역변환 역시 1차원 IFFT를 두 번 적용하여 구할 수 있다.영상을 주파수 영역으로 변환한 다음에 특정 주파수를 필터링함으로써 영상을 흐리게 하거나 선명하게 하는 등의 처리를 할 수 있다. 저주파 필터와 고주파 필터를 각각 적용해 본 결과, 이론과 적합하게, 저주파 통과 필터의 경우에는 화면이 흐려지는 것을 볼 수 있었고, 고주파 통과 필터의 경우에는 저주파 성분이 제거되어 경계선 부분이 강조된 영상이 출력되는 것을 볼 수 있었다. 주파수 영역에서 보았을 때 영상의 중요 정보를 포함하고 있는 부분은 거의 중앙에 몰려있는 형태로 나타난다. 이는 원래 화면의 네 귀퉁이를 종이접기처럼 trans함으로써, 네 귀퉁이의 중요한 정보가 화면 가운데로 모이기 때문이다. 따라서, 저주파 통과 필터의 경우에는 매우 낮은 주파수 이하만 통과시켜도 화면을 알아보기가 쉬운 영상이 출력되지만, 고주파 통과 필터의 경우에는 조금만 높은 주파수를 적용해도 거의 알아보기가 쉽지 않은 영상이 출력된다.원본영상2) 원본 영상을 푸리에 변환(FFT)한 결과 영상3) 주파수 영역에서 저주파 성분을 제거하여 역변환한 결과 영상4) 주파수 영역에서 고주파 성분을 제거하여 역변환한 결과 영상5) 소스코드< FFT 소스 > - 출처 : Visual C++을 이용한 실용 영상 처리#include "fft.h"#include #include direction d;FFT::FFT()// 크기가 32로 고정된 FFT 클래스의 생성자.{N = 32;// FFT의 크기.unsigned int i, j;w = new complex[N / 2];// forward 변환 시 사용할 W값iw = new complex[N / 2];// inverse 변환 시 사용할 IW값order = new int[N];// FFT의 특성에 따라 홀,짝으로 나눠지는 입출력의 순서를 정의하는 변수iter = (unsigned int)ceil(log(N) / log(2)); // FFT의 stage의 수. iter=log N / log 2/*W값과 IW값을 초기화함.*/for (i = 0 ; i < N / 2 ; i++) {w[i] = complex(cos(2 * PI * i / N), -sin(2 * PI * i / N));//forward시 커널, 실수부의 cos값과 허수부의 sin값이 다음과 같다.iw[i] = complex(cos(2 * PI * i / N), sin(2 * PI * i / N));//inverse시 커널로 W값과 허수부의 부호만 다르다.}/* 반사의 개념을 도입하여 만든 ordering *//*000 | 000001 | 100010 | 010011 | 110100 | 001101 | 101110 | 011111 | 111*/for (i = 0 ; i < N ; i++) {order[i] = 0;for (j = 0 ; j < iter ; j++) {if(i & (1 < j))order[i] |= 1 < (iter - j - 1);}}}/* 위의 생성자와 비교해서 FFT의 크기를 입력 받는다는 것만 다름. */FFT::FFT(unsigned int num){N = num;unsigned int i, j;w = new complex[N / 2];iw = new complex[N / 2];order = new int[N];/* iteration = log N / log 2 */iter = (unsigned int)ceil(log(N) / log(2));/* initializing kernel */for (i = 0 ; i < N / 2 ; i++) {w[i] = complex(cos(2 * PI * i / N), -sin(2 * PI * i / N));iw[i] = complex(cos(2 * PI * i / N), sin(2 * PI * i / N));}/* arrange input */for (i = 0 ; i < N ; i++) {order[i] = 0;for (j = 0 ; j < iter ; j++) {if(i & (1 < j))order[i] |= 1 < (iter - j - 1);}}}FFT::~FFT(){delete []w;delete []iw;delete []order;}unsigned int FFT::getSize(void){return N;}/* Decimation In Time Algorithm */void FFT::deci_in_time(complex *in, complex *out,direction d){unsigned int i, j;int power;unsigned int size = 1 < iter;unsigned int limit = size / 2;//complex *out = new complex[N];/* 입력을 미리 구해놓은 order에 따라 바꿔준다. */for (i = 0 ; i < size ; i++)out[i] = in[order[i]];for (i = 0 ; i < iter ; i++) {power = limit >> i;/*forward 변환*/if (d == FFT_FOR) {for (j = 0 ; j < limit ; j++){in[j * 2] = out[j * 2];// even termin[j * 2 + 1] = out[j * 2 + 1] * w[(int)(j / power) * power];//odd term}}/*inverse 변환*/else {for (j = 0 ; j < limit ; j++){in[j * 2] = out[j * 2];in[j * 2 + 1] = out[j * 2 + 1] * iw[(int)(j / power) * power];}}/*FFT의 맨 마지막 stage*/for (j = 0 ; j < limit ; j++) {out[j] = in[j * 2] + in[j * 2 + 1];out[j + limit] = in[j * 2] - in[j * 2 + 1];}}/*inverse 변환 시 N 값으로 나눠줌.*/if (d == FFT_INV) {for (i = 0 ; i < size ; i++)out[i] /= (double)size;}//return out;}/* Decimation In Frequency Algorithm */// Time의 경우와 비교해서 각 스태이지의 순서만 거꾸로 되어있음.void FFT::deci_in_freq(complex *in, complex *out, direction d){unsigned int i, j;int power;unsigned int size = 1 < iter; // size = 2 ^ iterationunsigned int limit = size / 2;//complex *out = new complex[N];for (i = 0 ; i < iter ; i++) {for (j = 0 ; j < limit ; j++) {out[j * 2] = in[j] + in[j + limit];out[j * 2 + 1] = in[j] - in[j + limit];}power = 1 < i;if (d == FFT_FOR) {for (j = 0 ; j < limit ; j++) {in[j * 2] = out[j * 2];in[j * 2 + 1] = out[j * 2 + 1] * w[(int)(j / power) * power];}}else {for (j = 0 ; j < limit ; j++) {in[j * 2] = out[j * 2];in[j * 2 + 1] = out[j * 2 + 1] * iw[(int)(j / power) * power];}}}for (i = 0 ; i < size ; i++)out[i] = in[order[i]];if (d == FFT_INV) {for (i = 0 ; i < size ; i++)out[i] /= (double)size;}//return out;}< 헤더파일 >#include "complex.h"#define PI 3.141593enum direction {FFT_FOR, FFT_INV};// FFT 방향 설정. forward=0, inverse=1class FFT {public:FFT();// 변수 없는 생성자. 기본 값은 생성자를 정의하는 곳에 있음.FFT(unsigned int);// N을 변수로 입력 받는 생성자.~FFT();// 소멸자. 사용된 변수를 지움.unsigned int getSize(void);// FFT의 크기, 즉 N을 반환하는 함수void deci_in_freq(complex*, complex*, direction); // Decimation in Frequency Algorithmvoid deci_in_time(complex*, complex*, direction); // Decimation in Time Algorithmprivate:complex *w, *iw; // FFT에 사용되는 W, IW, 즉 cos과 sin 값들int *order;// FFT 특성상 발생하는 순서의 섞임(원리는 비트 반사)을 갖는 변수unsigned int iter;// 반복 회수. 즉, logNunsigned int N;// FFT의 크기};< Low-Pass를 할 경우의 소스코드 >#include
    공학/기술| 2008.12.11| 24페이지| 4,000원| 조회(3,176)
    미리보기
전체보기
받은후기 10
10개 리뷰 평점
  • A+최고예요
    4
  • A좋아요
    3
  • B괜찮아요
    2
  • C아쉬워요
    0
  • D별로예요
    1
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 04월 18일 토요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
12:07 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감