การออกแบบ 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
เลือกความถี่ 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
Comments