Q&A 게시판

cancel
Showing results for 
Search instead for 
Did you mean: 
Reply

USRP 수신 동기화 queue사용 방법

Solved!
Go to solution
Highlighted

 

안녕하세요. 랩뷰 NXG와 USRP-2922 장비를 이용하여 802.11 시리즈를 구현하고 있는 학생입니다.

 

수신단 USRP 에서 받는 신호들은 먼저 queue에 계속 저장되고, 신호처리를 위해 정해진 샘플의 개수만큼 queue에서 꺼내와서 동기를 맞출려고 합니다.

 

예를들어, 프레임 사이즈가 8320일 때 queue에서 8320개의 데이터를 얻어오고 이 데이터에서 동기가 300번째에서 맞는다면

 

queue에서 얻어온 데이터 중 인덱스 0~300 데이터는 버리고, 인덱스 300부터 8320까지 데이터를 뽑고 또 한번 queue에서 나머지 뒤 300개 데이터를 가져와서 완전한 한 프레임 (8320개)의 데이터를 쌓고싶은데 이런식으로 queue를 사용하는 방법을 잘 모르겠습니다.

 

계속 queue는 고정된 데이터 개수(8320개)만 가져오게되서 또 한번 queue에서 8320개의 데이터를 가져오면 추가적으로 짤린 300개의 데이터를 가져올수있지만 그렇게 되면 나머지 8020개의 샘플이 버려지게 되서 문제가 발생합니다.

 

혹시, 원하는 수만큼 유동적으로 queue에서 데이터를 얻어오는 방법이 있을까요?? 

0 Kudos
Message 1 of 4
(273 Views)

안녕하세요. 

시프트레지스터를 이용하면 쉽게 구현 가능할 것 같습니다.

1. Queue에서 데이터를 꺼냅니다.

2. 배열로부터 삭제 함수를 사용해서 삭제된 배열과 남은 배열 두 개로 분리합니다.(A : 동기신호 이전 값 B: 동기신호 이후 값)

3. 분리 된 두 배열 중 B는 시프트 레지스터에 저장합니다.

4. 이전 루프에서 저장된 B와 현재 루프의 A를 이어붙여 출력합니다.

 

0 Kudos
Message 2 of 4
(241 Views)
Solution
Accepted by topic author s_han
03-23-2019 04:31 AM

안녕하세요.

배열 함수 몇가지와 시프트레지스터를 활용하면 간단히 해결될 것 같습니다.

NXG는 아니지만 첨부된 파일을 참고하시면 될것같습니다.

0 Kudos
Message 3 of 4
(241 Views)

감사합니다!

0 Kudos
Message 4 of 4
(216 Views)