Warning, /education/labplot/tests/analysis/fourier/data/Butterworth.m is written in an unsupported language. File is not indexed.

0001 % This script is intended to create the reference values for the filter tests
0002 
0003 clc; clear; close all;
0004 # pkg install "https://downloads.sourceforge.net/project/octave/Octave%20Forge%20Packages/Individual%20Package%20Releases/control-3.4.0.tar.gz"
0005 # pkg install "https://downloads.sourceforge.net/project/octave/Octave%20Forge%20Packages/Individual%20Package%20Releases/signal-1.4.3.tar.gz"
0006 
0007 pkg load signal
0008 
0009 fs = 10000; % [Hz] Sample frequency
0010 fc = 100; % [Hz] cut off frequency
0011 fsignal = 100; % [Hz] Signal frequency
0012 x = 0 : 1/fs : 1/fsignal * 10; % 10 periods
0013 y = sin(x * 2*pi * fsignal);
0014 
0015 [b, a] = butter(1,fc/(fs/2), "low");
0016 filtered_data = filter(b,a,y);
0017 csvwrite("butterworth.csv", [x; y; filtered_data]);
0018 
0019 % plotting
0020 freqz(b,a,[],fs)
0021 
0022 figure();
0023 hold on;
0024 plot(x, y,'DisplayName','original');
0025 plot(x, filtered_data,'DisplayName','filtered');
0026 legend();