Simulink에서의 RDS/RBDS 및 RadioText Plus(RT+) FM 수신기
이 예제에서는 RDS 또는 RBDS 표준, 선택적으로 RadioText Plus(RT+) 표준을 사용하는 FM 무선국에서 프로그램 또는 노래 정보를 추출하는 방법을 보여줍니다. 사전에 캡처된 신호를 사용하거나, RTL-SDR 라디오, ADALM-PLUTO 라디오 또는 USRP™ 라디오를 사용하여 실시간으로 무선으로 신호를 수신할 수 있습니다.
필요한 하드웨어와 소프트웨어
기본적으로 이 예제는 파일에서 기록된 데이터를 사용하여 실행됩니다. 사용자가 228ksps의 필수 샘플 레이트를 지원하는 장치를 사용하여 신호를 무선으로 수신하는 방식을 선택할 수도 있습니다. 이를 위해서는 다음 중 하나가 필요합니다.
RTL-SDR 라디오 및 Communications Toolbox Support Package for RTL-SDR Radio.
Pluto 라디오 및 Communications Toolbox Support Package for Analog Devices® ADALM-PLUTO Radio.
USRP B2xx 시리즈 라디오 및 Communications Toolbox Support Package for USRP Radio. 지원되는 라디오에 대한 자세한 내용은 Supported Hardware and Required Software 항목을 참조하십시오.
USRP E3xx 시리즈 라디오 및 Wireless Testbench Support Package for NI USRP Radios. 지원되는 라디오에 대한 자세한 내용은 Supported Radio Devices (Wireless Testbench) 항목을 참조하십시오.
배경
RBDS와 RDS는 FM 라디오 신호에 추가 정보를 보완하는 방법을 규정하며 서로 매우 유사한 표준입니다. RBDS는 북미에서 사용되고, RDS는 원래 유럽에서 사용되었으며 점차 국제 표준으로 발전했습니다. RBDS와 RDS는 3개 계층으로 구성됩니다.
물리 계층(계층 1)
데이터 링크 계층(계층 2)
세션 및 표현 계층(계층 3)
이 다이어그램의 RBDSSimulinkExample 모델은 캡처된 파일로부터 또는 무선으로 FM 신호를 수신합니다. 모델은 오디오 신호를 재생하고 RBDS 정보를 표시합니다.

물리 계층(계층 1)
물리 계층 서브시스템은 파일에서 캡처된 신호나 라디오에서 실시간 신호를 수신하고 다음 단계를 수행합니다.

FM 복조: FM 신호가 복조되면 RDS/RBDS 신호는 57kHz +/- 2.4kHz 대역에 위치합니다. 한 가지 유념할 점은 RDS/RBDS 신호가 상대적으로 낮은 전력으로 송신되므로, 아래 그림에 나타난 것처럼 그 신호가 항상 FM 스펙트럼에 표시되지는 않습니다.

FM 신호에는 19kHz의 파일럿 톤이 포함되어 있으며, 이 파일럿 톤은 57kHz의 RDS/RBDS 신호와 38kHz의 스테레오 오디오에 코히어런스 복조를 수행하기 위한 위상 기준 및 주파수 기준으로 사용할 수 있습니다. 38kHz 및 57kHz의 파일럿 톤은 19kHz 파일럿 톤의 주파수를 각각 2배와 3배로 증가시켜서 생성할 수 있습니다[ 2 ].
RDS/RBDS 신호에 코히어런스 복조를 수행하기 위한 처리 단계는 다음과 같습니다.
대역통과 필터링: PHY 수신기가 파일럿 톤과 RDS/RBDS 신호를 분리하기 위해 19kHz와 57kHz에서 각각 대역통과 필터링을 수행합니다.
주파수 3배로 만들기: 19kHz 파일럿 톤의 복소 표현을 세제곱하여 해당 주파수를 3배 증가시켜서 57kHz 파일럿 톤을 얻습니다.
AM 복조: RDS 및 RBDS 심볼이 1187.5Hz 레이트에서 생성되고, 57kHz 반송파로 AM 변조됩니다. 주파수와 위상이 잠긴 57kHz 반송파로 57kHz RDS/RBDS 신호에 코히어런스 복조를 수행할 수 있습니다. 일반적으로 코히어런스 복조를 위해서는 19kHz 파일럿 톤의 주파수를 3배 증가시키는 정도로 충분합니다. 다음 그림에서는 19kHz 및 57kHz 파일럿 톤과 57kHz RDS/RBDS 신호 및 AM 복조된 기저대역 RDS/RBDS 신호를 보여줍니다.

동시에 몇몇 FM 기지국이 있으며, 이 기지국의 57kHz RDS/RBDS 신호는 19kHz 파일럿 톤과 해당 주파수를 3배 증가시킨 버전과 비교했을 때 시변 위상 오프셋을 보입니다. PHY 수신기에는 이러한 시변 위상 오프셋을 보정하기 위한 Costas 루프가 포함되어 있습니다.
Costas 루프: Costas 루프는 2번의 직교 AM 복조를 수행하는데, 한 번은 57kHz 사인파를 사용한 복조이고 나머지 한 번은 57kHz 코사인파를 사용한 복조입니다. 수신된 신호의 샘플링 레이트가 228kHz로 신중히 선택되고, 이는 57kHz 주기당 4개의 샘플을 제공합니다. 따라서 57kHz 파일럿 톤에 대한 하나의 샘플 지연을 통해 1/4 파장 위상 오프셋이 생성되므로, 사인파에서 코사인파를 생성할 수 있습니다. 사인파 복조된 신호는 코히어런스 복조 출력에 해당합니다. 코사인파 복조된 신호는 위상 오차 검출에 사용됩니다. 57kHz RDS/RBDS 신호에 사인파/코사인파를 곱한 값은 [ 1 ]의 섹션 1.7에 지정된 필터로 저역통과 필터링됩니다. 두 필터 출력값의 곱이 오차 신호입니다. 이 값이 클수록 코사인 기반 복조기와 더 유사하게 동작하도록 19kHz 파일럿 톤이 더 지연됩니다.

클록 추출: 양위상 심볼 디코딩을 수행하기 위해 RDS/RBDS 심볼 레이트 1187.5Hz와 일치하는 클록이 19kHz 파일럿 톤에서 추출됩니다. 참고로, 1187.5Hz x 16 = 19kHz입니다. 주파수 오프셋을 고려하기 위해 19kHz 파일럿 톤에서 클록을 추출할 때 주파수 분할이 사용됩니다. 주파수 분할 작업에서 여러 개의 올바른 응답을 제공하므로, 기저대역 RDS/RBDS 신호가 원하는 출력을 결정하는 데 도움이 되는 훈련 데이터 역할을 합니다.
양위상 심볼 디코더: RDS 및 RBDS는 일반적으로 맨체스터 코딩(Manchester coding)으로 알려진, 양위상 수준(bi-
-L) 코딩을 사용합니다. 각 클록 주기에서 RDS/RBDS 심볼은 반대되는 두 진폭 값을 취하는데, 양수 다음에 음수가 오거나 음수 다음에 양수가 오는 형태입니다. 양위상 심볼 디코더가 두 번째 진폭 수준을 반전하여, 각 심볼이 전체 클록 주기에서 동일한 진폭 수준을 갖도록 합니다. 클록 전체에 적용되는 새 진폭 수준은 심볼의 비트 표현에 해당합니다. 다음 스크린샷은 [ 1 ]의 그림 2에 나와 있는 파형 1~6번에 해당합니다.

각 심볼의 비트 값을 얻기 위해, 각 클록 주기에 대해 파형이 적분되고 그 결과가 0(슬라이서)과 비교됩니다.

차분 디코딩: 마지막으로 송신기에서 차분 인코딩을 되돌리기 위해 비트가 차분 디코딩됩니다.
데이터 링크 계층(계층 2)
계층 2는 RBDSDataLinkDecoder System 블록을 사용하여 구현됩니다. 이 계층은 동기화 및 오류 정정을 담당합니다.
PHY 계층의 비트 출력은 26비트 블록 4개로 구성된 104비트 그룹으로 논리적으로 구성됩니다. 각 블록은 16비트 정보 워드와 10패리티 비트를 포함합니다([ 1 ]의 그림 8 참조). 고유한 10비트 오프셋 워드는 각 블록의 패리티 비트에 모듈로-2 덧셈 연산을 수행한 값입니다.
동기화: 처음에 블록과 그룹 경계가 104비트의 슬라이딩 윈도우를 사용하여 포괄적으로 구해집니다. 각 104비트 윈도우에 대해 각 26비트 블록의 마지막 10비트에서 4개의 오프셋 워드가 구해집니다.
RBDSErrorDetectionSystem 블록에서 검출된 비트 오류가 없으면 오프셋 워드가 식별됩니다. 오프셋 워드가 식별되면 그룹 수준의 동기화가 이루어지고 포괄적 슬라이딩 윈도우 처리가 중지됩니다. 그 후에 그다음의 104비트가 다음 그룹으로 처리됩니다.
이후 그룹이 비트 오류를 포함하고 예상된 위치에서 오프셋 워드를 식별할 수 없는 경우 동기화 손실이 발생할 수 있습니다. 이 경우 계층 2는 모든 비트 그룹에 대해 첫 번째 정보 워드(16비트)가 항상 동일하다는 사실을 활용하여 1비트 동기화 슬립 가능성을 먼저 검토합니다. 첫 번째 정보 워드가 1비트(왼쪽 또는 오른쪽 방향)만큼 벗어난 지점에서 발견되는 경우 동기화가 유지되고 그에 따라 그룹 경계가 조정됩니다. 25번의 그룹 수신에서 비트 오류가 지속되고 동시에 그러한 왼쪽 방향/오른쪽 방향의 1비트 시프트를 통해 동기화를 재설정할 수 없는 경우에는, 동기화가 손실되고 계층 2는 동기화를 위해 포괄적 슬라이딩 윈도우 기반의 탐색으로 재진입합니다.
오류 정정: RDS 및 RBDS 오류 정정 코드는 (341, 331)에서 축약된 (26, 16) 순환 코드입니다.
RBDSErrorCorrectionSystem 블록은 [ 1 ]의 Annex B에 설명된 시프트 레지스터 방식을 사용합니다.
세션 및 표현 계층(계층 3)
계층 2가 패리티/오프셋 비트를 제거하므로, 계층 3이 16비트 블록 4개로 구성된 64비트의 그룹을 수신합니다. 최대 32개의 서로 다른 그룹 유형이 있으며, 각 유형은 0에서 15 사이의 숫자와 문자 'A' 또는 'B'(예: 0B, 2A, 3A)로 레이블이 지정됩니다. 각 그룹의 형식은 고정할 수 있으며, 해당 그룹이 개방형 데이터 애플리케이션(ODA, [ 3 ]의 목록 참조)에 할당된 경우 추상 형식도 가능합니다.
계층 3은 RBDSSessionDecoder System 블록을 사용하여 구현됩니다. 이 블록은 0A, 0B, 2A, 2B, 3A, 4A, 10A의 고정 형식 그룹 유형에 대한 디코딩을 지원합니다.
0A 및 0B는 8자 문자열을 전달하고, 일반적으로 텍스트가 스크롤(scrolling-text)되면서 표시됩니다.
2A와 2B는 이보다 더 긴 64자 또는 32자 문자열을 전달합니다.
3A는 ODA를 등록하고, 추상 형식의 전용 그룹 유형을 지정합니다.
4A는 시스템 시간을 전달합니다.
그 외에 10A는 'Sports' 프로그램 유형에 대해 'Football' 같은 프로그램 유형을 분류합니다.
ODA에 대해 RDS/RBDS 수신기는 RadioText Plus(RT+) 디코딩을 지원합니다[ 4 ]. 이 ODA는 그룹 유형 2A 및 2B의 32자 또는 64자의 긴 문자열을 두 가지 특정 콘텐츠 유형(예: 아티스트, 노래)으로 세분화할 수 있습니다.
결과 보기
다음 스크린샷은 처리된 RDS/RBDS 데이터에 대한 그래픽 표시입니다.

Basic RDS/RBDS information:
첫 번째 필드는 모든 그룹 유형의 두 번째 정보 워드로 전달되는 프로그램 유형에 해당합니다. 10A 그룹 유형이 수신된 경우 첫 번째 필드는 Sports \ Football 같은 특성을 추가로 제공합니다.
두 번째 필드는 0A/0B 그룹에 의해 전달되는 8자 텍스트를 보여줍니다.
세 번째 필드는 2A/2B 그룹 유형에 의해 전달되는, 더 긴 32자/64자 텍스트를 보여줍니다.
RadioText Plus (RT+): RadioText Plus(RT+) ODA[ 4 ]에 11A 같은 특정 추상 형식 그룹 유형이 사용됨을 3A 그룹에서 나타내는 경우 이 섹션이 사용됩니다. 그런 다음 이 추상 그룹 유형이 수신되면 그룹 2A/2B에 의해 전달되는 32자/64자 텍스트가 두 개의 부분문자열로 분할됩니다. 또한 Artist, Song 같은 부분문자열의 특성을 나타내도록 두 레이블이 업데이트됩니다.
Group type receptions: 이 테이블은 기지국에서 어떤 그룹 유형이 어떤 주파수와 함께 수신되었는지를 보여주는 히스토그램 같은 역할을 합니다. 결과적으로, 사용자는 기록된 데이터에서 그래픽 뷰어에 나와 있지 않은 추가 정보를 확인해야 할 수 있습니다. 예를 들어 4A에 표시된 시스템 시간, 0A에 표시된 대체 주파수 등이 있습니다.
개방형 데이터 애플리케이션(ODA): 3A 그룹 유형이 수신된 경우 발견된 ODA 목록이 ODA 이름과 전용 그룹 유형으로 업데이트됩니다.
그 외에도 '파일에 데이터 기록' 체크박스를 활성화하여 모든 그룹 유형의 추가 필드를 기록할 수 있습니다.
정선된 참고 문헌
National Radio Systems Committee, United States RBDS standard, April 1998
Der, Lawrence. "Frequency Modulation (FM) Tutorial". Silicon Laboratories Inc.
National Radio Systems Committee, List of ODA Applications in RDS
RadioText Plus (RT+) Specification
Joseph P. Hoffbeck, "Teaching Communication Systems with Simulink® and the USRP", ASEE Annual Conference, San Antonio, TX, June 2012