IIR Filter Design procedure using bilinear transform
Step 1: Prewarp any critical frequency in the digital filter specs.
πœ”_π‘Ž=2/𝑇  tan⁑(πœ”_𝑑  𝑇/2)

Step 2: Find a suitable normalized prototype analogue LPF, H(s)  
e.g., for Butterworth     1st order: 𝐻(𝑠)=1/(𝑠+1)	    2nd order: 𝐻(𝑠)=1/(𝑠^2+√2 𝑠+1)

Step 3: Denormalization according to filter type
LPF: 𝑠=𝑠/πœ”_π‘Ž, HPF: 𝑠=πœ”_π‘Ž/𝑠, BPF: 𝑠=(𝑠^2+πœ”_π‘œ^2 )/π‘ π‘Š, BSF: 𝑠=π‘ π‘Š/(𝑠^2+πœ”_π‘œ^2)
where π‘Š=πœ”_2βˆ’πœ”_1,     πœ”_π‘œ^2=πœ”_2 πœ”_1

Step 4: Map from s-domain to z-domain
𝑠=2/𝑇  (π‘§βˆ’1)/(𝑧+1)

ref: https://www.youtube.com/watch?v=Eg93IqRG7QI&list=PLj6E8qlqmkFuUfwSfmEXgjeJI33ZxxmSd&index=31



For each C file
gcc XXXXX.c -o XXXXX



In addition, I tried to write my first makefile based on the rule in this video
https://www.youtube.com/watch?v=_r7i5X0rXJk
compile: type "make"
clean file: type "make clean"

in this makefile, "main.c" is the same as "IIRfilter_way2_floatPoint.c"