Main Content

modulate

통신 시뮬레이션의 변조

설명

y = modulate(x,fc,fs)는 실수 메시지 신호 x를 반송 주파수 fc와 샘플 레이트 fs를 이용해 변조합니다. x가 행렬이면 변조된 신호가 각 열에 대해 개별적으로 계산되어 y의 대응 열에 저장됩니다.

[y,t] = modulate(x,fc,fs)는 내부 시간 벡터 t도 반환합니다.

예제

[___] = modulate(x,fc,fs,method)method로 지정된 변조 기법을 사용하여 실수 메시지 신호를 변조합니다. 이 입력값은 위에 열거된 출력 구문 중 하나와 함께 사용할 수 있습니다.

예제

[___] = modulate(x,fc,fs,method,opt)는 일부 변조 방법에 대해 opt에 지정된 추가 옵션을 사용합니다.

예제

모두 축소

200Hz 레이트로 1초 동안 샘플링한 10Hz 정현파 신호를 생성합니다. 이 정현파에 분산이 0.01인 백색 가우스 잡음을 포함시킵니다.

fs = 200;
t = 0:1/fs:1;
x = sin(2*pi*10*t) + randn(size(t))/10;

50Hz의 반송 주파수를 사용해 신호를 단측파대 진폭 변조합니다. 새 Welch 파워 스펙트럼 밀도 추정값을 계산하고 표시합니다.

y = modulate(x,50,fs,'amssb');

pwelch([x;y]',hamming(100),80,1024,fs,'centered')

Figure contains an axes object. The axes object with title Power Spectral Density, xlabel Frequency (Hz), ylabel Power/frequency (dB/Hz) contains 2 objects of type line.

1초 동안 레이트 200Hz로 샘플링된 두 정현파 신호(주파수 10Hz와 20Hz)를 생성합니다. 정현파에 분산이 0.01인 백색 가우스 잡음을 포함시킵니다.

fs = 200;
t = 0:1/fs:1;
i = sin(2*pi*10*t) + randn(size(t))/10;
q = sin(2*pi*20*t) + randn(size(t))/10;

반송 주파수 70Hz를 사용하여 신호 iq에서 직교 진폭 변조한 신호를 만듭니다. 원래 시퀀스와 변조된 시퀀스의 Welch 파워 스펙트럼 밀도 추정값을 계산합니다. 100개 샘플 중 80개 샘플이 중첩된 해밍 윈도우를 사용합니다. FFT 길이를 1024로 지정합니다.

y = modulate(i,70,fs,'qam',q);

pwelch([i;q;y]',hamming(100),80,1024,fs,'centered') 
legend('In-phase signal','Quadrature signal','Modulated signal')

Figure contains an axes object. The axes object with title Power Spectral Density, xlabel Frequency (Hz), ylabel Power/frequency (dB/Hz) contains 3 objects of type line. These objects represent In-phase signal, Quadrature signal, Modulated signal.

입력 인수

모두 축소

메시지 신호로, 실수형 벡터 또는 실수 행렬로 지정됩니다.

예: sin(2*pi*25*[0:(1/200):1])

메시지 신호를 변조하는 데 사용되는 반송 주파수로, 양의 실수형 스칼라로 지정됩니다.

샘플 레이트로, 양의 실수형 스칼라로 지정됩니다.

사용된 변조 방법으로, 다음 중 하나로 지정됩니다.

  • amdsb-sc 또는 am — 진폭 변조, 양측파대, 억압 반송파. x에 주파수가 fc인 정현파를 곱합니다.

    y = x.*cos(2*pi*fc*t)
    
  • amdsb-tc — 진폭 변조, 양측파대, 전송 반송파. x에서 스칼라 opt를 빼고 그 결과에 주파수가 fc인 정현파를 곱합니다.

    y = (x-opt).*cos(2*pi*fc*t)
    

    opt 파라미터를 지정하지 않으면 modulate는 메시지 신호 (x-opt)가 음수가 아니며 최솟값 0을 갖도록 min(min(x))의 디폴트 값을 사용합니다.

  • amssb — 진폭 변조, 단측파대. x에 주파수가 fc인 정현파를 곱하고 그 결과를 x의 힐베르트 변환에 주파수 fc의 위상 변위된 정현파를 곱한 값에 더합니다.

    y = x.*cos(2*pi*fc*t)+imag(hilbert(x)).*sin(2*pi*fc*t)
    

    이렇게 하면 상측파대가 사실상 제거됩니다.

  • fm — 주파수 변조. 메시지 신호 x에 따라 달라지는 순시 주파수를 갖는 정현파를 만듭니다.

    y = cos(2*pi*fc*t + opt*cumsum(x))

    cumsumx의 적분에 대한 사각 근삿값입니다. modulateopt를 주파수 변조의 상수로 사용합니다. opt 파라미터를 지정하지 않으면 modulateopt = (fc/fs)*2*pi/(max(max(x)))의 디폴트 값을 사용하며, 따라서 fc의 최대 주파수 편위는 fcHz가 됩니다.

  • pm — 위상 변조. 메시지 신호 x에 따라 위상이 달라지는 주파수 fc의 정현파를 만듭니다.

    y = cos(2*pi*fc*t + opt*x)

    modulateopt를 위상 변조 상수로 사용합니다. opt 파라미터를 지정하지 않으면 modulateopt = pi/(max(max(x)))의 디폴트 값을 사용하며, 따라서 최대 위상 편위는 π라디안이 됩니다.

  • pwm — 펄스 폭 변조. x의 펄스 폭에서 펄스 폭을 변조한 신호를 만듭니다. x의 요소는 한 주기에 대한 각 펄스의 비율을 지정하며, 0과 1 사이의 값이어야 합니다. 펄스는 각 주기의 시작 부분에서 시작하기 때문에 왼쪽으로 정렬됩니다. modulate(x,fc,fs,'pwm','centered')는 중심이 각 주기의 시작 부분에 맞춰진 펄스를 생성합니다. y의 길이는 length(x)*fs/fc입니다.

  • ppm — 펄스 위치 변조. x의 펄스 위치에서 펄스 위치를 변조한 신호를 만듭니다. x의 요소는 각 펄스의 왼쪽 경계를 한 주기에 대한 비율로 지정하며, 0과 1 사이의 값이어야 합니다. opt는 0과 1 사이의 스칼라로, 각 펄스의 길이를 한 주기에 대한 비율로 지정합니다. opt의 디폴트 값은 0.1입니다. y의 길이는 length(x)*fs/fc입니다.

  • qam— 직교 진폭 변조. 신호 xopt에서 직교 진폭을 변조한 신호를 만듭니다.

    y = x.*cos(2*pi*fc*t) + opt.*sin(2*pi*fc*t)

    입력 인수 optx와 크기가 동일해야 합니다.

선택적 입력값으로, 일부 방법에 대해 지정됩니다. opt를 사용하는 방법에 대한 자세한 내용은 method를 참조하십시오.

출력 인수

모두 축소

변조된 메시지 신호로, 실수형 벡터 또는 실수 행렬로 반환됩니다. 방법 pwmppm의 경우를 제외하고, yx와 크기가 동일합니다.

modulate가 계산에서 사용하는 내부 시간 배열로, 실수형 벡터로 지정됩니다.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

|