Download as pdf or txt
Download as pdf or txt
You are on page 1of 51

MEDIA LAB – Richmedia

Kyung Hee University


MEDIA LAB – Richmedia
Kyung Hee University

◆ Chapter 1.(Sinusoids & Sampling)


❖ [1번 문제] : Complex Numbers in C++. (예시)
❖ [2번 문제] : Verify the Sinusoids. (예시) (1.11.3 | Page 82.)
❖ [3번 문제] : Sampling the signal (1.11.3 (Modification) | Page 83.)

◆ Chapter 2.(Convolution)
❖ [1번 문제] : Theory of Convolution. (Example)
❖ [2번 문제] : Convolution Exam
❖ [3번 문제] : Convolution Exam

◆ Chapter 3. (Fourier Series & Music)


❖ [1번 문제] : Fourier Series. (Example)
❖ [2번 문제] : Making the Music File.

◆ Chapter 4. (Fourier Representations to Mixed Signal(Music))


❖ [1번 문제] : Complex project

◆ Chapter 6. (Causality and Stability)


◆ [1번 문제] : Real Poles. (예시)
◆ [2번 문제] : Complex Poles. (예시)
◆ [3번 문제] : Transfer Function

실제 과제는 Syllabus에서 삭제 혹은 변경될 수 있음!


MEDIA LAB – Richmedia
Kyunghee University

Visual Studio Community Install (Window)


Visual Studio 설치 (Window)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio
VS 마이크로 소프트에서 개발한 통합 개발 환경(IDE)
윈도우, 리눅스, macOS에서 작동하며, 다양한 언어(C, C#, C++,
Python, node.js 등)로 프로그래밍이 가능합니다.
다운로드 페이지 : https://visualstudio.microsoft.com/ko/free-
developer-offers/
Visual Studio 설치 (Window)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio
Visual Studio Community : 개인 사용자용 무료 version
Visual Studio Professional : 유료 version
Visual Studio Enterprise : Professional로는 대규모 개발이 충분하지 않은 사용자를 위한 버전
Visual Studio 설치 (Window)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Window)
VisualStudioSetup.exe 파일 실행

해당 파일을 설치를 시작하면 아래와 같은 창 발생 : “계속“ 클릭


Visual Studio 설치 (Window)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Window)
Visual Studio 설치 (Window)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Window)

3
Visual Studio 설치 (Window)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Window)
Visual Studio 설치 (Window)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Window)
Visual Studio 설치 (Window)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Window)
프로젝트 생성
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Window)
프로젝트 생성
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Window)

3
프로젝트 생성
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Window)

3
MEDIA LAB – Richmedia
Kyunghee University

Visual Studio Community Install (Mac)


Visual Studio 설치 (Mac)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Mac)
Visual Studio 설치 (Mac)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Mac)
Visual Studio 설치 (Mac)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Mac)
Visual Studio 설치 (Mac)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Mac)
Visual Studio 설치 (Mac)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Mac)
Visual Studio 설치 (Mac)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Mac)
Visual Studio 설치 (Mac)
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Mac)
프로젝트 생성
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Mac)
프로젝트 생성
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Mac)

2
프로젝트 생성
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio(Mac)

1
2

3
소스 파일(CPP) 추가
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio
소스 파일(CPP) 추가
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio

3 2

1
소스 파일(CPP) 추가
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio

3
소스 파일(CPP) 추가
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio
헤더 파일(CPP) 추가
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio

3 2

1
헤더 파일(CPP) 추가
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio

2
3
헤더 파일(CPP) 추가
MEDIA LAB – Richmedia
Kyung Hee University

❖Visual Studio
MEDIA LAB – Rich Media
Kyunghee University
MEDIA LAB – Rich Media
Kyunghee University

❖ Euler’s Formula : 지수함수와 삼각함수의 관계

실수부
𝑒 𝑖φ = 𝑐𝑜𝑠φ + 𝑖𝑠𝑖𝑛φ
Given, 𝑧 = 𝑎 + 𝑏𝑖 극좌표 표기
허수부
𝑎 𝑒 𝑖π +1=0
arctan = φ 𝑎 + 𝑏𝑖 ≠ 0
𝑏
>> Phasor 표기법 𝐴∠Ɵ𝐴 = 𝐴𝑐𝑜𝑠(⍵0 𝑡 + Ɵ𝐴 )
𝑎2 + 𝑏2 =𝑟= 𝑧 𝑟𝑒 𝑖φ = 𝑟𝑐𝑜𝑠φ + 𝑖𝑟𝑠𝑖𝑛φ
or
𝑟𝑒 𝑖φ = 𝑟∠φ 𝐵∠Ɵ𝐵 = 𝐵𝑐𝑜𝑠(⍵0 𝑡 + Ɵ𝐵 )
MEDIA LAB – Rich Media
Kyunghee University

❖ Sampling

▪ ANALOG
• 연속된 신호의 크기, 모양, 주파수 등에 관한 전자신호를 비 디지털 방식(연속적인 값)으로 조작하는 회로

x(t) y(t)
ELECTRONICS

▪ DIGITAL
• 0과 1의 값을 기반으로 처리하는 회로.
• 이산적인 값을 단위로 연산하기에 전압 혹은 전류의 값을 특정 레벨로 나타내고 이진법으로 표현하여 처리.

x(t) x[n] y[n] y(t)


A-to-D COMPUTER D-to-A
MEDIA LAB – Rich Media
Kyunghee University

❖ Sampling

▪ Problem : 하나의 연속적인 신호에 대하여 어떻게 샘플링하면 좋을까?


▪ 3 signals : 𝑥1 𝑡 , 𝑥2 𝑡 , 𝑥3 (𝑡)
▪ 𝑇𝑠 = 𝑇, 𝑇𝑠 는 샘플링 주기
▪ 연속신호를 이산신호로 ‘잘’ 표현하는 기능은, 샘플링 된 신호를 원신호로 ‘잘’ 복원하는 기능도 포함.
▪ Solution : Nyquist Sampling Theorem, Shannon Sampling Theorem

-3T -2T -T 0 T 2T 3T
Figure 7.1, given 3 continuous signals Figure 7.1, sampled discrete signal for
given 3 continuous signals
MEDIA LAB – Rich Media
Kyunghee University

❖ Sampling

▪ Shannon Sampling Theorem :


• A continuous-time signal x(t) with frequencies no higher than 𝑓𝑚𝑎𝑥 can be reconstructed exactly from its samples
𝑥 𝑛 = 𝑥(𝑛𝑇𝑠 ), if the samples are taken at a rate 𝑓𝑠 = 1/𝑇𝑠 that is greater than 2𝑓𝑚𝑎𝑥 .
• 𝑓𝑠 ≥ 2𝑓𝑚𝑎𝑥 ∶ 원신호 복원에 적절
• 𝑓𝑠 < 2𝑓𝑚𝑎𝑥 ∶ 𝐴𝑙𝑖𝑎𝑠𝑖𝑛𝑔 발생
• Aliasing : 표본화를 하는 가운데
각기 다른 신호를 구별해내지 못하게
하는 효과

<Example. Different Sampling frequencies>


MEDIA LAB – Richmedia
Kyung Hee University

❖ Sampling (Uniform Sampling)

f = 100Hz

f s = 2 kH z

f s : number of samples per a second

f s = 500Hz n = T /Ts : number of samples per a period


MEDIA LAB – Richmedia
Kyung Hee University

Aliasing
x [ n ] = A c o s ( 2  (1 0 0 )( n / 1 0 0 0 ) +  )

f s = 1 kHz

x [ n ] = A c o s ( 2  (1 0 0 ) ( n / 8 0 ) +  )

𝒇
ෝ = 𝟐𝝅
𝝎
𝒇𝒔

x [ n ] = A c o s ( 2  (1 0 0 ) ( n / 1 2 5 ) +  )

f s =125Hz
MEDIA LAB – Richmedia
Kyung Hee University

▪ 하나의 소스 파일에 모든 기능을 구현하는 경우


• 소스 코드 길이가 길어짐
• 가독성을 해치며 기능 별 구분이 어려움
• 유지보수의 어려움 증가

▪ 헤더 파일을 사용하여 기능을 다른 소스 파일 별로 구현하는 경우


• 소스 코드가 간결해짐
• 코드 흐름을 파악하기 쉬워지며 유지보수면 용이성 향상

cpp
cpp Include <A.h>
Include <B.h>

A 1. BubbleSort.h
B 2. InsertionSort.h
h h h h h 3. MergeSort.h
C D
main
4. QuickSort.h
5. SelectionSort.h
A B C D E 6. Student.h
E
MEDIA LAB – Richmedia
Kyung Hee University

#pragma once 현재의 헤더 파일이 여러 번 include 되는 것을 막아


줌 (한번만 빌드 실행)
#ifndef (if not defined) ( COMPLEX를 정의하지 않았다면)
#define (endif가 나오기 전까지의 내용을 정의)
real , imaginary …
… #endif
하지만 COMPLEX가 미리 정의되어 있다면 내용들은 무시

math.h : 여러 수학 함수들을 포함하는 c 언어의 표준 라이브러리


ex) abs(x) : x의 절대값 반환 -> abs(-4) = |-4| = 4 pow(x,y) : x의 y제
곱 반환 -> pow(2,3) = 23= 8
ex) sqrt(x) : x의 제곱근 반환 -> sqrt(4) = 4 = 2

class complex : complex 관련 변수, 함수 등을 포함

*class가 무엇인가?
변수, 함수 등등을 구조화하여 한번에 관리하기 위한 구조를 의
미 사용자가 자주 사용하는 변수들을 미리 선언하거나
함수들을 선언하여 클래스 안에서 그 함수들을 다루고 관리합니
다.

double : 실수 표현(15~16자리의 유효숫자까지 가능)


MEDIA LAB – Richmedia
Kyung Hee University

▪ Complex 헤더 파일
• 멤버 변수
✓ 실수(re), 허수(im)
real , imaginary
• 3가지 생성자 (Constructor)
✓ 실수, 허수 변수를 0으로 초기화
✓ double 형 변수 x, y를 입력 받아 각각 실수,
허수값으로 초기화
✓ θ를 입력 받아 실수와 허수값을 초기화
• 연산자 오버로딩 (operator overloading)
✓ 같은 이름의 함수를 중복하여 정의
✓ EX)
(complex)1+(complex)2 = (complex)3
(complex)(1+2i)+ (complex)(3+3i) = (complex)
(4+5i)
MEDIA LAB – Richmedia
Kyung Hee University

- iostream : cin, cout, endl과 같이 입력


과 출력을 위한 객체들을 정의한 헤더
파일

- using namespace std : std로 명명된


namespace를 사용한다 라는 의미로
std 안의 cin, cout을 사용 할 수 있음

- complex.h : 복소수와 관련 함수들을


정의한 헤더 파일

- #define PHI : 3.141592 (3.141592라는


숫자를 PHI 라는 단어로 표현할 수 있음)
MEDIA LAB – Richmedia
Kyung Hee University
MEDIA LAB – Richmedia
Kyung Hee University

𝑎 + 𝑏𝑖 + 𝑐 + 𝑑𝑖

𝑎 + 𝑏𝑖 − 𝑐 + 𝑑𝑖

𝑎 + 𝑏𝑖 ∗ 𝑐 + 𝑑𝑖
𝑎 + 𝑏𝑖
𝑐 + 𝑑𝑖
𝑎 + 𝑏𝑖 /𝑘

𝑎 + 𝑏𝑖 = 𝑐 + 𝑑𝑖 𝑎 + 𝑏𝑖 ∗ 𝑘
MEDIA LAB – Richmedia
Kyung Hee University

Fstream : 파일 입출력을 위한 헤더파일


(ofstream)

파일 생성 코드.
ofstream : 파일 출력 스트림 객체 out_file1을 선언
out_file1.open(…) : …의 이름으로 파일을 open

Complex 생성자.

Header File에 정의 한 operator


overloading & 함수 사용.
MEDIA LAB – Richmedia
Kyung Hee University

Q1. Complex.cpp와 Complex.h 를 새 프로젝트에 포함하고, main.cpp에 좌측의 코드를 작성하여 결과를 확인하시오. (출력 텍
스트는 반드시 보고서에 기입)
MEDIA LAB – Richmedia
Kyung Hee University

파일 생성.

변수 설정 및 값 설정을 위한 코드.

결과 값을 파일에 출력.

Q2. 정현파를 생성하고 샘플링 주파수를 변경하여 엑셀을 통하여 그래프 그리기. (정현파의 주파수는
변경 x, 플롯 결과는 반드시 보고서에 기입.)
MEDIA LAB – Richmedia
Kyung Hee University
MEDIA LAB – Richmedia
Kyung Hee University

Q3. Verify Addition of Sinusoids Using Complex Exponentials. Generate four sinusoids with
the following amplitude and phase :

𝑥1 𝑡 = 2

1 1 2
𝑥2 𝑡 = 2 cos 30π𝑡 − π , 𝑥3 𝑡 = 4 cos 30π𝑡 − π , 𝑥4 𝑡 = 3 cos 30π𝑡 − π
5 4 5

(1) 4개의 신호를 합친 하나의 신호를 샘플링하여 플롯하시오. (샘플링 주파수 𝑓𝑠를 결정하여 약
3주기의 x(t)를 출력)

(2) Sampling Frequency를 변경하면서 Nyquist theory를 확인 하시오.


MEDIA LAB – Rich Media
Kyunghee University

1. 파일명 : “신시_1st_학번_이름.zip”
• EX) 신시_1st_2023000100_홍길동.zip
2. 압축 파일 구성
• 소스 파일, .hwp(.doc) 2개 파일 (Python 의 경우)
• 소스 파일, .hwp(.doc), .exe 3개 파일 (C/C++ 의 경우)
3. 파일 내용
• 보고서 : 이름, 학번, 문제, 주요 변수, 알고리즘, 결과
• (.py, .ipynb)파이썬 소스코드 or (.cpp, .c) C/C++ 소스코드
• .exe : 실행파일 (C/C++ 의 경우만 해당)
4. 주의 사항
• 제출이 늦을 경우 감점은 있지만, 학기 종료까지 제출
하시면 점수가 있습니다.

• 기한 : 4/20 자정(금일부터 2주)

조교 : 권도완
이메일 : kdwys97@khu.ac.kr
연구실 : Media Lab (567호)

You might also like