get_signal
Signal Processing 중심의 Octave 학습 예제
ex-recv/03/03_scy/get_signal.m
함수 시그니처
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
실행 흐름
- Signal - 중첩된 m개의 sin신호 / (1/fs : 1/fs : duration)
핵심 함수/주제
randfreqsOutputroundsinsizezeros
실습 과제
- 샘플링 주파수나 입력 주파수를 바꿔 스펙트럼 변화를 비교해보세요.
- 핵심 함수 rand의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.
학습 팁
같은 카테고리의 다른 코드
- 수치미분
ex-recv/01/01-CJW-20250321/수치미분.m - main_cjw
ex-recv/01/01-CJW-20250321/main_cjw.m - main-my_diff
ex-recv/01/01-JKH-20250319/main-my_diff.m - hw_1_kim-gpt
ex-recv/01/01-KSG-20250318/hw_1_kim-gpt.m - hw_1_kim
ex-recv/01/01-KSG-20250318/hw_1_kim.m - [Octave] HW#1
ex-recv/01/01-LSH-20250319/[Octave] HW#1.m - Octave_Moon_250319
ex-recv/01/01-MJY-20250319/Octave_Moon_250319.m - Octave01_Park,jm_250319
ex-recv/01/01-PJM-20250319/Octave01_Park,jm_250319.m - [Octave]250318_RYU_poly,dff
ex-recv/01/01-RJW-20250321/[Octave]250318_RYU_poly,dff.m - 과제1_신찬영연구원
ex-recv/01/01-SCY-20250319/과제1_신찬영연구원.m