Octave Atelier

코드와 해설을 함께 읽는 학습 문서

Code Detail

get_signal

Signal Processing 중심의 Octave 학습 예제

ex-recv/03/03_scy/get_signal.m

목록으로

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

카테고리

Submission Archive

submission

코드 길이

28

lines

작성자

-

날짜 정보 없음

패키지

none

pkg load

함수 시그니처

function [t, signal, fs] = get_signal(fs, duration, m)

전체 코드

28 lines

# m개의 주파수 성분을 포함한 신호 생성 함수
# 작성자 : 신찬영
# 작성날짜 : 25.04.07.

function [t, signal, fs] = get_signal(fs, duration, m)
%   Input :
%           fs       - 샘플링 주파수 (Hz)
%           duration - 신호 길이 (s)
%           m        - sin 함수 개수

%   Output :
%           Signal   - 중첩된 m개의 sin신호 / (1/fs : 1/fs : duration)
%           fs       - 샘플링 주파수 (Hz) / (-fs/2 : duration/fs : fs/2-duration/fs)
%           t        - 신호 길이 (s) / (1/fs : 1/fs : duration)


    t = 1/fs:1/fs:duration;  % 시간 벡터
    signal = zeros(size(t));  % 신호 초기화
    freqs = round(rand(1, m) * (fs/2));  % (0, fs/2) 사이에서 m개의 주파수

    for i = 1:m
        A = rand();  % 진폭 (0~1 사이 랜덤)
        phi = 2*pi*rand();  % 위상 (0~2pi 사이 랜덤)
        signal = signal + A * sin(2*pi*freqs(i)*t + phi); %   Output (1/fs : 1/fs : duration)
    end

end

코드 해설

목적

  • Signal Processing 중심의 Octave 학습 예제

입력

  • 파라미터: fs
  • 파라미터: duration
  • 파라미터: m

출력

  • 반환값: t
  • 반환값: signal
  • 반환값: fs

실행 흐름

  1. Signal - 중첩된 m개의 sin신호 / (1/fs : 1/fs : duration)

핵심 함수

  • rand
  • freqs
  • Output
  • round
  • sin
  • size
  • zeros

실습 과제

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

같은 카테고리 코드

이전 코드 calc_powersum_time 다음 코드 main_03_scy