신호를 다루는데 있어 주파수의 개념은 어떤 산업 분야를 막론하고 중요하다고 할 수 있습니다. 앞서 푸리에 변환(Fourier Transform)이 무엇인지 살펴 보았는데요. 이번 시간에는 이산 푸리에 변환(DFT)와 고속 푸리에 변환(FFT)에 대해 알아보도록 하겠습니다. 푸리에 변환(Fourier Transform, FT) 푸리에 변환(Fourier Transform, FT) 우리가 흔히 말하는 푸리에 변환(Fourier Transform, FT)이라고 하면 주파수 분석 하기위해 Time-Domain을 Frequency-Domain으로 변환하는 과정을 말합니다. 그러나 푸리에 변환 moonnote.tistory.com 이산 푸리에 변환(DFT, Discrete Fourier Transform) 디지털 ..
Requests 모듈Requests 모듈이란 HTTP 요청을 위한 라이브러리입니다. 따로 HTTP에 대해 다루지는 않으니 미리 HTTP Method(Get, Post, Put, Delete)에 대해 한번 검색해보시고 오시면 좋을 듯 하네요. Requests 모듈은 자동화 웹 크롤링 등 BeautifulSoup 와 가장 많이 쓰이는 모듈이라고 생각되어 한번 살펴보고 넘어가도록 하겠습니다. 설치 방법(Installation)pip install requests 샘플 예제(Example)import requests url = "http://www.google.co.kr" response = requests.get(url) print('정상적으로 url로부터 Response를 받으면 "200" 출력, 결과 :..
WhatFont 크롬 확장 어플리케이션 중 하나로 현재 웹 브라우저 창에 보여지고 있는 폰트의 정보를 알 수있는 유용한 프로그램입니다. '모방은 창조의 어머니'라고 했던가요..디자이너느 아니지만 그래도 전문가들이 구성해놓은 것을 따라하다보면 절반은 성공하고 들어가지 않을까싶네요. 다운로드는 다음과 같이 크롬 웹스토어에서 WhatFont를 다운로드 받으시면 되겠습니다. WhatFont The easiest way to identify fonts on web pages. chrome.google.com 설치 후 웹 브라우저 주소창 옆에 고정으로 놓아두면 f?라는 아이콘이 보일껍니다. 이게 WhatFont입니다. 옵션을 누르면 아이콘을 변경할 수 있는 기능이 나오는데요...아마 웹브라우저를 Light 또는 D..
양쪽 0값 제거(Trim_zeros Function) numpy.trim_zeros(filt, trim='fb') 배열 양 쪽 끝에 0값을 제거해줍니다.▪Parameters ‣ flit : 입력 배열, ‣ trim : 트림 조건, 앞에서 트림은 'f', 뒤에서 트림은 'b', 기본값은 'fb' ‣ trimmed : 출력 배열, 트림된 1D 배열 출력 예제(Example)import numpy as npa = [0, 0, 0, 1, 2, 3, 4, 0, 0, 0]print(np.trim_zeros(a, 'f')) 더보기 [1, 2, 3, 4, 0, 0, 0] import numpy as npa = [0, 0, 0, 1, 2, 3, 4, 0, 0, 0]print(np.t..
배열 중복 요소 제거 함수(Unique Function)numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None, *, equal_nan=True) 배열의 중복된 원소를 제거해 줍니다.▪Parameters ‣ ar : 입력 배열, ‣ return_index : 인덱스 반환(선택 사항), 중복 제거 배열(고유 배열)에 대한 index 정보 반환 ‣ return_inverse : 인덱스 반환(선택 사항), 입력 배열에 대한 index 정보 반환 ‣ return_counts : 중복 횟수 반환(선택 사항), 입력 배열에 대한 중복 횟수 정보 반환 ‣ axis : ..
배열 요소 삭제 함수(Delete Function)numpy.delete(arr, obj, axis=None) 지정한 Index의 요소를 삭제시켜주는 함수입니다.▪Parameters ‣ arr : 입력 배열, ‣ obj : 값 추가 전 인덱스를 지정하는 개체 삽입(slice or Index), ‣ axis : 축 설정(선택 사항), 계산이 진행되는 축 설정 ‣ out : ndarray, 삭제된 배열 출력 값(axis 지정이 없다면 1D Array 형태로 출력) 예제(Example)import numpy as npa = np.arange(1, 10, 1)print('Initial np values : ', a)a = np.delete(a, 0)print('1st de..
모듈화(SubVI) 모듈화란 사용자가 원하는 기능의 함수를 직접 만드는 것을 말합니다. 랩뷰에서는 SubVI라고 많이 부르며 랩뷰 기본 함수 및 툴킷에서 제공되는 아이콘 외에 내가 직접 함수 아이콘을 만든다고 보시면 되겠습니다. "그럼 모듈화를 왜 사용해야 하는 걸까요?", "기존에 제공되는 함수를 사용하면 더 편하고 쉬운게 아닌가요?" 등의 의문을 가지고 계신 분들이 있으실텐데요. 개인적으로는 내가 잘 활용할 수 있는 나만의 모듈. 즉, SubVI를 얼마나 많이 가지고 있는지가 나의 LabVIEW 스킬이 될 수 있다고 생각합니다. 그만큼 랩뷰에서는 지원되는 함수만 있다면 입출력 터미널을 와이어링만 시켜서 일단 코드 작성을 끝낼 수 있기 때문이죠. "先 기능 구현, 後 스터디가 가능하다고나 할까요?" 크..
Why does this code cause a broken Run button? 1. Control wired to another control 2. Output and input nodes are not wired together 3. Mismatched data types 4. Required terminal is not wired 정답 보기는 아래 더보기 클릭 더보기 정답 : 4. Required terminal is not wired VI의 실행 버튼이 깨져있는데 원인이 무엇인지 물어보는 문제이다. 코드를 살펴보면 Input X와 Product라고하는 이름의 컨트롤, 인디케이터가 있고 [곱하기] 노드를 통해 와이어링 연결되어있다. [곱하기] 노드의 경우 입력 X와 Y 값 두 개를 모두 받아야지만..
배열 요소 삽입 함수(Insert Function)numpy.insert(arr, obj, values, axis=None) 지정한 index에 요소를 끼워 넣어주는 함수입니다.▪Parameters ‣ arr : 입력 배열, ‣ obj : 값 추가 전 인덱스를 지정하는 개체 삽입, ‣ values : 추가할 값, ‣ axis : 축 설정(선택 사항), 계산이 진행되는 축 설정 ‣ out : ndarray, 추가된 배열 출력 값 (axis 지정이 없다면 1D Array 형태로 출력) 예제(Example)import numpy as npnp = []np.insert(0, 1)print('1st insert data : ', np)np.insert(0, 2)..
푸리에 변환(Fourier Transform, FT) 우리가 흔히 말하는 푸리에 변환(Fourier Transform, FT)이라고 하면 주파수 분석 하기위해 Time-Domain을 Frequency-Domain으로 변환하는 과정을 말합니다. 그러나 푸리에 변환에서 말하는 주파수란, 우리가 흔히 알고 있는 "초당 몇회 반복되는지"의 개념만 가지고 설명할 수는 없고 확장된 개념으로 공간적인 의미을 내포하고 있다고 보는 것이 더 정확하다고 할 수 있습니다. 그렇기 때문에 오일러 공식을 통해 푸리에 급수의 기본 함수를 삼각함수가 아닌 \(e^{2\pi i\theta }\)로 사용하기도 합니다. (\(z = cosx + isinx\)는 복소 평면에서 단위원을 말함, 아래 이미지에서는 실수에 대해 \(\varph..
배열 요소 추가 함수(Append Function)numpy.append(arr, values, axis=None) 입력 배열 마지막에 요소를 추가해주는 함수입니다.▪Parameters ‣ arr : 입력 배열, ‣ values : 추가할 값, ‣ axis : 축 설정(선택 사항), 계산이 진행되는 축 설정 ‣ append : ndarray, 추가된 배열 출력 값 (axis 지정이 없다면 1D Array 형태로 출력) 예제(Example)import numpy as npnp = []np.append(1)np.append(2)np.append(3)np.append(4)np.append(5)print(np) 더보기 [1, 2, 3, 4, 5] import numpy..
22년 3월 구글 애드센스에서 멀티플렉스 광고가 추가되었다고 한다. 기존의 일치하는 광고가 멀티플렉스 광고 형태로 바뀐 것이라고 하는데 일정 트래픽 이상이 되면 자동으로 광고 게재 자격이 주어지는 광고라고 한다. 이런게 바뀌었었던걸 최근이 되어서야 알게되다니..어김없이 정신없이 보낸 2022년도인 것 같다. 잡설은 그만하고 멀티플렉스 광고에 대해 한번 알아보는 시간을 가져보자. 멀티플렉스 광고(Multiplex Ads) 멀티플렉스란 이름에서 유추할 수 있듯이 여러 광고를 게재하는 네이티브 광고 형식이 바로 멀티플렉스 광고이다. 맞춤 설정이 가능하여 사이트의 디자인 형태에 맞춰서 변경할 수 있다고 한다. 처음 멀티플렉스 광고를 보고 들었던 생각은 'Dable' 광고와 유사하다고 생각이 들었다. 블로그를 시..
엑셀 파일엑셀 파일 구성예제 실행시 사용하였던 엑셀 파일 데이터 및 시트 정보▪ 1행 5열 데이터셋 Cell 값 쓰기(2가지 방법 : ¹['Cell'].value, ²cell(row=x, column=y).value)import openpyxlfrom openpyxl import load_workbook# You must change the physical path before running this script.currPath = "C:/Users/natio/OneDrive - 성균관대학교/99. Personal Blog/05. Python/05. OPENPYXL/02. Cell Example/"# # Load the excel filewb = openpyxl.load_workbook(filename=..
이벤트 구조 심화편(Advanced Event Structure) 이번 시간에는 지난번 다루어보았던 이벤트 구조(Event Structure)에 대해 좀 더 알아보는 시간을 가지도록 하겠습니다. 이벤트 구조의 동작만 알아도 LabVIEW에서 사용하는데 크게 문제가 없기 때문에 따로 지난 시간에 언급드리진 않았는데요. 한번 사용해보았으니 이제 자세히 리뷰를 해보도록 하겠습니다. 이벤트 구조에 대해서 잘 기억이 안나시는 분들은 이전 포스팅 내용을 한번 정독하시고 본문을 읽어주시길 권장드립니다. 랩뷰(Tutorial) 17 | 이벤트 구조(Event Structure) 이벤트(Event)란, 프로그래밍에서 이벤트라고 하면 '지정한 조건에서의 특정 기능이 실행'되도록 하는 것입니다. 프로그래밍 언어가 익숙하신 ..
Why does this VI have a race condition? 1. The lack of a Wait function will cause the While Loop to execute too quickly for data to be written correctly. 2. The local variables could be written to from another VI. 3. This VI does not have a race condition. 4. There is nothing to control the execution order of the two local variables. 정답 보기는 아래 더보기 클릭 더보기 정답 : 4. There is nothing to control the e..
모든 프로그래밍 언어가 그렇듯 파이썬의 기본 데이터 타입 역시 ¹숫자형, ²문자열, ³불리언 3가지입니다. 이 밖에도 파이썬에는 리스트(list), 튜플(tuple), 집합(set), 딕셔너리(dict) 등의 타입들이 있으며 기본 데이터 타입 후 포스팅에서 자세히 다루어보도록 하겠습니다. 숫자형(Numeric)우리가 흔히 많이 사용하는 10진수 1, 2, 3, ..., 15, 16 등의 데이터 타입을 말합니다. 숫자형의 데이터 타입은 크게 정수형과 실수형으로 나뉘어지게 되는데요. 정수형은 소수점이 없는 타입, 실수형은 소수점 표현까지 하는 데이터 타입이라고 보시면 되겠습니다. 아래는 type()를 이용하여 변수의 정수형과 실수형 타입을 체크해본 예시 코드입니다. (정수형 : int, 실수형 :Float..
엑셀 파일 엑셀 파일 구성예제 실행시 사용하였던 엑셀 파일 데이터 및 시트 정보▪ 5행 5열 데이터셋 max_row, max_column 명령어를 이용한 행•열 사이즈 검색import openpyxlfrom openpyxl import load_workbook# You must change the physical path before running this script.currPath = "C:/Users/natio/OneDrive - 성균관대학교/99. Personal Blog/05. Python/05. OPENPYXL/02. Cell Example/"# # Load the excel filewb = openpyxl.load_workbook(filename=currPath+"Cell Example Fi..
시스템 개요 자동차 배터리와 관련된 BMS Simulator 프로그램 프로그램 ▪ Modbus 및 CAN 통신 인터페이스 ▪ 배터리 전압, 전류, 온도 값 측정 UI Design 정보 UI Gradients | Key Meh Gradient Style Color Information Sample Image Reference Video ※ 이 글이 도움이 되었다면 "🤍공감" 버튼을 클릭해주세요. 클릭 한번이 글 쓰는데 큰 힘이 됩니다. moonnote.tistory.com ※ 이 글이 도움이 되었다면 "👆🏻구독"과 "🤍공감" 버튼을 클릭해주세요. 클릭 한번이 글 쓰는데 큰 힘이 됩니다.
UI Coach.io Design에 자신이 없는 분들이나 빠르게 템플릿 같은 것들을 참고하고 싶으신 분들에게 유용한 사이트이다. UI Coach를 사용하면 프로젝트 아이디어, 컬러 팔레트, 글꼴 쌍 등을 쉽게 검색하고 연습할 수 있다. 사이트는 주소는 아래를 참고하도록하고 하나씩 살펴 보도록 하자. https://www.uicoach.io/ Become a better UI designer | UI Coach Become a better UI designer | Color palettes, Font Pairings, And Award Winning Design Inspirations | UI Coach www.uicoach.io 위의 링크로 사이트에 접속하면 나타나는 홈화면은 아래와 같다. 로그인 항목이..
Running this VI causes your computer to run out of memory. What is the most likely cause? 1. The loop time delay is too large 2. The DAQmx Read VI returned an error 3. The specified current range is too high 4. The array output tunnel on the While Loop has no bounds 정답 보기는 아래 더보기 클릭 더보기 정답 : 4. The array output tunnel on the While Loop has no bounds 위의 코드를 실행하였을 때 PC에서 메모리 부족 현상이 나타날 가능성이 있는 경우에..
엑셀 파일 엑셀 파일 구성예제 실행시 사용하였던 엑셀 파일 데이터 및 시트 정보▪ 5행 5열 데이터셋 Cell 값 읽기(2가지 방법 : ¹['Cell'].value, ²cell(row=x, column=y).value)import openpyxlfrom openpyxl import load_workbook# You must change the physical path before running this script.currPath = "C:/Users/natio/OneDrive - 성균관대학교/99. Personal Blog/05. Python/05. OPENPYXL/02. Cell Example/"# # Load the excel filewb = openpyxl.load_workbook(filename..
백분위수(qercentile)numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, method='linear', keepdims=False, *, interpolation=None) 지정된 축을 따라 데이터의 q번째 백분위수를 계산합니다. ▪Parameters ‣ a : 입력 배열, 평균 값을 연산할 입력 배열 ‣ q : 입력 배열, 백분위수 입력(0~100 범위) ‣ axis : 축 설정(선택 사항), 계산이 진행되는 축 설정 ‣ out : 출력(선택 사항), 기본값 = None으로 결과를 저장할 대체 출력 배열 ‣ overwrite_input : 입력 덮어쓰기(선택 사항), 기본값 = Fa..
If an error occurs in Startup.vi , which VI can pass the error code to the Shutdown case? (automatic error handling is disabled) 1. 2. 3. 4. 정답 보기는 아래 더보기 클릭 더보기 정답 : 4. (문제 속 이미지 참조) 이미지 속 Startup.vi에서 에러가 발생하였을 경우 "Shutdown" 케이스로 에러 코드를 전달하는 코드를 찾는 문제이다. 따라서, 에러 발생시 열거형 상수의 아이템이 "Shutdown"으로 지정되는 코드와 에러 정보가 다음 사이클로 전달되는지 2가지를 살펴보면 된다. 첫 번째로 Startup.vi에서 출력되는 에러 라인에 따라 Shutdown으로 전달되는 코드는 1, 2,..