반응형

분류 전체보기 134

DMA의 개념과 FPGA에서 사용 예시

정의 :직접 메모리 접근(Direct Memory Access, DMA)은 특정 하드웨어 하위 시스템이 CPU와 독립적으로 메인 시스템 메모리에 접근할 수 있게 해주는 컴퓨터 시스템의 기능 효과 : 프로세서 붙은 주변장치의 데이터는 장치 컨트롤러에 의해 로컬 버퍼로 이동한다. 그러나 전송할 데이터가 많은 경우, 프로세서에 부담이 된다. 이러한 문제를 해결하기 위해 DMA를 이용한다. DMA가 데이터를 이동시키는 동안 CPU는 다른 작업을 수행 할 수 있다는 장점이 있다. CPU에서는 데이터 이동이 완료되었다는 단 한 번의 인터럽트만 받으면 된다. 예시 : 디스크 드라이브 컨트롤러, 그래픽 카드, 네트워크 카드, 사운드 카드를 포함한 많은 하드웨어 시스템이 DMA를 사용한다. DMA는 멀티 코어 프로세서의..

필터와 관련 된 용어의 이해 - window함수, pulse shaping filter, square root raised cosine

본 글은 https://learn.wirelesspi.com/ 의 SDR course의 Linear modulation 부분을 정리하고 내용을 추가하였다. 신호 처리 자료를 보다보면 필터 관련하여 여러가지 용어들이 언급된다. 저역 통과 필터, pusle shaping filter, raised cosine filter, window 함수, black man harris, sinc 함수 등등 많다. 이런 용어들이 한꺼번에 나오니 개념이 뒤죽 박죽이 되어 서로 어떠한 관계를 가지는지 파악하기 힘들어서, 이를 정리하고자 이 글을 작성하게 되었다. 특히 pulse shaping filter의 개념을 이해하는 것이 가장 어려웠던 것 같다. pulse shaping filter도 filter인 것 같은데... Lo..

Gnuradio 2023.04.16

FIR filter - Moving average filter

wireless pi의 sdr course, fir filter 강의 부분 중 moving average filter Analog device 사의 Moving average filter 문서 부분을 공부하고 정리한 내용이다. moving average filter는 말 그대로 입력 신호를 평균하여 신호를 출력하는 필터를 의미한다. moving average filter를 수식으로 표현하면 다음과 같다. 수식을 보면 곱셈수식이 없어서 컴퓨터 구현시 컴퓨터 자원이 상대적으로 덜 소요된다. CIC filter 설계시 자주 언급이 되는 filter이다. 하지만 다른 FIR 필터들과 비교하였을 때, 필터의 주파수 차단특성이 뛰어나지는 않다. moving average filter를 구현하면 다음과 같다. Mov..

Gnuradio 2023.04.09

FIR filter - window 함수 그리고 실제로 구현가능한 Low pass filter

gnuradio를 이용해 FIR(Finite Impulse Response) filter 형태의 Low pass filter 시뮬레이션을 하였다. wirelesspi sdr course 2장의 fir filter를 공부하고 정리한 내용이다. gnuradio의 lowpass filter의 설명문을 보면 다음과 같다. gnuradio에서 LPF 뿐만 아니라 HPF, BPF, BRF(Band Reject Filter)를 시뮬레이션 할 수 있다. 필터의 특성을 다음과 같이 확인 할 수 있다. 이상적인 Low pass filter의 주파수 응답은 다음 그림처럼 신호의 통과대역과 차단대역이 명확하게 구분되어야 할 것이다. 하지만 이러한 이상적인 Low pass filter의 시간응답은 무한대의 응답특성을 가지고 있..

Gnuradio 2023.04.09

timing error 디버그를 위한 Skew, slack에 대한 이해

FPGA 합성시 Timing error에 대한 내용을 분석해야할 필요가 있다. 이때 skew와 slack 용어에 대한 이해를 위해 정리하였다. A에서 출력한 데이터가 클럭 1주기 안에 B에 도착하면 된다. 예제의 경우 slack이 여유가 있기 때문에 data path delay가 더 길어도 된다. FPGA 합성 시 slack이 – 값이 되면, 경고 메시지가 뜬다.

Convolution 수식을 보는 2가지 관점

wirelesspi의 software defined radio 2강의 convolution 부분을 보던 중, 왜 convolution에 대한 이해가 쉽지 않을까에 대해 고민 하게 되었다. 그 이유는 컨벌루션을 바라보는 관점이 뒤섞여 있기 때문이라 생각하였다. 컨벌루션을 공부하다보면 다음과 같은 수식을 본다. 신호 s[n]을 크기가 다른 임펄스 신호들이 모인 것으로 표현할 수 있다. 신호 s[n]이 A라는 시스템을 통과하였다면 응답B를 어떻게 될까? 임펄스 응답 h[n]과 컨벌루션을 이용하여 응답B를 구할 수 있다. 임펄스 응답 h[n] = 임펄스 신호에 대한 A 시스템의 응답 신호 s[n]과 임펄스 응답 h[n]을 컨벌루션하면 응답 B를 구할 수 있다. 컨벌루션은 신호와 시스템에서 자주 언급되지만 그 수..

Gnuradio 2023.04.03

ADC의 출력 데이터라인과 출력 클럭의 PCB line 라우팅 조건

ADC와 FPGA를 PCB line으로 연결할 때 연결되는 pin이 Data 와 클럭이다. PCB line을 그릴 때 데이터 라인과 클럭라인의 길이를 얼마나 비슷하게 맞추어야 하는지 가늠이 안될 때는 ADC의 데이터 시트를 보면 알 수 있다. 예제는 다음과 같다. ADC의 클럭 입력 신호의 rising edge일 때, ADC Vin에 입력된 아날로그 신호가 ADC를 거쳐 이산화 된 디지털 신호로 나온다. D0~D15 데이터 pin에서는 이산디지털 데이터가 나오고 DCO 클럭 pin에서는 클럭이 출력된다. 입력 클럭 rising edge 기준으로 출력 데이터와 출력 클럭이 나오는 시간은 위에서 언급되어 있다. tpd : 입력 클럭 rising edge 으로 데이터 신호가 나오는데 걸리는 소요시간, 290p..

ADC 2023.03.31

TEME 좌표계와 ICRF 좌표계의 차이

TEME 좌표계와 ICRF 좌표계 모두 ECI 좌표계에 속한 좌표계이다. ECI 좌표계의 중심은 지구 내부의 중심이며, X,Y,Z축은 별의 위치와 비교했을 때 고정되어 있다. 따라서 지구의 회전과는 관련이 없는 좌표계이다. 그렇다면 TEME 좌표계와 ICRF 좌표계의 차이점은 무엇인가? TEME, ICRF 좌표계의 X축은 mean equinox이며 Z축은 지구의 자전축이다. 하지만 mean equinox와 지구 자천축은 시각에 따라 달라진다. ICRF 좌표계는 2000년도 1월 1일 0시의 mean equinox와 지구 자전축을 X축, Z축으로 보며, TEME 좌표계는 TLE에 적힌 시각의 mean equinox와 지구자전축을 X축, Z축으로 본다. 두 좌표계에 표현된 위치와 속도는 약간 차이를 가지게 ..

현상 2023.03.30

gnuradio - time shift effect

이산화된 디지털 신호를 시간영역에서 time shift하면 주파수영역에서는 어떤 일이 벌어질까? 신호A를 시간영역에서 shitft 하고, shift 된 신호를 B라고 하자. 신호 B를 주파수영역에서 표현하면 어떻게 되는가? 결론을 말하면 신호B를 주파수영역에 표현한 것 = 신호 A를 주파수 영역에서 표현된 신호에 복소수 사인파를 곱한 것 아날로그 신호의 퓨리에 변환으로 위 내용을 증명하면 다음과 같고, 추가로 cos 신호를 1/4초만큼(1Hz에서 위상을 pi/2만큼 이동) shift하면 주파수 영역에는 무슨 일이 일어나는지를 정리하였다. 위의 cos 신호를 1/4초만큼(1Hz에서 위상을 pi/2만큼 이동) shift하면 주파수 영역에는 무슨 일어 나는가 ? -> sin 신호를 주파수 영역에서 표현한 것이..

Gnuradio 2023.03.07