주요 콘텐츠

소프트웨어 정의 라디오를 사용한 신호 수신

R2025a 이후

이 예제에서는 SDR Receiver 앱을 사용하여 신호를 수신하도록 소프트웨어 정의 라디오(SDR)를 조정하는 방법을 보여줍니다. 이 예제에서는 다음을 수행합니다.

  1. 연속 신호 수신을 위해 SDR을 구성합니다.

  2. IQ 샘플, 파워 스펙트럼 및 성상도를 시각화합니다.

  3. RF 손상을 보정합니다.

  4. 앱 구성을 MATLAB™ 스크립트로 내보냅니다.

필요한 하드웨어와 소프트웨어

이 예제를 실행하려면 다음 라디오 중 하나와 해당 소프트웨어 지원 패키지가 필요합니다.

  • USRP™ N2xx 시리즈 또는 B2xx 시리즈 라디오 및 Communications Toolbox Support Package for USRP Radio. 자세한 내용은 USRP 라디오지원 하드웨어 및 필요한 소프트웨어 항목을 참조하십시오.

  • USRP™ N3xx 시리즈, X 시리즈 또는 E320 라디오 및 Wireless Testbench Support Package for NI USRP Radios. 자세한 내용은 Supported Radio Devices (Wireless Testbench)(Wireless Testbench) 항목을 참조하십시오.

  • ADALM-PLUTO 라디오 및 Communications Toolbox Support Package for Analog Devices® ADALM-PLUTO Radio. 자세한 내용은 ADALM-Pluto 라디오 항목을 참조하십시오.

  • RTL-SDR 라디오 및 Communications Toolbox™ Support Package for RTL-SDR Radio. 자세한 내용은 RTL-SDR 라디오 항목을 참조하십시오.

소개

SDR은 디지털 기능을 수행하기 위해 FPGA 또는 프로그래밍할 수 있는 시스템 온 칩(SoC)을 탑재한 구성 가능한 RF 프론트엔드로 구성된 무선 장치입니다. 상업적으로 사용되는 SDR은 FM, LTE, WLAN, 5G와 같은 무선 표준을 구현하기 위해 다양한 주파수에서 신호를 송신하고 수신합니다.

An SDR block which consists of an antenna, RF processing block, and digital processing block. The SDR block is connected to the host computer with MATLAB using an Ethernet cable or USB.

SDR을 사용할 때 일반적인 과제에는 올바른 이득을 설정하고 정확한 주파수 및 위상 오프셋 값을 추정하는 것이 포함됩니다. SDR Receiver 앱은 선택한 SDR의 이득을 조정할 수 있는 대화형 방식 인터페이스를 제공합니다. 또한 이 앱을 사용하면 신호 수신 중에 위상 오프셋, 조밀 주파수 오프셋, 성긴 주파수 오프셋도 조정할 수 있으며, 각 조정이 수신된 신호에 어떤 영향을 미치는지 확인할 수 있습니다.

아래 이미지는 SDR Receiver 앱에서 사용되는 워크플로를 보여줍니다.

SDR Receiver 앱 열기

SDR Receiver 앱을 열려면 아래에 나와 있는 명령을 실행합니다.

app = SDRReceiver();

신호 파라미터 구성하기

Center Frequency (Hz): Center Frequency를 음이 아닌 스칼라로 지정합니다. Center Frequency 값의 유효 범위는 선택한 SDR에 따라 다릅니다.

  • 아래 표에는 USRP™ 라디오의 Center Frequency 범위가 나와 있습니다. 지원되는 RF 도터보드가 있는 USRP 라디오의 경우, Center Frequency의 유효 범위는 RF 도터보드에 따라 다릅니다.

라디오

중심 주파수 범위

B 시리즈

[34e6, 6e9]

USRP N300, USRP N310

[10e6, 6.05e9]

USRP N320, USRP N321

[3e6, 6.1e9]

USRP X410

[1e6, 8e9]

USRP X300, USRP X310

[10e6, 6e9]

*이는 일반적인 범위이며, 도터보드에 따라 달라집니다.

N2xx 시리즈

[10e6, 6e9]

*이는 일반적인 범위이며, 도터보드에 따라 달라집니다.

중심 주파수의 범위에 대한 자세한 내용을 확인하려면 해당 수신기 System object의 info() 메서드를 사용하십시오.

  • PLUTO 라디오의 경우 Center Frequency의 유효한 조정 범위는 325MHz~3.8GHz입니다. Communications Toolbox Support Package for Analog Devices ADALM-Pluto Radio를 사용하면 AD9364 펌웨어를 사용하여 라디오가 동작하도록 구성함으로써 인증된 조정 범위 밖에서 PLUTO 라디오를 사용할 수 있습니다. Center Frequency 범위를 확장하려면 MATLAB 명령 프롬프트에 configurePlutoRadio('AD9364')를 입력하십시오.

  • RTL-SDR 라디오의 경우 Center Frequency 범위는 튜너 칩에 따라 다릅니다.

튜너

중심 주파수 범위

Elonics E4000

52~2200MHz이며, 1100MHz부터 1250MHz까지는 간격 존재(변동 가능)

Rafael Micro R820T

24~1766MHz

Rafael Micro R828D

24~1766MHz

Fitipower FC0013

22~1100MHz(FC0013B/C, FC0013G는 별도의 L-대역 입력이 있으며, 대부분의 스틱에서 연결되어 있지 않음)

Fitipower FC0012

22~948.6MHz

FCI FC2580

146~308MHz 및 438~924MHz(그 사이에 간격 존재)

자세한 내용은 [1]을 참조하십시오.

Rx Gain (dB): SDR 수신기 이득(단위: dB)을 지정합니다. Rx Gain 값의 유효 범위는 선택한 SDR에 따라 다릅니다.

  • USRP 라디오의 경우 Rx Gain의 유효 범위는 RF 도터보드에 따라 다릅니다. 유효한 이득 값을 얻으려면 comm.SDRuReceiverinfo() 메서드를 사용하십시오.

  • PLUTO 라디오의 경우 Rx Gain 범위는 중심 주파수에 따라 다릅니다.

중심 주파수 범위

이득(단위: dB)

70MHz~1300MHz

[-1,73]

1300MHz~4GHz

[-3,71]

4GHz~6GHz

[-10,62]

  • RTL-SDR의 경우 Rx Gain 값의 유효 범위는 튜너 칩에 따라 다릅니다. 유효한 이득 값을 얻으려면 comm.SDRRTLReceiverinfo() 메서드를 사용하십시오.

Sample Rate (Hz): 무선통신 프론트엔드의 기저대역 샘플 레이트(단위: Hz)를 양의 숫자형 스칼라로 지정합니다.

  • USRP 라디오의 경우 Sample Rate는 마스터 클록 속도(MCR) 및 데시메이션 인자에 따라 달라집니다.

SampleRate=MCRDecimationfactorHz

라디오

마스터 클록 속도(MCR)

[1, 1024] 범위의 지원되는 데시메이션 인자 값

B 시리즈

5e6~61.44e6 범위의 스칼라.

- [1, 3]

- 4에서 128 사이의 홀수 정수

- [4,256] 범위의 짝수 정수

- [256,512] 범위의 4의 정수 배수

N2xx 시리즈

100e6

- 2(TransportDataType 속성을 int8으로 설정한 경우)

- 4에서 128 사이의 홀수 정수

- [4,256] 범위의 짝수 정수

- [256,512] 범위의 4의 정수 배수

* 데시메이션 인자의 범위는 도터보드에 따라 달라집니다.

USRP N300

USRP N310

- 122.88MHz

- 125.00MHz

- 153.60MHz

- [1, 3]

- [4,256] 범위의 짝수 정수

- [256,512] 범위의 4의 정수 배수

- [512,1016] 범위의 8의 정수 배수

USRP N320

USRP N321

- 200.00MHz

- 245.76MHz

- 250.00MHz

- [1, 3]

- [4,256] 범위의 짝수 정수

- [256,512] 범위의 4의 정수 배수

- [512,1016] 범위의 8의 정수 배수

USRP X410

- 245.76MHz

- 250.00MHz

- [1, 3]

- [4,256] 범위의 짝수 정수

- [256,512] 범위의 4의 정수 배수

- [512,1016] 범위의 8의 정수 배수

USRP X300

USRP X310

- 184.32MHz

- 200.00MHz

- 1~128 범위의 정수

- 128~256 범위의 짝수 정수

- 256~512 범위의 4의 배수

- 512~1016 범위의 8의 배수

* 데시메이션 인자의 범위는 도터보드에 따라 달라집니다.

자세한 내용은 comm.SDRuReceiver 항목을 참조하십시오.

  • PLUTO 라디오의 경우, Sample Ratecomm.SDRRxPlutoBasebandSampleRate 속성과 동일한 값입니다. 범위는 초당 65105개~61.44e6개 샘플입니다.

  • RTL-SDR의 경우 Sample Rate의 유효 범위는 (225, 300]kHz 및 (900, 3200]kHz입니다. Sample Rate를 2560kHz보다 크게 설정하면 샘플이 삭제될 수 있습니다. 신뢰할 수 있는 최대 샘플 레이트에 대한 자세한 내용은 [1]을 참조하십시오.

Frame Size: 출력 신호의 프레임당 샘플 수로, 양의 정수로 지정합니다.

  • USRP 라디오의 경우 Frame Size는 1에서 256e6 사이의 양의 짝수 정수여야 합니다.

  • PLUTO 라디오의 경우 Frame Size는 2에서 16,777,216 사이의 양의 짝수 정수여야 합니다.

  • RTL-SDR 라디오의 경우 Frame Size는 1에서 375,000 사이의 양의 짝수 정수여야 합니다.

파라미터의 범위에 대한 자세한 내용을 확인하려면 해당 수신기 System object의 info() 메서드를 사용하십시오.

신호 수신하기

신호를 수신하려면 START를 클릭하고, 신호 수신을 일시 중지하려면 PAUSE를 클릭합니다. 신호 수신이 시작되면 Select SDR이 비활성화됩니다.

앱에 수신 상태가 Receiving.....으로 표시됩니다.

RF 보정 적용하기

RF 통신 시스템에서는 정확한 신호 송신 및 수신을 보장하기 위해 RF 보정(예: 주파수 오프셋 보정 및 위상 오프셋 보정)을 수행해야 합니다.

위상 오프셋은 수신된 신호와 기준 신호 간의 위상 차이를 나타내며, 이는 신호 무결성에 영향을 줍니다. 주파수 오프셋은 예상 반송 주파수와 실제 수신된 주파수 간의 차이를 나타내며, 이는 신호 정렬 불량 및 신호 품질 저하로 이어집니다.

SDR Receiver 앱을 사용하면 시뮬레이션 중에 Phase Offset (deg), Coarse Frequency (Hz), Fine Frequency (Hz)를 사용하여 대화형 방식으로 위상 오프셋 및 주파수 오프셋을 추정할 수 있습니다. 이러한 파라미터를 변경하여 Constellation 플롯에 어떤 영향을 미치는지 확인하십시오.

수신된 신호 시각화하기

다음 세 가지 플롯을 사용하여 수신 신호를 시각화할 수 있습니다.

IQ Plot: 수신 신호의 실수부와 허수부를 플로팅합니다. 여기서 X축은 Samples이고 Y축은 Amplitude입니다.

Power Spectrum Plot: 수신된 신호의 파워 스펙트럼을 플로팅합니다. 이 앱은 spectrumAnalyzer 객체를 사용하여 이러한 플롯을 생성합니다. 플롯에서 X축은 Frequency(단위: Hz)이고 Y축은 dBFS(전체 스케일에 상대적인 데시벨)입니다.

Constellation Plot: 수신된 신호의 성상도를 플로팅하고 위상 오프셋 및 주파수 오프셋을 추정합니다.

수신 중지하기

신호 수신을 중지하려면 STOP을 클릭합니다. 수신이 중지되면 앱에서 Select SDR 컨트롤이 활성화되므로 라디오를 변경할 수 있습니다.

When reception is complete, the app enables the SDR type, SDR name, SDR address drop-down options and Refresh SDR list button as shown on the left side. The right side of the image shows the deactivated Select SDR controls when the reception is in progress.

MATLAB 스크립트로 내보내기

현재 SDR Receiver 앱 구성을 위한 MATLAB 스크립트를 생성하려면 MATLAB 스크립트로 내보내기 버튼을 클릭합니다.

앱 닫기

SDR Receiver 앱을 닫으려면 아래에 나와 있는 명령을 실행합니다.

app.delete();

결론 및 심층 탐구

이 예제에서는 SDR을 조정하고 필요에 따라 위상 오프셋 및 주파수 오프셋을 추정합니다.

SDR 예제를 더 보려면 다음을 참조하십시오.

참고 문헌

[1] SDR (Software Defined Radio)

헬퍼 함수

  • SDRReceiver.m

  • helperUISDRRxWidgets.m

  • helperUISDRRxController.m