화요일, 4월 30, 2024

[3Blue1Brown] Neural Networks / ANN C++ Class / Neuromorphic Computing

[3Blue1Brown] Neural Networks

https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi


But what is a neural network? | Chapter 1, Deep learning


Gradient descent, how neural networks learn | Chapter 2, Deep learning



[CodeProject] Artificial Neural Network C++ Class

https://www.codeproject.com/Articles/5292985/Artificial-Neural-Network-Cplusplus-Class


Neuromorphic Computing Is a Big Deal for A.I., But What Is It?

https://youtu.be/TetLY4gPDpo?si=FUTohDYEXeF8QIaJ





[Intel] Neuromorphic Computing

https://youtu.be/6Dcs6fQglRA?si=efULwumjWlcH3g5O









금요일, 4월 19, 2024

[영어공부] How to die in good health

[영어공부] How to die in good health

베트남 출장 다녀와서 감기가 된통 걸려 일주일 고생 했다. 면역력이 전만 못한 탓일 게다. 매일 늙어가는 느낌이 들어 속상하다. 마침 더뉴요커에 실린 기사가 눈에 띄었다.

https://www.newyorker.com/magazine/2024/04/22/how-to-die-in-good-health

건강하게 죽기 / 죽을때까지 건강하기

의학발전, 위생 향상등으로 수명이 늘었다. 젊음이 늘었다면 좋겠지만 쇄약해진 노년의 시간이 늘었다. 65세이후 건강한 생일을 맞는 횟수는 한번에 불과하단다. 장수의 의미를 병들어 오래 살기보다 젊음의 시간을 늘이는 것으로 바꿔보자. 저명한 장수 전도사(의사)이렇게 권고한다. "나가 놀아라. " "섭생을 건강하게하라." "푹 잘 자라." "원할한 대인관계를 유지하라."

"work out, eat healthily, sleep well, nurture relationships."

당연한데 당연하게 지키지 못하고 사는 생활 준칙이다. 일찌감치 시골 살이를 선택했던 3년전의 다짐을 다시한번 되짚어 본다. 



화요일, 4월 02, 2024

[양평집] 2024년 3월, 도파민 과다가 의심된다

[양평집] 2024년 3월,도파민 과다가 의심된다

위키사전에 따르면 "도파민은 일반적으로 특정한 행동을 형성하여 사람으로 하여금 동기를 유발함으로써 즐거움과 재강화의 기분을 제공하는 뇌의 보상 시스템과 관련되어 있다." 지난달에 이어 당분간 두뇌에서 도파민 뿜뿜할 예정. 이러다 미치는거 아니겠지?

이번달 양평집 월기는 달력 스캔으로 마감합니다. 혹시 기다리시는 분이 계셨다면 죄송합니다. 그래도 잠깐 소식을 전하면,

- 마당에 크로커스를 앞세워 수선화가 피기 시작 했다.

 

꽃잔디와 돌단풍,

 

작약과 할미꽃,

 

- 하루 두끼 먹기를 시전했더니 몸이 홀쭉해졌다는 평을 받고 있다. 아침에는 발사믹, 올리브유, 참깨, 견과류 넣은 드레싱 풀떼기 샐러드, 이른 저녁으로 하루걸러 고기구이, 파스타, 간식으로 봄나물 김밥이 요즘 주 메뉴. 후배가 제주도 여행 갔다며 찐빵을 보내주어서 맛나게 먹다. 현우야 쌩유~

 

- 나무에 꽃봉우리가 달리기 시작.

 

-  벚꽃도 필 기세다. 가는 겨울이 아쉽다며 봄눈이 내려 앞산 머리가 희끗하다.

  

- 겨울을 지낸 마늘, 그리고 봄맞이 밭갈기

 

- 아웅다웅 하다가도 잘때는 이러고 있다. 봄볕 따뜻한 밭에 나간 두녀석은 뭘 잡았는지 노느라 집중

 

- 알리상회 세일 중 이라는데 가격에 놀라고 품질은 의심스러워 장바구니에 담았다 뺐다를 반복하는 와중에 속는 셈 치고 사본 부품으로 "만원의 행복/초소출력 가변 주파수 전신 송신기 [링크]"

- "재밋게 가르치기[링크]", 아무도 질문을 안하는걸 보면 나만 재미있는 건가보다. 어쨌든 도파민 분출의 동기가 됨. 밤샘이 잦아지고 있다!


월요일, 3월 25, 2024

인공지능 시대를 맞아 주목받는 아날로그 컴퓨팅, 퀀텀 컴퓨팅

인공지능 시대를 맞아 주목받는 아날로그 컴퓨팅, 퀀텀 컴퓨팅


Future Computers Will Be Radically Different (Analog Computing)
https://youtu.be/GVsUOuSjvcg?si=DJOKb8HJbv6MNSta

Companies, countries battle to develop quantum computers | 60 Minutes
https://youtu.be/K4ssT6Dzmnw?si=AkrA0qaF89RoVuSJ

Michio Kaku: Quantum computing is the next revolution
https://youtu.be/qQviI1d_hFA?si=7NilwdUsP-0YPOth

Beating Moore's Law: This photonic computer is 10X faster than NVIDIA GPUs using 90% less energy
https://youtu.be/t1R7ElXEyag?si=Qnzz-k7crk27lVS9


The Map of Quantum Computing - Quantum Computing Explained
https://youtu.be/-UlxHPIEVqA?si=wS94l69ODkFukcpo

The Quantum Wavefunction Explained
https://youtu.be/sOI4DlWQ_1w?si=ITy0l4iUtuF4xV3o

Qiskit is the open-source toolkit for useful quantum
https://www.ibm.com/quantum/qiskit












수요일, 3월 20, 2024

[HAM] 아마추어 무선의 불안한 미래 그리고 디지털 필터

[HAM] 아마추어 무선의 불안한 미래 그리고 디지털 필터

나의 최애 취미는 공부하기다. 이 취미를 꼽는 이유는 즐기는데 소요되는 비용이 매우 저렴하다는 것도 한몫한다. 연필과 종이 그리고 약간의 인터넷 비용이 들 뿐이다. 사실 가진것 없이 일찌감치 은퇴를 했으니 비용이 드는 취미를 가질 처지도 아니다. 그 다음으로 꼽으라면 아마추어 무선. 어느 취미가 그렇지 않으랴 만 장비병에 걸리면 이겨낼 장사없는 취미이긴 하다. 다행히 무서운 장비병이 비껴 갔으니 참으로 다행이다.

앞서 IEEE Spectrum 기사로 실렸던 '아마추어 무선의 불안한 미래'라는 글[바로가기]을 옮겼었다. 사실 아마추어 무선의 미래가 '불안'한 것이 아니라 어디로 튈지 모른다는 느낌으로 읽었다. 한 세기 전의 무선통신 개척자들은 모두 아마추어 통신가들 이었다. 사실 그들 대부분은 통신 전문가라기보다 모험가 였기에 전성기도 짧게 끝나고 이내 제도에 묶여 버렸었다. 이론기반이 빈약하고 무모했던 아마추어들은 결국 전문가들의 통제 영역에 놓이게 됐었다. 그후 한세기가 지난 지금 첨단 정보기술이 아마추어 무선이라는 취미에 응용되어 장비면에서 가히 혁명적이라 할 정도다. 이 혁명이 평균 연령이 60대인 아마추어 무선 취미가들을 위협하는 것은 아닐까? 50년 묵은 진공관식 무전기를 애지중지 하면서 전신 통신술을 구사할 줄 안다며 정통 아마추어 무선사 입네 은근히 재고있는 60대의 나는 이 위협을 떨쳐내고자 오늘도 연필과 종이를 들고 문제를 풀고 있다.

'정통' 아마추어 무선사를 위협하는 신기술에 디지털 필터라는 것이 있다. 여기서 '필터'는 특정 주파수의 신호성분을 차단시키거나 통과 시켜준다는 그 필터 맞다. 이미 백여년전부터 모든 현상은 주기함수와 급수의 합으로 표현될 수 있다는 수학이 확립되어 있었다. 다만 급수합 계산에 너무나 많은 곱셈과 덧셈이 필요하기에 현상 해석용으로 활용 됐다. 반도체 기술이 발달하고 고속 계산이 가능한 디지털 계산기가 상용화 하자 골치아픈 컨덴서와 코일의 조합으로 안정된 필터를 만들고자 했던 눈물겨운 노력들은 이제 무전기에서 사라졌다. 급수합의 '마법'이 디지털화 되어 실시간 활용에 쓰이고 있다. 그중 한 부분이 디지털 필터다.

'급수합의 마법' 이란 디지털화 한 일련의 입력 신호에 특별히 잘 구해진 계수값을 곱하여 이를 더하면 아주 신통한 결과를 얻게 된다. 급수합을 수학으로 표현하면 다음과 같다.


[출처] https://en.wikipedia.org/wiki/Finite_impulse_response

위의 수식은 아주 단순하여 누구나 한눈에 알아볼 수 있다. 다만 첨자에 유의하자. x[n-i] 는 디지털 화한 입력 신호다. b[i] 는 특별한 목적으로 구한 계수다. x[n-i]와 b[i]를 곱한 후 모두 더하여 y[n]을 구한다. 계수에 따라 스펙트럼 분석기가 되기도 하고 필터가 되기도 한다. 변조기가 되거나 복조기가 된다. 이 특별한 계수를 구하는 방법 역시 백년 전부터 잘 알려진 수학으로 '신호처리'라는 과목으로 배운다. 현대 과학기술자들에게 '급수합의 마법'은 마치 구구단 같은 것이어서 이를 당연히 여긴다. 이 계수를 구하는 방법이 아주 까다롭기에 실제로 이를 손수 구하는 경우는 없다. 이를 대신 해주는 다양한 디지털 신호처리 도구(소프트웨어)들이 있다. 디지털 필터용 계수를 구해주는 온-라인 도구는 T-Filter, http://t-filter.engineerjs.com/ 가 있다. 무료로 쓸 수 있다.

아듀이노 보드를 SSB 수신기의 음성출력을 대상으로 전신신호용 디지털 필터로 활용할 목적으로 다음과 같이 설계했다.

설계 조건이 매우 느슨하게 주어졌다. 8비트 범용 마이크로 컨트롤러용를 사용하며 응용 용도가 단순하므로 높은 사양을 줄 필요가 없기 때문이다.

    FIR filter designed with http://t-filter.appspot.com

    sampling frequency: 4800 Hz
    fixed point precision: 8 bits

    * 0 Hz - 1000 Hz
      gain = 1
      desired ripple = 25 dB

    * 1200 Hz - 2400 Hz
      gain = 0
      desired attenuation = -40 dB

아듀이노 보드는 아날로그-디지털 변환기 ADC(Analog-to-Digital Converter)를 내장한 8비트 마이크로 컨트롤러를 채택하고 있다. 동작 속도는 16Mhz로 꽤 빠르다. 실제로 소출력 단파 대역에 대응하는 소출력 아마추어 무선용 무전기의 중앙 처리기로 사용되고 있다[바로가기]. 위의 조건에 맞는 저대역 통과 FIR 필터의 계수는 아래와 같이 구해졌다.

    uint8_t filter_taps[FILTER_TAP_NUM] = {
        4,  12,  25,  34,  34,  25,  12,  4 };

이제 '급수합'의 식을 C 언어로 표현해 보자.

    void fir ( acc_t *y, data_t x)
    {
        static data_t   shift_reg[FILTER_TAP_NUM];
        acc_t           acc;
        data_t          data;
        coef_t          c;

        int     i;

        acc=0;

        for (i=FILTER_TAP_NUM-1;i>=0;i--)
        {
            if (i==0)
           
{
                shift_reg[0]=x;
              data = x;
            }
            else
            {
                shift_reg[i] = shift_reg[i-1];
                data = shift_reg[i];
            }

            c = filter_taps[i];
            acc += data*c;
      }

      *y=acc;
    }

필터의 계수 만큼 곱셈과 덧셈을 반복하여 그 합을 구한다. 계산이 진행되는 흐름을 도식으로 표현하면 아래와 같다.

매우 단순해 보이는 이 프로그램이 낳을 마법을 알아보기 위해 시험을 해봤다. 위상을 각각 임의로 준 51Hz, 700Hz, 1.9Khz, 2.1Khz 의 정현파에 총 진폭의 20 퍼센트 가량의 백색 잡음을  섞어 입력 신호로 사용 했다.

x[t] =  (AMPLITUDE/16*(cos((2*M_PI/F_SAMPLE) *   51.0 * t + (float)(rand()%10)/10.0)+1))
      + (AMPLITUDE/ 8*(cos((2*M_PI/F_SAMPLE) *  700.0 * t + (float)(rand()%30)/30.0)+1))
      + AMPLITUDE/ 4*(cos((2*M_PI/F_SAMPLE) * 1900.0 * t + (float)(rand()%50)/50.0)+1))
      + (AMPLITUDE/ 4*(cos((2*M_PI/F_SAMPLE) * 2100.0 * t + (float)(rand()%70)/70.0)+1))
      + (Xin[t]+NOISE_RANGE);

입력 신호의 모습은 아래와 같다.

잡음과 몇개의 유효신호가 합쳐져 시간의 축 상에서 보면 의미를 찾아보기 어렵다. 퓨리에 변환을 수행하여 주파수 축으로 보면 아래와 같다. 진폭이 AMPLITUDE/16에 불과한 51Hz의 신호는 거의 잡음속에 묻혀있다. 상대적으로 큰 신호인 700hz의 신호는 뚜렸하다. 그외 1.9Khz와 2.1Khz의 신호는 비교적 진폭이 컷음에도 두렸한 존재감을 보여주지 못하고 있다. 오히려 고조파 왜곡이 일어나고 있다.

필터를 거친 후 출력의 모습이다. 잡음이 상당히 억제되어 있다. 지속적인 '급수합'으로 인해 신호의 진폭 범위가 상당히 커졌다. 하지만 발산하지 않는다. 이는 신호처리 수식의 안정을 담보하며 계수를 구하기 때문이다.

어떤 주파수 성분이 살아남았는지 보기 위해 스펙트럼을 살펴보면 아래와 같다. 잡음속에 묻혀있던 50Hz의 신호가 확연히 드러난다. 차단 범위에 있던 신호들은 상당히 억제된 모습을 보여준다.

SSB 무전기의 음성신호에 전신 수신용으로 사용할 FIR 저역 통과 필터를 시험해 봤다. 디지털 신호처리의 강점을 단적으로 보여준다. 디지털 방식의 신호처리는 계산의 정밀도에 의해 영향을 받는다. 하지만 아날로그 L-C 필터의 눈물 겨움에 비하면 수고랄 것도 없다. 사정이 이러니 디지털 방식에 열광하지 않을 수 없다. 다만 '정통' 아마추어 무선사로써 아쉽다면 소위 찝찔한 송진내도, 따끔한 인두기의 손맛도, 백열등 불빛의 은근함은 없다. 오래된 무전기에서 지난날을 회상해 보는 것도 '정통' 아마추어 무선 취미가로써 한 재미일 터다. 그런 '재미'를 알리 없는 다음 세대에게 이 취미를 물려 주려면 그들의 방식도 이해해 보기로 한다.