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를 참조하십시오.

데이터형: single | double | char | string
복소수 지원 여부:

출력 인수

모두 축소

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

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

확장 기능

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

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

|