신호 (Signal) (I)
신호 (Signal) (II) 일반적인 의미의 신호 신호의 분류 및 특징 정보나 자료의 집합 물리적 시스템의 상태 또는 거동에 관한 정보를 전하는 기능을 지닌 함수 물리적 과정에 의해 조작, 저장, 전송될 수 있는 물리적 양의 변화 형태 전류, 전압, ECG, EEG, 주식가격, 전하밀도, 이미지, 음성 등 독립변수 (Independent Variable)의 함수(Function)로 표현 될 수 있는 물리적 양 (Physical Quantity) 시간(Time), 주파수(Frequency), 공간(Space) 등 신호의 분류 및 특징 Analog Signal 연속시간신호 (Continuous Time Signal) 연속크기신호 (Continuous Valued Signal) Digital Signal 이산시간신호 (Discrete Time Signal) 이산크기신호 (Discrete Valued Signal)
신호 (Signal) (III) 신호(Signal)는 여러 가지 방법으로 특정 지어 질 수 있다. 연속시간신호 (Continuous Time Signal) 어떤 주어진 시간에서 교실 내의 온도 (Temperature) 이산시간신호 (Discrete Time Signal) CD-ROM에서의 음성신호 (Audio Signal) 연속시간과 연속크기신호 (Continuous Time and Continuous Valued Signal) Analog Signal (온도 : Temperature) 연속시간과 이산크기신호 (Continuous Time and Discrete Valued Signal) Quantized Signal (인구 : Population) 이산시간과 연속크기신호 (Discrete Time and Continuous Valued Signal) Sampled Signal (바람속도의 매일 평균 : Daily average of wind speed) 이산시간과 이산크기신호 (Discrete Time and Discrete Valued Signal) Digital Signal (CD Audio)
신호 (Signal) (IV) 이산시간과 연속크기 신호 연속시간과 이산크기 신호
정현파 신호 (Sinusoid Signal) (I) 정현파 신호는 신호처리 (Signal Processing)에 매우 중요한 역할을 수행 만들기 쉽다 (Easy to generate) 수학적 특성이 잘 표현 되어졌다 모든 신호들은 정현파의 합으로 표현되어 질 수 있다. (매우 중요) All signals can be represented as a sum of sinusoids Fourier Transform (푸리에 변환) 연속시간 계에서의 정현파 신호의 표현 A : 진폭(Amplitude), W : 각 주파수(Angular frequency), ф: 위상(Phase)
정현파 신호 (Sinusoid Signal) (II) 연속시간 영역 정현파는 주기신호 (Periodic Signal) 주기 (Period) : 정현파가 같은 파형을 반복하는 시간간격 x(t) = x(t+T) 주파수 (Frequency) 정현파가 1초에 같은 파형을 반복하는 횟수로 주기의 역수 주파수가 높아질수록 신호의 파형은 시간적으로 더 급격한 변화를 보인다.
정현파 신호 (Sinusoid Signal) (III) 진폭 (Amplitude) : A 정현파가 진동하면서 변할 수 있는 값의 범위 각 주파수 (Angular Frequency) : ω ↔ Ω 정현파가 1초에 이동 할 수 있는 radian 각 (radians/second) 위상 (Phase) : ф 각으로 표시된 원점 (Origin)에서 cos파의 꼭지점(Peak point) 또는 sin파의 영점 (Zero)의 거리 파형의 시간이동과 연관 : 앞섬 또는 뒤짐으로 표현
이산시간신호 (Discrete-Time Signal) 이산시간신호는 숫자데이터의 열(Sequence) 또는 신호열(Signal Sequence)로 간주되고 이산시간 t 에서만 정의. 여기서 t 는 정수 이산시간신호들은 숫자들의 열 (Sequence of numbers)로 쓰여진다. {x[n]} = { …, -0.2, 2.2, 1.1, 0.2, …} 여기서 n 은 정수간격들을 갖는 이산신호 (Discrete Time) 이산시간신호들은 독립변수 (시간) 양자화로 대략적으로 설명되어 질 수 있는 샘플링 (Sampling)에 의한 연속시간신호로부터 만들어진다. : 주기당 샘플링 간격 (Sampling interval/period) : 샘플링 주파수 (Sampling frequency)
System 신호를 처리 (교환, 변환, 가공, 전송)을 하여 다른 신호를 만들어내는 실체 분석기 (Analyzer) 특정한 원하는 정보를 추출 또는 적당한 방법으로 표현 합성기 (Synthesize) 조절신호에 의해 원하는 출력신호 발생 변환기 (Transducer) 신호를 하나의 물리적 형태로부터 다른 형태로 변환 필터 (Filter) 신호를 원하는 형태로 바꿈 (예) 통신시스템, 생체시스템, 생산시스템 등 전자회로 (H/W)와 처리 알고리즘 (S/W)로 구성 입력(Input), 출력(Output, Response), 동작규칙(Operation Regulation)에 의해 특징이 나타남 -> 시스템 모델링 (System Modeling) 수학적 방정식으로 표현 가능 DSP (Digital Signal Processing) System 목표는 디지털 수학적 처리가 가능한 시스템의 구현
신호 처리 (Signal Processing ) Signal ? System? Processing? 신호(Signal)와 데이터(Data)들을 수로 표현하여 처리하는 것 신호(Signal)에 의하여 전송되는 가장 적절하고 타당한 정보를 추출하기 위하여 이산화 되어지고 양자화된 신호들(Discretized and Quantized Signals)의 수학적(Mathematical) 알고리즘적(Algorithmic)인 조작 (Manipulation) 또는 처리(Processing) => 디지털신호처리 신호의 해석, 정보추출, 특징분석, 조작 등의 수치적 처리 처리되어질 신호 처리된 신호 (Analog or Digital) System Signal to be processed Processed signal Signal ? System? Processing?
신호처리 (Signal Processing) 원하는 목적에 맞는 결과를 얻을 수 있도록 신호에 대하여 시스템을 이용하여 교환, 변환, 가공, 전송, 저장 등의 필요한 행위 응용분야에 따라 다양한 처리기법 (Processing Technique)이 존재 하드웨어 또는 소프트웨어적인 처리방법이 존재
DSP (Digital Signal Processing) System 아날로그 입력 아날로그 출력 아날로그 필터 ADC DSP DAC 아날로그 필터 전형적인 디지털 신호처리 구성도 아날로그 필터 (전처리 필터) : 신호의 주파수 범위를 제한 ADC (Analog-Digital Converter) : Analog 신호 -> Digital 신호 샘플링 (Sampling), 양자화 (Quantization) DSP (Digital Signal Processing System) DAC (Analog-Digital Converter) : Digital 신호 -> Analog 신호 zero-order hold 또는 Sample-and-Hold 아날로그 필터 (후처리 필터) : 변환과정에서 발생하는 과도응답신호 제거 응용분야에 따른 다양한 시스템의 변화가 발생 디지털 신호로 저장, 전송, 출력 등에 따라
응용분야에 따른 다양한 신호처리 통신 (Communication) 신호 보안 (Signal Security) (변조와 복조 Modulation and Demodulation) 신호 보안 (Signal Security) 암호화 및 복호화 (Encryption and Decryption) Multiplexing 과 De-multiplexing 공통채널(Common Channel)을 통한 많은 신호들의 전송 데이터 압축 (Data Compression) 데이터 보관 (Data Store)와 데이터 처리 (Data Process)를 위한 공간 (Space)과 계산시간(Computation Time)을 줄임 신호잡음처리 (Signal De-noising) 필터링(Filtering)을 통한 잡음(Noise) 줄임 화자/시스템 인식 (Speaker/System Identification) Audio Processing 신호의 개선 및 등화 (Signal enhancement and Equalization) 영상 처리 (Image Processing) 영상잡음처리 (Image de-noising), 영상개선(Image enhancement), Watermarking, 영상재현(Image reconstruction) 데이터 분석 및 형상추출 (Data analysis and Feature extraction) 주파수/스펙트럼 분석 (Frequency/Spectrum Analysis) 신호발생 (Signal Generation) Dialing
기본적인 디지털 신호처리 연산 (Operation) Convolution : 선형신호처리 연산의 기본 Correlation (상관) : 신호간의 유사성 구분의 지표 Autocorrelation (자기상관) Cross correlation (상호상관) Filtering (필터링) FIR (Finite Impulse Response) / Non-recursive 필터 IIR (Infinite Impulse Response) / Recursive 필터 잡음제거 (Noise removing) Transform (변환) 시간영역(Time-Domain) ↔ 주파수영역 (Frequency-Domain) DFT (Discrete Fourier Transform), FFT (Fast Fourier Transform), Wavelet 등
디지털 신호처리를 사용하는 이유 장점 (Advantages) 단점 (Disadvantages) 유연(more flexible), 정확(more accurate), 높은 성능(high performance), 대량생산(easier to mass produce) 설계의 간편함 (Easy to design) 시스템 특성을 프로그램으로 쉽게 수정 적절한 bit수의 정밀도 조절 결정성(Deterministic)과 재현성(Reproducible)을 갖음 Analog 프로세서에서 취급하기 힘든 것을 Digital로 구현 Multiplexing, Time sharing, Multi-channel processing, Adaptive filtering 등 종속접속이 쉽고, 유동(Drift)효과가 없고, 신호들의 손실 없이 저장가능 매우 낮은 주파수 신호들의 처리가 가능 반도체의 발달로 시스템을 값싸고, 작고, 가볍고, 간결하게 만들 수 있다. 단점 (Disadvantages) A/D 또는 D/A 변환과정에 정보손실 시간 지연 및 속도의 제한이 발생 시스템의 복잡도가 증가
DSP의 실제응용 (Real World Application of DSP) 신호분석 (Signal Analysis), 잡음축소/제거 (Noise reduction/ removal) 생체신호(Biological Signal)처리 : ECG(심전도), EEG(뇌파), EMG(근전도) .. NDE (Non Destructive Evaluation : 비 파괴평가)신호 : Ultrasound .. 해양데이터 처리 (Oceanographic Data Processing) 지진데이터 처리 (Seismic Data Processing) 금융데이터 처리 (Financial Data Processing) : Stock Prices 음성신호처리 (Audio Signal Processing) 잡음제거 (Echo Cancellation) 통신 (Communication) 통신 : AM (Amplitude Modulation), FM (Frequency Modulation) 등 디지털 및 무선전송 (Digital & Wireless Transmission) CDMA (Code Division Multiple Access) TDMA (Time Division Multiple Access) Time Division Multiplexing 과 Frequency Division Multiplexing Internet Protocol 데이터보안, Watermarking, 지문분석(Fingerprint Analysis), 음성인식 (Speech Recognition) 영상처리와 재현 (Image Processing and Reconstruction) 등
영상 처리 (I) 영상 처리(image processing)란? 영상을 대상으로 하는 신호 처리(signal processing)의 한 분야 영상의 화질 향상, 소실된 정보의 복원, 데이터의 압축, 영상의 인식 등을 포함 영상 처리의 역사 20세기 중반까지 아날로그(analog) 방식 1960년대 미국에서 위성으로부터 전송 받은 달 표면 사진의 화질을 복원시키는 방법에 대한 연구가 디지털 영상 처리의 시초
영상 처리 (II) 영상 처리의 분야 영상의 기하학적 변형(geometric transform) 영상의 화질 개선(enhancement) 영상의 복원(restoration) 영상 데이터 압축(compression) 객체 인식(object recognition)
영상 처리 (III) 컬러 영상의 화질 개선 전체적으로 어둡거나 밝은 영상을 눈에 보기 좋게 변환하는 화질 개선 전체적으로 어둡거나 밝은 영상을 눈에 보기 좋게 변환하는 화질 개선 디지털 카메라, HDTV 의료 영상 분야 정교한 분석이 필요 화질 개선, 영상 분석
영상 처리 (IV) 문서 처리 OCR(Optical Character Recognition) 필기체 인식 공장 자동화 공장에서 생산되는 제품의 결함을 검출 실시간 처리 필수적
영상 처리 (V) 보안, 감시 시스템 침입자 감시 군사적 용도 자동 동영상 요약 스포츠 동영상의 하일라이트 생성 뉴스, 교육용 비디오의 자동 편집 및 분류
영상 처리 (VI) 증강현실 현실 세계의 영상에 컴퓨터가 생성한 그래픽스를 첨가하여 보여주는 가상 현실(virtual reality) 기술의 하나 객체 인식(object recognition)과 추적(tracking) 기법 등을 필요
영상 처리 프로그래밍(I) 그레이스케일(grayscale) 영상 색상 정보가 없이 오직 밝기 정보만으로 구성된 영상 트루컬러(truecolor) 영상 색상 정보를 가지고 있어서 다양한 색상을 표현할 수 있는 영상 2563 = 16,777,216 색상 표현 가능 픽셀(pixel) 영상의 기본 단위, picture element, 畵素
영상 처리 프로그래밍(II) 그레이스케일 값의 범위 그레이스케일 영상에서 하나의 픽셀은 0부터 255 사이의 정수 값을 가짐. C/C++ 에서 unsigned char 로 표현 (1 byte) 0 : 가장 어두운 밝기(검정색) 255 : 가장 밝은 밝기(흰색)
영상 처리 프로그래밍 (III) 영상에서 사용되는 좌표계
영상 처리 프로그래밍 (IV) 그레이스케일 영상에서 픽셀 값 분포의 예 187 194 197 173 77 25 190 191 158 37 15 14 182 180 127 32 16 13 184 186 172 100 20 18 189 192 148 11 10 195 181 54 19 88 12 9 8
int a[3][4]; 영상 처리 프로그래밍 (V) 정적 2차원 배열의 생성 단점 배열의 크기를 미리 알고 있어야 함. 다양한 크기의 영상을 표현하기에는 부적절 int a[3][4]; a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3]
영상 처리 프로그래밍 (VI) 동적 2차원 배열의 생성 int i; unsigned char** p; w : 영상의 가로 픽셀 크기(너비) h : 영상의 세로 픽셀 크기(높이) int i; unsigned char** p; p = new unsigned char*[h]; for( i = 0 ; i < h ; i++ ) { p[i] = new unsigned char[w]; memset(p[i], 0, sizeof(unsigned char)*w); }
p p[0] p[1] p[h-1] p[0][0] p[0][1] p[0][w-1] p[h-1][0] p[h-1][1] 영상 처리 프로그래밍 (VII) 동적 2차원 배열의 생성 코드의 동작 p p[0] p[1] p[h-1] p[0][0] p[0][1] p[0][w-1] p[h-1][0] p[h-1][1] p[h-1][w-1] 로컬 포인터 변수 공간 동적 할당된 포인터형 공간 동적 할당된 데이터 공간
영상 처리 프로그래밍(VIII) 동적 2차원 배열의 값 참조 방법 for( j = 0 ; j < h ; j++ ) { y 좌표 인덱스: j x 좌표 인덱스: i for( j = 0 ; j < h ; j++ ) { for( i = 0 ; i < w ; i++ ) p[j][i] = p[j][i] + 1; }
영상 처리 프로그래밍 (IX) 동적 2차원 배열의 메모리 해제 for( i = 0 ; i < h ; i++ ) 동적 2차원 배열 생성의 역순으로 해제 괄호 연산자([]) 사용 for( i = 0 ; i < h ; i++ ) delete [] p[i]; delete [] p;