TV나 FM 라디오에서 듣던 녀석인데

헤테로다인 방식으로 만든 수신기를 슈퍼 헤테로다인이라고 하는 것 같긴한데..

간단하게 요약하자면 맥놀이(beat)를 이용하여 주파수 mix를 하면 낮은 주파수가 나오는데(IF)

이걸 이용해서 주파수를 낮추고 필터도 쉽게 만들고 약한 신호를 더 효율적으로 빼낼수 있게 되는 듯

 

 

FM 수신 주파수, 가령 93.1MHz는 1초에 9천3백1십만번 공중에서 재주넘기를 하면서 전파된다. 이 주파수를 수신하면 내부에서 10.7MHz의 진동을 빼 내기 위해 특정주파수를 만들게 된다. (93.1- X = 10.7)

이 방식은 슈퍼 헤테로다인 방식이라고 하는데 여기에서 음악signal만을 뽑아내는 재주를 피운다. 뽑아진 음악signal는 mono signal처럼 보인다. 하지만 내부를 살펴보면 19KHz의 주파수가 보이게 된다

[링크 : https://www.enjoyaudio.com/zbxe/index.php?mid=tunerbuffs&document_srl=4793789]

 

어.. Wavelength modulation 에서

f1 - f2, f1 + f2 주파수가 나오는걸 봤는데.. 이게 헤테로다인인가? 호모다인 이야기도 나왔던게 얼핏 기억나는데..

 예를 들어 8 kHz 신호에 6 kHz 신호를 섞으면 이 둘의 합인 14 kHz 와 차인 2 kHz 의 신호가 생긴다. 이런 식으로 주파수를 높이거나(스텝 업) 낮추는(스텝 다운) 데 응용될 수 있다.

[링크 : https://namu.wiki/w/헤테로다인]

 

맥놀이(beat)

[링크 : https://namu.wiki/w/맥놀이]

[링크 : https://www.scienceall.com/맥놀이beat-2/]

 

수신한 전파의 주파수와 수신기 내에서 발생시킨 제2의 주파수를 혼합, 주파수가 낮은 제3의 주파수를 합성하는 검파방법. 이 방식을 이용하는 수신기가 슈퍼헤테로다인 수신기이다.

[링크 : https://www.scienceall.com/헤테로다인검파heterodyne-detection/]

 

 

 

[링크 : https://os.mbed.com/users/edodm85/notebook/radio-fm-tea5767/]

'이론 관련 > 전기 전자' 카테고리의 다른 글

이동평균  (0) 2023.01.17
TVS 다이오드  (0) 2022.08.18
ramp wave = sawtooth wave  (0) 2022.08.03
PID 제어... 2?  (0) 2022.06.20
12V 에서 저항으로 5V 만들...기?  (0) 2022.06.16
Posted by 구차니
Programming/web 관련2022. 8. 8. 17:26

귀찮아서 html 대충 만들다 보니

처음 부분에 <!DOCTYPE html>을 뺴먹었더니

크롬 개발자 도구에 아래와 같은 issue가 발생해서 클릭해보니.. 이상한게 보인다.

 

[링크 : https://web.dev/doctype/?utm_source=devtools]

 

굳이 해석(?)하자면

html5, css 표준 제정 이전 레거시 브라우저  호환성 지원? 이라고 보면 되려나?

[링크 : https://a-tothe-z.tistory.com/4]

[링크 : https://developer.mozilla.org/en-US/docs/Web/HTML/Quirks_Mode_and_Standards_Mode]

[링크 : https://aboooks.tistory.com/169]

[링크 : https://en.wikipedia.org/wiki/Quirks_mode]

'Programming > web 관련' 카테고리의 다른 글

chatGPT님 가라사대 Server-Sent Events (SSE)  (0) 2023.03.15
JWT 로그인 예제  (0) 2022.08.24
grid와 flex  (0) 2022.07.04
markdown 문법 - 체크박스  (0) 2020.10.15
크롬 확장도구 - json viewer  (0) 2019.08.07
Posted by 구차니

openGL 컨텍스트를 이용해서 빼내거나

mmap 으로 빼내라고 하는데 어떤 주소값을 복사해야 하는지 이야기가 없네.

 

[링크 : https://stackoverflow.com/questions/47428631/get-screenshot-of-egl-drm-kms-application]

 

+

22.08.09

void glReadPixels( GLint x,
  GLint y,
  GLsizei width,
  GLsizei height,
  GLenum format,
  GLenum type,
  void * data);
 
void glReadnPixels( GLint x,
  GLint y,
  GLsizei width,
  GLsizei height,
  GLenum format,
  GLenum type,
  GLsizei bufSize,
  void * data);

[링크 : https://registry.khronos.org/OpenGL-Refpages/es3/html/glReadPixels.xhtml]

 

[링크 : https://community.nxp.com/t5/i-MX-Processors/Rendering-with-OpenGL-ES-2-x-3-x-to-a-DMA-buffer-physical-memory/m-p/1229007]
  [링크 : https://community.nxp.com/t5/i-MX-Processors/Zero-copy-between-GPU-and-VPU/m-p/1044158]

[링크 : https://stackoverflow.com/questions/3191978/how-to-use-glut-opengl-to-render-to-a-file]

'프로그램 사용 > wayland' 카테고리의 다른 글

sway + wayvnc  (0) 2022.08.10
wayvnc 0.5 릴리즈  (0) 2022.08.09
weston redraw 취소하기  (0) 2022.07.07
weston drm debug  (0) 2022.06.29
libwayland debug 메시지  (0) 2022.06.27
Posted by 구차니

분해해도 딱히 냉납은 아닌것 같고

3.5파이 잭 꽂는 위치에 따라서 소리 잘나오기도 하는 것 같지만

잘 나오는 것도 들어보면 특정 음역이 안들리는 것 같은데

단순 잭 접촉문제가 아닌 것 같으니 정말 라디오로만 듣는 걸로 하고 포기!

 

전면부 녹색 PCB와 측면의 페놀 PCB 에 전원만 연결되는 것 같은데

한쪽은 PCB에 땜질되어 있고 반대편은 molex 커넥터라 빼면되는데..

문제는 땜질이 서로 반대방향이라 결국은 선이 묶인것을 풀고 분해!

 

AUDIO IN 이라고 되어있는 부분. 단면 기판이니 뒷면을 보면

 

음.. 냉납이나 크랙간건 아닌것 같고

게다가 분해가 쉽지 않아서 상단의 CD 플레이어 까지 전부 들어내는 쑈를 해야 해서 패스~!

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

연휴의 시작  (0) 2022.09.08
전자식 계량기 읽는 방법  (0) 2022.09.07
라디오 분해?  (0) 2022.08.06
계곡 발 담그기  (0) 2022.07.31
별이 쏟아지던 밤  (0) 2022.07.30
Posted by 구차니

이제야 내방 정리를 진행!

라디오 해두니 좋긴한대 94.5가 안나와서 아쉽다.

 

그나저나 외부 오디오 입력이 한번 잘나오다 안나와서

접점문제 같은데.. 분해해 봐야하나?

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

전자식 계량기 읽는 방법  (0) 2022.09.07
라디오 분해 시도 실패 -_-  (4) 2022.08.07
계곡 발 담그기  (0) 2022.07.31
별이 쏟아지던 밤  (0) 2022.07.30
장모님댁 도착  (0) 2022.07.29
Posted by 구차니

왼쪽은 golang의 touchscreen uinput 기능을 이용한 것, 오른쪽은 uinput 예제에서 설정한 것인데

UI_DEV_SETUP 대신 write로 쓰는게 좀.. 특이하다. 

그리고 write로 장치 이름을 쓰고 1116 바이트가 써졌다라..

ioctl(3, UI_SET_EVBIT, 0x1)             = 0
ioctl(3, UI_SET_KEYBIT, 0x110)          = 0
ioctl(3, UI_SET_KEYBIT, 0x111)          = 0
ioctl(3, UI_SET_KEYBIT, 0x14a)          = 0

ioctl(3, UI_SET_EVBIT, 0x3)             = 0
ioctl(3, UI_SET_ABSBIT, 0)              = 0
ioctl(3, UI_SET_ABSBIT, 0x1)            = 0

write(3, "testpad\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1116) = 1116
ioctl(3, UI_DEV_CREATE, 0)              = 0
ioctl(3, UI_SET_EVBIT, 0x1)             = 0
ioctl(3, UI_SET_KEYBIT, 0x110)          = 0
ioctl(3, UI_SET_KEYBIT, 0x111)          = 0
ioctl(3, UI_SET_KEYBIT, 0x14a)          = 0

ioctl(3, UI_SET_EVBIT, 0x3)             = 0
ioctl(3, UI_SET_ABSBIT, 0)              = 0
ioctl(3, UI_SET_ABSBIT, 0x1)            = 0

ioctl(3, UI_DEV_SETUP, 0x7ffc48a87ef0)  = 0
ioctl(3, UI_DEV_CREATE, 0)              = 0

 

struct uinput_user_dev   uinp;

            // create input device in input subsystem
            retcode = write(ufile, &uinp, sizeof(uinp));
            printf("First write returned %d.\n", retcode);

First write returned 1116.

[링크 : https://hybridego.net/1823]

 

sturct uinput_setup 은 92 바이트 길이

#define UINPUT_MAX_NAME_SIZE 80
struct uinput_setup {
struct input_id id;
char name[UINPUT_MAX_NAME_SIZE];
__u32 ff_effects_max;
};

[링크 : https://elixir.bootlin.com/linux/v4.7/source/include/uapi/linux/uinput.h#L66]

 

struct uinput_user_dev도 그리 길어 보이진 않는데..

#define UINPUT_MAX_NAME_SIZE 80
struct uinput_user_dev {
char name[UINPUT_MAX_NAME_SIZE];
struct input_id id;
__u32 ff_effects_max;
__s32 absmax[ABS_CNT];
__s32 absmin[ABS_CNT];
__s32 absfuzz[ABS_CNT];
__s32 absflat[ABS_CNT];
};

[링크 : https://elixir.bootlin.com/linux/v4.0/source/include/uapi/linux/uinput.h#L148]

 

64개까지 등록 가능하도록 되어있는건가?

#define ABS_MAX 0x3f
#define ABS_CNT (ABS_MAX+1)

[링크 : https://github.com/spotify/linux/blob/master/include/linux/input.h]

 

+

uinput old interface 로 분류된 구조체인듯..

Programs supportinf older versions of uinput interface need to fill a uinput_user_dev structure and write it to the uinput file descriptor to configure the new uinput device

[링크 : https://www.kernel.org/doc/html/v4.12/input/uinput.html]

Posted by 구차니

尹대통령 지지율 '24%'..긍정 평가 이유 1위 '모름·응답거절'

[링크 : https://news.v.daum.net/v/20220805110215751]

'개소리 왈왈 > 정치관련 신세한탄' 카테고리의 다른 글

한국 대통령 미국 의회에서 망언?  (0) 2022.09.22
어느쪽이 거짓말을 하는걸까  (4) 2022.08.29
참 투명하구만  (0) 2022.07.12
도어 스테핑?  (0) 2022.07.11
일본 아베 총 맞아  (0) 2022.07.08
Posted by 구차니

golang의 예제로는 원하는대로 절대 좌표 이동이 되는데..

C로 하는건 영 안되네 ㅠㅠ 무슨 차이냐!!!

 

[링크 : https://pkg.go.dev/github.com/bendahl/uinput#section-readme]

[링크 : https://github.com/torvalds/linux/blob/master/include/uapi/linux/uinput.h]

[링크 : https://github.com/bendahl/uinput/blob/master/touchpad.go]

Posted by 구차니

uinput에 대한 이벤트 로그를 dmesg를 통해 볼 수 있게 해주는 디버그용 모듈

 

$ sudo modprobe evbug

[링크 : https://www.linuxquestions.org/questions/debian-26/how-to-disable-the-evbug-module-478529/]

[링크 : https://copyprogramming.com/howto/simulating-absolute-mouse-movements-in-linux-using-uinput] << 링크 깨짐

'프로그램 사용 > uinput' 카테고리의 다른 글

struct uinput_setup 와 struct uinput_user_dev  (0) 2022.08.05
uinput 터치 스크린 예제  (0) 2022.08.05
uinput 장치 확인  (0) 2022.03.04
uinput absolute mouse  (0) 2022.02.23
xmodmap  (0) 2022.02.21
Posted by 구차니
프로그램 사용/vi2022. 8. 4. 11:25

ctrl-o, ctrl-i

 

오오 만세!

[링크 : https://kldp.org/node/98528]

'프로그램 사용 > vi' 카테고리의 다른 글

vi가 늦게 켜지는 이유  (0) 2022.07.28
vim 색상 바꾸기(colorscheme)  (0) 2021.01.20
vi 에서 매칭되는 갯수 확인하기  (0) 2019.12.18
vi gg=G와 set ts  (0) 2019.07.04
vi 검색 취소하기  (0) 2019.06.04
Posted by 구차니