main_02_scy

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

ex-recv/02/02_scy/main_02_scy.m

코드 인덱스로 돌아가기

카테고리

Submission Archive

학습 소스 그룹

코드 길이

101

lines

작성자

-

날짜 정보 없음

패키지

io, signal

pkg load 기준

전체 코드

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

# In house code 함수를 통한 mean, variance, standard deviation, rms 계산
# 작성자 : 신찬영
# 작성날짜 : 25.03.26.

clc
clear

pkg load io
pkg load signal


path = "google_data_2024.csv"; #작업파일 경로

# rawdata : (254,6) / 1행 : 라벨 / 4행 부터 필요 데이터
[date, close_price, high_price, low_price, open_price, volume, label] = loadcsv(path);

# save -7 google_data_2024.mat high_price low_price open_price volume label #load 한 데이터 중 사용하지 않는것 mat파일로 저장

# save("google_data_2024.mat", "close_price", "high_price", "low_price", "open_price", "volume", "label", "-v7")


# in house VS built in 비교 - 종가 기준

%mean 비교
mean_builtin = mean(close_price);
mean_inhouse = mean_(close_price);
printf("mean(built in) : %f\n", mean_builtin);
printf("mean(in house) : %f\n", mean_inhouse);

%variance 비교
var_builtin = var(close_price);
var_inhouse = var_(close_price);
printf("var(built in) : %f\n", var_builtin);
printf("var(in house) : %f\n", var_inhouse);

%standard deviation 비교
std_builtin = std(close_price);
std_inhouse = std_(close_price);
printf("std(built in) : %f\n", std_builtin);
printf("std(in house) : %f\n", std_inhouse);

%rms 비교
rms_builtin = rms(close_price);
rms_inhouse = rms_(close_price);
printf("rms(built in) : %f\n", rms_builtin);
printf("rms(in house) : %f\n", rms_inhouse);

mean_val = zeros(1, size(date,1)-29);

# 30일 동안 항목 비교
nn = size(date,1)-29;
for i = 1:nn; #데이터 상 첫 날부터 30일씩 묶기

    close_30d = close_price(i:i+29);

    mean_val(i) = mean_(close_30d); # OUT : (1,222)
    var_val(i) = var_(close_30d); # OUT : (1,222)
    std_val(i) = std_(close_30d); # OUT : (1,222)
    rms_val(i) = rms_(close_30d); # OUT : (1,222)

end

# 30일 동안의 결과 플로팅

xlim_val = [0 size(date,1)-29]; # x축 설정

figure(1)
subplot(2,2,1) # mean plot
hold on
plot(mean_val)
grid on
hold off
xlim(xlim_val);
title("mean")

subplot(2,2,2) # variance plot
hold on
plot(var_val)
grid on
hold off
xlim(xlim_val);
title("variance")

subplot(2,2,3) # standard deviation plot
hold on
plot(std_val)
grid on
hold off
xlim(xlim_val);
title("standard deviation")

subplot(2,2,4) # rms plot
hold on
plot(rms_val)
grid on
hold off
xlim(xlim_val);
title("rms")

코드 해설

목적

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

입력

  • 스크립트 상단에서 정의한 파라미터/입력 데이터를 사용합니다.

출력

  • 저장 파일: google_data_2024.mat
  • 그래프/figure 출력
  • 콘솔 텍스트 출력

실행 흐름

  1. 30일 동안의 결과 플로팅

핵심 함수/주제

printfplotsubplottitlexlimmeanrmssize

실습 과제

  • 샘플링 주파수나 입력 주파수를 바꿔 스펙트럼 변화를 비교해보세요.
  • 같은 연산을 내장 함수와 사용자 함수 두 방식으로 계산해 오차를 비교해보세요.
  • 질량/감쇠/강성 또는 전달함수 계수를 바꿔 응답 변화를 확인해보세요.

학습 팁

  • 그래프 비교 시 축 범위(XLim/YLim)와 단위를 먼저 고정하면 해석 오류를 줄일 수 있습니다.
  • 입력 파일 경로가 현재 작업 디렉터리 기준인지 먼저 확인하세요.

같은 카테고리의 다른 코드