본문 바로가기

컴퓨터공학/디지털신호처리

디지털신호처리 1장 정리 및 리뷰(1)

이번 글은 한국공학대학교 심미선교수님의 강의와 김인택의 「 Hello 신호처리 김인택 홍릉출판사 2005  」을 바탕으로 작성했음을 밝힙니다. 최대한 이해하기 쉽게 적으나, 아직 글 쓰는 것이 미숙하여 보기 불편하실 수 있으니 양해 부탁드립니다. 비판적 내용, 피드백 적극 수용하겠습니다. 중간중간 개인적인 의견, 예시가 있으니 참고하시길 바랍니다.

목차

0. 서론

1.1 신호와 시스템

1.2 디지털 신호 처리

1.3 신호와 관련한 기초 개념

 

0. 서론

디지털 신호처리를 배우는 이유는 무었일까? 그 이유는 간단하다. 디지털 시대가 도래했기 때문이다. 나는 디지털세대에 태어났기 때문에 디지털이 아닌 시대는 경험하지 못하였으나, 최근에 급속도로 디지털이 우리 생활속에 스며들었기 때문에 어떤식으로 작동하는지는 알아야 된다 생각한다.  

 

디지털 시대의 도래

- 디지털은 21세기의 시대적 아이콘이며, 디지털 기술과 제품이 보편화 되며 디지털 신호 처리의 필요성과 중요성이 커지게 되었다.

 

디지털의 특징

- 적용 대상을 가릴 필요 없이 여러 신호를 하나의 틀에서 통합적으로 다룰 수 있다

ex) 아날로그 : 문서 = 타자기, 음악 = 오디오, 동영상 = TV

      디지털    : 컴퓨터, 스마트폰, 스마트TV, IOT 등

- 신호의 조작이 보다 단순하고 쉬우며 훨씬 다양한 처리가 가능함

★ S/W의 힘을 빌어 H/W 단독으로는 불가능한 처리를 제공할 수 있음

★ FFT의 고안과 반도체의 발전에 힘입어 디지털 신호 처리 비약적 발전

 

S/W를 이용하기에 사람의 힘으로는 오래 걸리거나 불가능한 처리를 해낼 수 있다.

아날로그적인 정보단순한 숫자의 나열(수열)로 변환시킬 수 있기에 신호를 재가공하는데 다룰 수 있다. 이때 사용되는 기법으로는 FFT(fast fourier transform)으로 음성변조와 주파수 변환을 하여 요즘 나오는 AI노래, 모자이크 음성변조 등이 FFT를 이용한다. 이 FFT의 고안과 반도체의 발전에 의해 디지털 신호 처리가 비약적으로 발전할 수 있었다.

 

1.1 신호와 시스템

신호란?

신호란 물리량의 변화 형태를 담은 일련의 정보/ 자료의 집합 이라고 말한다. 이 딱딱한 말을 부드럽게, 예시를 들어보자.

참고로 나의 평단가는 76,789 ₩ 이다.

 

이 주식은 한때 반짝 올랐다가 다시 돌아오는 모습이다. 그래프에는 시간의 흐름에 따른 주가의 변화를 보여주고 있다. 이 그래프를 통해 지금 가격이 올라갔다가 다시 원상태로 돌아갔구나, 그리고 글쓴이는 큰일났구나 라는 것을 알 수 있다.

이 그래프에서 일정하게 흐르는 것은 무었인가? 바로 시간이다. 시간이 독립변수로 작동하고 있고, 이를 time domain signal이라 한다. 우리가 일상생활을 하며 얻을 수 있는 신호는 대부분 시간의 흐름에 의해 얻을 수 있는 신호, 즉 time domain인 신호라 할 수 있다.

 

신호의 형태

 노래방에서 노래를 해본 적이 있을 것이다. 이 때 목소리라는 음성신호는 마이크를 통해 전기신호로 바뀌게 된다. 마이크를 통해 노래한 것을 테이프로 녹화한다?  그럼 자기신호로 저장이 되며, CD로 저장하면 숫자열을 통해 저장이 된다. 이처럼 신호는 형태가 다양하며, 여러가지 표현 방식으로 나타 낼 수 있다. 

음성, 전기신호, 자기신호, 숫자열로 신호가 전달된다

우리가 그럼 다루기 가장 쉬운 형태는 무었일까? 전기신호가 가장 다루기 편하다. 전기신호는 측정이 쉽고, 간단하며, FFT 등 다양한 가공을 하기 매우 쉬워서 전기신호로 주로 가공을 진행한다.

 

시스템

 시스템은 간단하게 input값을 주면 output값을 주는, 함수의 역할을 하는 것을 시스템이라 한다.

책에서는 시스템을 특정한 목적에 맞도록 주어진 신호(입력)을 조작하고 처리(교환, 변환, 가공, 추출, 전송)해 다른 신호(출력)을 만들어내는 장치 라고 적혀있다. 너무 길고 읽기 힘들다. 예시를 들어보자.

다시한번 말하지만, 평단가는 76,789 ₩ 이다.

주가에서 10만원이 넘었던, 행복한 시기를 알려줘 라고 입력을 하면 출력으로 21~22년에 잠깐 있었습니다. 라고 출력값이 나온다. 이때 노란줄 위로 경계선을 잡은 것이고, 이 노란줄이 일종의 시스템이라 보면 될 것 같다.

 

시스템은 물리적요소와 알고리즘으로 구성되어 있으며, 요즘 대부분의 시스템은 복합적으로 구성되어 있다.

ex) 핸드폰의 계산기 어플리케이션 - 핸드폰이라는 물리적 요소와 계산기 알고리즘이 합쳐짐

      심전도 트래킹을 하다가 문제가 되는 위치를 찾을 수 있다 - 어떤 문제가 발생해서 심전도 트래킹에 문제가 발생했는지        원인 파악 가능

 

신호와 시스템의 표현 : 시각적 표현

 이케아에서 DIY가구를 사서 왔다고 해보자, 집에 와서 제일 먼저 해야 할 것은 무엇인가? 바로 사용설명서를 보는 것이다.

이 사용설명서의 역할을 하도록 도와주는 것이 시스템의 블록표현이라 할 수 있겠다.

위키피디아 블록다이어그램의 예시

이렇게 블록으로 표현을 하면 전체 시스템이 어떻게 구성되어 있는지, 어떤 관계로 이뤄져 있는지 파악하기 쉽다.

각 연결관계는 종속 연결, 병렬 연결, 궤환 연결로 표현할 수 있다.

각 연결의 예시

직렬 연결과 병렬 연결은 가끔 보았을 것이다. 궤환 연결은 전의 출력이 다시 돌아와서 입력값으로 되먹임(feedback)되는 시스템이다.  재귀함수를 생각하면 쉬울 것이다. 가장 유명한 피보나치함수를 재귀형태로 소스 코드로 가져왔으니 참고하길 바란다.

public class FibonacciSumRecursive {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 10; i++) {
            sum += fibonacci(i);
        }
        System.out.println("피보나치 수의 10번째까지의 덧셈 결과: " + sum);
    }

    public static int fibonacci(int n) {
        if (n <= 1) {
            return n;
        } else {
            return fibonacci(n - 1) + fibonacci(n - 2);
        }
    }
}

 

신호와 시스템의 표현 : 이론적 표현

교재의 수학적 모형화 예시

그림으로 표현 할 수 있으면, 수학적으로도 표현 할 수 있을 것이다. 진짜 간단하게 y = f(x)에서 f(x)부분인 함수를 생각하면 될 것 같다. 이 때 독립변수가 뭔지 파악하는 것이 중요하다. 시간 영역 표현에서는 t가 독립변수고, 주파수 영역에서 s가 독립변수이다.

 

신호 처리

 지금까지 우리는 각 데이터를 표현하는 방법에 대해 알아왔다. 그러면 이제 신호를 우리가 원하는 방향으로 재가공을 해봐야 하지 않겠는가? 신호처리란 원하는 목적에 맞도록 시스템을 이용해서 재가공을 하는 것을 말한다.

해석 신호로부터 원하는 특정 정보를 빼내어 적절한 방법으로 표현
합성 조절 신호에 의해 원하는 출력 신호를 발생
변환 신호를 한 물리적인 형태로부터 다른 형태로 변환
필터링 불필요한 성분을 제거하거나 바람직한 형태로 신호를 변형

 

이후의 내용은 작성 후 링크를 남기도록 하니, 양해 부탁드립니다.