generate_sinusoid
Signal Processing + Performance 중심의 Octave 학습 예제
mylib/inst/generate_sinusoid.m
함수 시그니처
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
실행 흐름
- 코드 상단부터 순차 실행
핵심 함수/주제
amplitudefloorfrequencyGenerationlengthphasesinsize
실습 과제
- 샘플링 주파수나 입력 주파수를 바꿔 스펙트럼 변화를 비교해보세요.
- 핵심 함수 amplitude의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.
학습 팁
같은 카테고리의 다른 코드
- clamp
mylib/inst/clamp.m - decibell_overall
mylib/inst/decibell_overall.m - generate_impulse_force
mylib/inst/generate_impulse_force.m - load_struct_txt
mylib/inst/load_struct_txt.m - make_axes
mylib/inst/make_axes.m - my_diff
mylib/inst/my_diff.m - my_mean
mylib/inst/my_mean.m - my_rms
mylib/inst/my_rms.m - my_std
mylib/inst/my_std.m - my_sum
mylib/inst/my_sum.m