Discrete Filter Simulink

การออกแบบ filter แบบดิจิตอลใน simulink

เลือกความถี่ fc 15 Hz  ทดสอบโดยการผสมความถี่ ทำการจำลองสัญญาณความถี่หลักกับสัญญาณรบกวน เก็บค่าในตัวแปร x รูปแบบ array เก็บค่า 1 วินาที สุ่มทุกๆ 1ms 


หลังจากนั้นมาหา สัญญาณรบกวน โปรแกรมนี้ใช้หาค่าสัญญาณรบกวนของ system plant ในระบบจากการเก็บค่าจาก adc มาได้ 


m file

m=length(x);
n=pow2(nextpow2(m));
y=fft(x,n);
power=y.*conj(y)/n;
fs=1000;
f=(0:n-1)*(fs/n);
plot(f,power)


ทำการคำนวนและหา transfer function 


tau = 1/2*pi*fc

fc = 15Hz

tau = 1/2*pi*15 = 0.0106

>> sys = tf([1],[0.0106 1]);
>> sys

Transfer function:
     1
------------
0.0106 s + 1

ทำการแปลง c2d sampling 200Hz

>> c2d(sys,0.005)

Transfer function:
  0.3761
----------
z - 0.6239

นำไปใช้งานกับ matlab simulink dsPIC โดยใช้กับ discrete transfer function


ที่สำคัญของ simulink กับการรับส่งค่าระหว่างบล๊อกของ microcontroller  ก็คือการ convert data type 





Comments