여러가지 빛의 스펙트럼 관찰

아이작 뉴튼은 빛을 프리즘을 통과시키면 여러가지 색깔로 분리되며 이것을 다시 돋보기로 합치면 흰빛이 됨을 실험으로 보여줬다. 프리즘은 유리라는 매질을 통과할 때 빛의 속도가 느려지는 것을 이용하며 적당한 각도로 굴절시켜 빛을 분리한다. 

낮에는 태양의 빛이 대부분이지만, 밤에는 형광등과 LED 조명을 사용한다. 이 인공조명도 흰빛이지만 색감은 태양빛과 다르다. 이 비밀을 스펙트럼 관찰로 해결할 수 있을것이라는 기대로 실험을 진행했다. 

시중에서 파는 실험용 간이 분광기를 구매해서 육안으로 관찰해보았는데, 이를 기록으로 남기기 위해서는 사진으로 찍어야 했다. 그래서 분광기를 사진과 같이 스마트폰 카메라에 테이프로 고정해서 찍었다. 또 다른 분광기 타입은 스마트폰에 쉽게 고정할 수 있게 되어서 편리했다. 


낮에 태양빛을 분광기로 관찰하여 찍은 사진이다. (직접 태양을 봐서는 안되고 주변을 보는 것이 안전하다) 사진과 같이 중앙에 스펙트럼이 나오지만 새어들어오는 빛 때문에 주변이 어지럽다. 


그래서 가운데 스펙트럼 부분만 구글포토를 이용하여 잘라내었다. 아래 사진이 태양광의 스펙트럼이다. 전체적으로 연속적인 모양이다. 
스펙트럼 중에서 사람 눈에는 가시광선 부분만 보이며, 그 중에서 짧은 파장인 보라색(400nm)부터 긴 파장인 붉은색(700nm)까지 배열된다. 

이제 형광등이다. 형광등은 요즘은 잘 쓰지 않아서 할아버지 집에 가서 관찰하고 사진을 찍었다. 형광등은 여러 빛의 3원색인 빨강, 초록, 파랑에서 스펙트럼이 강하게 관찰되지만, 중간에 어두운 부분이 있어 태양광과 달리 모든 파장에서 빛이 나오지 않음을 알 수 있다. 

할아버지 집에 있는 삼파장램프도 스펙트럼을 찍어보았다. 삼파장이라는 이름대로 빨강, 초록, 파랑에 집중된 스펙트럼을 보여주며, 중간의 검은 부분이 더 넓다. 
이렇게 모든 스펙트럼 영역을 다 채우지 않더라도, 빛의 3원색이 있다면 흰색 빛을 만들 수 있다. 하지만 흰색빛이라고 다 같지 않다. 

이어서 LED에 대한 실험을 했다. 흰색을 내는 LED는 파랑LED가 개발된 후 본격적으로 사용되기 시작했다고 한다. 초록 LED와 빨강 LED는 개발된지 오래되었지만, 파랑LED의 개발이 늦어져서 LED를 조명으로 사용하지 못했다고 한다. 파랑LED를 개발한 업적이 얼마나 대단한지 이걸 개발한 일본 과학자는 노벨상까지 받았다고 한다. 

여하튼 흰색 LED는 크게 두가지 타입이 있다고 한다. 하나는 하나의 LED안에 빨강, 초록, 파랑 LED를 모두 넣어 3원색을 모두 켜는 방식이다. 3색 LED를 인터넷에서 구매해서 빵보드에 설치하고 5V 전압을 가했다. 


그런데 3색 LED는 광량이 충분치 않아서 스펙트럼 촬영에 애먹었다. 그나마 잘 나온게 다음 사진이다. 3개의 원색 부분에 스펙트럼이 관찰되기는 한다. 

일반적으로 많이 사용되는 흰색 조명용 LED는 에너지가 높은 파랑LED와 노란색 인광물질로 이루어진다. 파랑LED가 빛을 내면 인광물질이 그 에너지를 받아 여기되었다가 에너지를 빛의 형태로 방출하게 되는데 그 빛이 노란색을 중심으로 언덕모양의 스펙트럼을 내보낸다고 한다. 

파랑과 노랑이 보색이기도 하지만 인광물질에 의해 연속적이 스펙트럼을 만들기 때문에 스펙트럼상으로는 형광등, 3파장램프에 비해 연속적인 스펙트럼을 보여준다. 그래서 조명용 LED가 더 자연스러운 색감을 보여줄 것이다. 
조명용 LED는 파랑과 초록 사이에 검은 띠가 보이는 것이 특징이다. 그 외 영역에서는 태양처럼 연속적인 스펙트럼을 보여준다. 


이것은 조명회사 OSRAM의 기술자료에서 제공된 스펙트럼 분석도를 보면 이해가 된다. 파랑LED 때문에 파랑에서 꼭지점이 있고, 인광물질(YAG) 덕분에 노란색을 중심으로 연속스펙트럼이 나온다. 


같은 흰빛이라도 색감이 다르다는 것을 확인하기 위해, 색샘플지를 놓고 3원색LED(왼쪽)와 조명LED(오른쪽)를 비췄을때 색감의 차이를 사진으로 찍어보았다. 
3원색LED의 경우 빨강, 초록, 파랑만 강조되기 때문에 그 중간색인 노랑이나 하늘색이 잘 구분되지 않는다. 반면 조명용LED는 태양빛과 유사하게 모든 색상영역에서 색이 구분된다. 

  

이와 같이 어떤 조명이 태양빛과 얼마나 유사한지를 나타내는 지수를 연색성 지수라고 한다. 연색성이 높을 수록 색감이 자연스럽다고 한다. 

------------------------

스펙트럼을 사진으로 찍은 것으로는 수치화된 데이터를 뽑기 어려워서, 비싼 실험장비를 대신해 간단하게 Python으로 프로그램을 짜서 스펙트럼 사진을 분석해보기로 했다. 

프로그램은 PIL(Python Imaging Library, Pillow)를 이용하여 스펙트럼 이미지 파일을 읽는다. 가로로 50등분하여 영역을 구분하고, 각 영역의 점을 R, G, B 성분으로 읽어 모두 더한다. 그리고 각 영역별로 구한 값을 상대도수로 구해서 이를 차트로 그려보면, 비싼 스펙트럼 분석기가 보여주는 것과 유사한 형태가 나올 것이라 예상했다. 

상대도수로 한 것은 실험의 여건상 밝기를 일률적으로 맞출 수 없어서 그랬다. 그래서 상대적인 비교를 했다. 

Python 프로그램의 일부는 다음과 같다. 

# 스펙트럼 이미지를 읽어들여 10등분한 다음 R,G,B성분을 더한 다음 상대도수를 얻어냄.
# PIL 설치하려면, pip install pillow
# 참고: https://www.geeksforgeeks.org/python-pil-getpixel-method/

from PIL import Image

def analyze(filename):
    block_count = 50
    im = Image.open(filename)
    px = im.load()
    # print(px[4, 4])
    width, height = im.size
    # print(f"image width={width}, height={height}")

    count = []
    w = int(width / block_count)
    n = 0  # block의 번호
    for n in range(block_count):
        intensity = 0
        for dx in range(w):
            x = n*w + dx
            for y in range(height):
                intensity += px[x, y][0] + px[x, y][1] + px[x, y][2]  # R,G,B를 더함
        # print(f"block={n}, intensity={intensity}")
        count.append(intensity)

    # print(count)
    # 상대도수 구하기
    total = sum(count)
    freq = []  # 상대도수
    for i in count:
        freq.append(i/total)
    # print(freq)
    line = filename + ','
    for item in freq:
        line += str(item) + ','
    print(line)

analyze('images/태양광2.jpg')
analyze('images/조명LED1.jpg')
analyze('images/삼파장1.jpg')
analyze('images/형광등1.jpg')


이렇게 분석한 값을 CSV 형식으로 출력하여, 구글시트에서 읽어들이고 차트를 그려보았다.
태양광은 예측한대로 모든 파장대에서 완만한 모양을 보였고, 조명용 LED는 파랑 부분과 노랑 부분이 강조됨을 볼 수 있었다. 삼파장램프는 선스펙트럼의 형태를 보여주었다.  



저렴한 분광기과 스마트폰, 그리고 Python 프로그램으로 다양한 빛을 관찰하고, 이를 프로그램으로 분석하는 과정에서 빛의 스펙트럼에 대해 잘 이해하게 되었고, 연색성이라는 중요한 개념도 알게 되었다. 
육안으로 관찰하는 실험을 넘어서서 이를 데이터로 만들고 분석하는 시도를 통해 객관적인 실험데이터를 만들고 시각화하는 경험도 흥미로웠다. 
무엇보다도 누구나 가지고 있는 스마트폰을 과학실험의 도구로 사용했다는 점에서 뿌듯했다. 







댓글