주요 콘텐츠

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

R2025a 이후

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

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

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

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

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

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

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

  • USRP™ N2xx 시리즈 또는 B2xx 시리즈 라디오 및 Communications Toolbox Support Package for USRP Radio. 자세한 내용은 USRP 라디오Supported Hardware and Required Software 항목을 참조하십시오.

  • 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();

Screenshot of the SDR Receiver app window.

SDR 구성하기

SDR 선택하기

SDR Type: SDR 유형을 선택합니다. USRP, RTL-SDR 또는 PLUTO를 선택할 수 있습니다. SDR Type을 변경할 때마다 앱은 사용 가능한 SDR 목록을 새로 고칩니다.

SDR Name: 드롭다운 목록에서 SDR 플랫폼을 선택합니다.

SDR Address: 드롭다운 목록에서 필요한 라디오의 SDR 주소를 선택합니다.

Refresh SDR List: 목록에서 라디오를 확인할 수 없는 경우 Refresh SDR List를 클릭합니다.

신호 파라미터 구성하기

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

  • USRP 라디오의 경우 Center Frequency의 유효한 범위는 RF 도터 카드에 따라 다릅니다.

  • 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 범위는 [1]을 참조하십시오.

Rx Gain (dB): SDR 수신기 이득(단위: dB)을 지정합니다. Rx Gain 값의 유효 범위는 다음 고려 사항에 따라 SDR마다 다릅니다.

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

  • PLUTO 라디오의 경우 Rx Gain 범위는 -4dB~71dB입니다.

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

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

  • USRP 라디오의 경우 Sample Rate는 마스터 클록 속도(MCR) 및 데시메이션 인자에 따라 달라집니다. 자세한 내용은 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 Sizecomm.SDRuReceiverSamplesPerFrame 속성과 동일한 값입니다. 자세한 내용은 comm.SDRuReceiver 항목을 참조하십시오.

  • PLUTO 라디오의 경우 Frame Sizecomm.SDRRxPlutoSamplesPerFrame 속성과 동일한 값입니다. Frame Size를 2에서 16,777,216 사이의 양의 짝수 정수로 지정하십시오.

  • RTL-SDR의 경우 Frame Sizecomm.SDRRTLReceiverSamplesPerFrame 속성과 동일한 값입니다. 자세한 내용은 comm.SDRRTLReceiver 항목을 참조하십시오.

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

신호 수신하기

Start/Pause: 신호를 수신하려면 START를 클릭합니다. 신호 수신을 일시 중지하려면 PAUSE를 클릭합니다. 수신이 시작되면 다음과 같이 진행됩니다.

  • Select SDR이 비활성화됩니다.

  • 앱에 수신 상태가 Receiving [Total Overruns = <Count of overruns>]로 표시됩니다. 수신이 시작되기 전에 오버런 횟수는 0으로 초기화됩니다.

RF 보정 적용하기

무선 주파수(RF) 통신 시스템에서는 정확한 신호 송신 및 수신을 보장하기 위해 RF 보정(예: 위상 오프셋 및 주파수 오프셋)이 필수적입니다. 위상 오프셋은 수신된 신호와 기준 신호 간의 위상 차이를 나타내며, 이는 전송된 데이터의 무결성에 영향을 줄 수 있습니다. 주파수 오프셋은 예상 반송 주파수와 실제 수신된 주파수 간의 차이를 나타내며, 이는 잠재적으로 정렬 불량 및 신호 품질 저하로 이어질 수 있습니다. 이러한 오프셋을 보정하는 것은 무선 통신 시스템에서 최적의 성능과 신뢰성을 유지하는 데 중요합니다.

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

수신된 신호 시각화하기

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

IQ Plot: 수신 신호의 실수부와 허수부를 플로팅합니다. 여기서 X-axisSamples이고 Y-axisAmplitude입니다.

Power Spectrum Plot: 수신된 신호의 파워 스펙트럼을 플로팅합니다. 이 앱은 SpectrumAnalyzer 앱을 사용하여 이러한 플롯을 생성합니다. 플롯에서 X-axisFrequency(단위: Hz)이고 Y-axisdBFS(전체 스케일에 상대적인 데시벨)입니다. 자세한 내용은 spectrumAnalyzer 항목을 참조하십시오.

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

수신 중지하기

Stop: 시뮬레이션을 중지하려면 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 스크립트로 내보내기

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

앱 닫기

창을 닫거나 다음을 사용하여 열려 있는 SDR Receiver 앱을 닫습니다.

app.delete();

결론 및 심층 탐구

이 예제에서는 SDR을 조정하고 필요에 따라 위상 오프셋 및 주파수 오프셋을 추정합니다. SDR에 대한 자세한 내용은 다음 예제를 참조하십시오.

  • 소프트웨어 정의 라디오를 사용하는 QPSK 송신기.

  • 소프트웨어 정의 라디오를 사용하는 QPSK 수신기.

  • 신호의 스펙트럼 분석.

  • FM 방송 수신기.

참고 문헌

[1] SDR (Software Defined Radio)

헬퍼 함수

  • SDRReceiver.m

  • helperUISDRRxWidgets.m

  • helperUISDRRxController.m