一種傳感器的信號分析和濾波器設計

%原始信號
%信號週期:T=10ms;f=100Hz
%干擾信號週期:Tn=0.25ms;fn=4KHz
%
%截止頻率Fc=8K
%分辨率:Fd=1Hz
%--------------------------------------
%採樣時間:Ts=1/Fd=1s
%採樣間隔:delta=1/(2*Fc)=6.25e-5(s)
%採樣數:N=2*Fc/Fd=16K
close all;
clear all;
clc;
delta=6.25e-5;
N=16000;
t=0:(delta):(1-(delta));
%原始信號生成
for Ti=0:1:99
    for i=0:1:8
        xIn(Ti*160+i+1)=3;
    end
    for i=9:1:17
        xIn(Ti*160+i+1)=0;
    end
    for i=18:1:79
        xIn(Ti*160+i+1)=1;
    end
    for i=80:1:159
        xIn(Ti*160+i+1)=0;
    end
end
figure;
plot(t(1:160),xIn(1:160),'b');
%原始信號頻譜分析
XIn=fft(xIn);
AmpIn = abs(XIn);
AmpIn = AmpIn*2/N;
AmpIn(1)=AmpIn(1)/2;
PhaseIn = angle(XIn);
figure;
subplot(2,1,1);
plot(AmpIn(1:(N/2)));
subplot(2,1,2);
plot(PhaseIn(1:(N/2)));
%----------------------------濾波器設計-----------------------------------
R=3600;
C=2.2e-7;
Tc=R*C;%截止頻率
filterInput = tf(1,[Tc,1]);%濾波器傳遞函數
[SigMid,Tr] = lsim(filterInput,xIn,t);%通過濾波器
%
Rmid=2000;
Cmid=2.2e-7;
filterMid= tf(1,[Rmid*Cmid,1]);
[SigOut,Tr] = lsim(filterMid,SigMid,t);%通過濾波器
figure;
plot(Tr(1:320),SigOut(1:320));
title('濾波器輸出');
%輸出信號分析
XOut=fft(SigOut);
AmpOut=abs(XOut)*2/N;
AmpOut(1)=AmpOut(1)/2;
PhaseOut = angle(XOut);
figure;
subplot(2,1,1);
plot(AmpOut(1:(N/2)));
subplot(2,1,2);
plot(PhaseOut(1:(N/2)));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章