generate_sinusoid

Signal Processing + Performance 중심의 Octave 학습 예제

mylib/inst/generate_sinusoid.m

코드 인덱스로 돌아가기

카테고리

mylib Utilities

학습 소스 그룹

코드 길이

24

lines

작성자

-

날짜 정보 없음

패키지

none

pkg load 기준

함수 시그니처

function [tt, xx] = generate_sinusoid(frequency, phase, amplitude, fs, duration)

전체 코드

전체 코드를 복사해서 Octave에서 바로 실행할 수 있습니다.

function [tt, xx] = generate_sinusoid(frequency, phase, amplitude, fs, duration)
    # input:
    #   frequency: 1D array component frequency [Hz]
    #   phase    : 1D array component phase     [rad]
    #   amplitude: 1D array component amplitude []
    #   fs       : sampling frequency  [Hz]
    #   duration : recording duration  [sec]
    # output:
    #   tt: 1D array time vector [sec]
    #   xx: 1D array sinusoid signal

    % Time Axis
    dt = 1 / fs;
    nn = floor(duration / dt);
    tt = 0: dt: dt * (nn - 1);
    # tt = tt(:);

    # Sinusoid Signal Generation (Addition of each frequency component)
    xx = zeros(size(tt));
    for i = 1:length(frequency)
        ss = amplitude(i) * sin(2 * pi * frequency(i) * tt + phase(i));
        xx = xx + ss;
    end
end

코드 해설

목적

Signal Processing + Performance 중심의 Octave 학습 예제

입력

  • 파라미터: frequency
  • 파라미터: phase
  • 파라미터: amplitude
  • 파라미터: fs
  • 파라미터: duration

출력

  • 반환값: tt
  • 반환값: xx

실행 흐름

  1. 코드 상단부터 순차 실행

핵심 함수/주제

amplitudefloorfrequencyGenerationlengthphasesinsize

실습 과제

  • 샘플링 주파수나 입력 주파수를 바꿔 스펙트럼 변화를 비교해보세요.
  • 핵심 함수 amplitude의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.

학습 팁

같은 카테고리의 다른 코드