get_signal

Signal Processing 중심의 Octave 학습 예제

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

코드 인덱스로 돌아가기

카테고리

Submission Archive

학습 소스 그룹

코드 길이

28

lines

작성자

-

날짜 정보 없음

패키지

none

pkg load 기준

함수 시그니처

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

전체 코드

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

# 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)

핵심 함수/주제

randfreqsOutputroundsinsizezeros

실습 과제

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

학습 팁

같은 카테고리의 다른 코드