과학적 오디오 처리, 3부 - Ubuntu에서 Octave 4.0을 사용하여 오디오 파일에 고급 수학적 처리 효과를 적용하는 방법


이 페이지에서

  1. 변조
    1. 진폭 변조
    2. 진폭 변조를 사용하는 이유는 무엇입니까?\n
    3. 트레몰로 효과\n
    4. 실제 오디오 파일의 트레몰로

    1. 정현파 주파수 변조의 효과\n

    디지털 오디오 처리 자습서 시리즈의 세 번째 부분에서는 신호 변조를 다루고 진폭 변조, 트레몰로 효과 및 주파수 변동을 적용하는 방법을 설명합니다.

    조정

    진폭 변조

    이름에서 알 수 있듯이 이 효과는 전송할 메시지에 따라 정현파의 진폭을 변경합니다. 사인파는 정보를 전달하기 때문에 반송파라고 합니다. 이러한 유형의 변조는 일부 상업 방송 및 전송 시민 대역(AM)에서 사용됩니다.

    진폭 변조를 사용하는 이유는 무엇입니까?

    변조 방사선.

    통신 채널이 여유 공간인 경우 신호를 방사하고 수신하기 위해 안테나가 필요합니다. 방사되는 신호의 파장과 같은 크기의 효율적인 전자기 방사 안테나가 필요합니다. 오디오 구성 요소를 포함한 많은 신호는 종종 100Hz 이하입니다. 이러한 신호의 경우 신호를 직접 방사하려면 약 300km 길이의 안테나를 구축해야 합니다. 신호 변조를 사용하여 고주파 반송파(예: 100MHz)에서 메시지를 인쇄하는 경우 안테나 길이(가로 길이)만 1미터 이상이어야 합니다.

    농도 변조 또는 다중 채널링.

    하나 이상의 신호가 단일 채널을 사용하는 경우 변조를 사용하여 서로 다른 신호를 서로 다른 스펙트럼 위치로 전송하여 수신기에서 원하는 신호를 선택할 수 있습니다. 집중("멀티플렉싱")을 사용하는 애플리케이션에는 원격 측정 데이터, 스테레오 FM 라디오 및 장거리 전화 통신이 포함됩니다.

    장비의 한계를 극복하기 위한 변조.

    필터 및 증폭기와 같은 신호 처리 장치의 성능과 이러한 장치를 구성할 수 있는 용이성은 주파수 영역에서 신호의 상황과 높은 주파수와 낮은 신호 간의 관계에 따라 달라집니다. 변조는 설계 요구 사항이 더 쉽게 충족되는 주파수 영역의 위치로 신호를 전송하는 데 사용할 수 있습니다. 변조는 또한 "광대역 신호"(최고 주파수와 최저 주파수 사이의 비율이 큰 신호)를 "협대역"의 부호로 변환하는 데 사용할 수 있습니다.

    오디오 효과

    많은 오디오 효과는 그러한 신호를 처리할 수 있는 눈에 띄고 용이하기 때문에 진폭 변조를 사용합니다. 트레몰로, 코러스, 플랜저 등과 같은 몇 가지 이름을 지정할 수 있습니다. 이 유틸리티는 이 자습서 시리즈에서 중점적으로 다루는 부분입니다.

    트레몰로 효과

    트레몰로 효과는 진폭 변조의 가장 간단한 응용 프로그램 중 하나입니다. 이 효과를 얻으려면 오디오 신호를 정현파 또는 기타 주기적인 신호로 변경(곱하기)해야 합니다.

    >> tremolo='tremolo.ogg';
    >> fs=44100;
    >> t=0:1/fs:10;
    >> wo=2*pi*440*t;
    >> wa=2*pi*1.2*t;
    >> audiowrite(tremolo, cos(wa).*cos(wo),fs);

    실제 오디오 파일의 트레몰로


    이제 실제 세계에서 트레몰로 효과를 보여드리겠습니다. 먼저 이전에 A라고 말하는 남성 목소리가 녹음한 파일을 사용합니다. 이 신호에 대한 플롯은 다음과 같습니다.

    >> [y,fs]=audioread('A.ogg');
    >> plot(y);
    >> t=0:1/fs:4.99999999;
    >> t=t(:);
    >> w=2*pi*1.5*t;
    >> q=cos(w);
    >> plot(q);
    >> tremolo='tremolo.ogg';
    >> audiowrite(tremolo, q.*y,fs);

    주파수 변동

    왜곡, 영화 및 게임의 음향 효과와 같은 매우 흥미로운 음악적 효과를 얻기 위해 주파수를 변경할 수 있습니다.

    정현파 주파수 변조의 효과

    다음 방정식에 따라 정현파 변조 주파수가 표시되는 코드입니다.

    Y=Ac*Cos(wo*Cos(wo/k))

    어디:

    Ac=진폭

    wo=기본 주파수

    k=스칼라 제수

    >> fm='fm.ogg';
    >> fs=44100;
    >> t=0:1/fs:10;
    >> w=2*pi*442*t;
    >> audiowrite(fm, cos(cos(w/1500).*w), fs);
    >> [y,fs]=audioread('fm.ogg');
    >> figure (); plot (y);