問題描述
如何有效地提高傳感器的測試精度是行業的發展趨勢;近來,對傳感器進行實驗測試過程中發現結果存在明顯的工頻干擾,信號中夾雜有明顯噪音,具體頻率為50hz,因此,近來以解決實際問題為出發點,對相關的內容進行歸納匯總;目前,消除噪音,提高傳感器采集精度主要包含兩種手段:1、硬件:通過電阻電容及電感構成濾波電路,對外界干擾源進行屏蔽;2、算法:通過數字信號處理,構建IIR、FIR濾波器對噪聲信號進行濾除;具體內容如下所示~
圖a表述為信號采集系統實際測試結果,源信號中包含工頻干擾,即使傳感器未發生變形,輸出信號具有明顯的波動(幅度為0.6mv左右);圖b表述為局部放大示意圖,從圖中可以看出干擾源的頻率為50hz。
附錄:補充材料
附1、硬件如何實現信號濾波?
本部分從硬件的角度對信號濾波整體方案進行介紹,主要分為三方面內容:1、濾波器的種類以及相關電路,推導了二階低通、高通濾波器的傳遞函數(實際中應用最廣);2、帶通以及帶阻濾波器具體結構;3、帶通濾波器具體設計過程,分享了MATLAB程序;
圖a表述為無源一階低通濾波器基本結構;圖b表述為無源一階高通濾波器基本結構;圖c表述為壓控性二階有源低通濾波器基本結構(現實中應用較廣),第一階電容C直接與運算放大器輸出端連接,引入正反饋,能夠有效地減小信號干擾;圖d表述為有源二階高通濾波器基本結構;
附1:無源濾波器具有的優點為:電路簡單,可靠性高;相應的弊端為:信號經過濾波器后具有能量損失;具有明顯的負載效應;信號無放大作用等;附2:同相放大器具有輸入阻抗高,輸出阻抗低的特性,廣泛應用于前置放大級;附3:Rf電阻值不能大約2倍R1電阻值;
本部分對現實中應用最為廣泛的有源二階濾波器進行分析,其中,低通濾波器的傳遞函數為:
通帶增益為:
高通濾波器的傳遞函數為:
通帶增益為:
另一方面,帶通、帶阻濾波器可以通過基本的低通、高通濾波器串并聯組成,其基本結構為:
圖a表述為低通濾波和高通濾波器串并聯組成帶通、帶阻濾波器的基本過程;圖b表述為帶通濾波器基本結構;圖c表述為帶阻濾波器基本結構;
上圖表述基于MATLAB進行帶通濾波器設計的具體過程,程序源代碼如下所示,圖中三條曲線分別代表低通濾波器、高通濾波器以及串聯組成帶通濾波器的幅頻曲線,相關結果通過bode圖進行直觀展示,其中,縱坐標的單位為dB(20lg|G(jw)|),橫坐標采用對數坐標系;附1:20dB表示信號衰減一個數量級;附2:硬件電路設計過程中,相關電阻的大小通過下述程序確定;
clear all;clc %有源帶通濾波器 %LPF 傳遞函數計算 f0=35Hz C = 1uF,R = R=4.549kΩ c1 = 1e-6; r1 = 4549; %HPF 傳遞函數計算 f0=15Hz C = 1uF c2 = 1e-6; r2 = 10615; %q品質因子(品質因子和通帶增益具有一定關系) q=0.7 %LPF Avp1 = 3-(1/q); k1=(3-Avp1)/(c1*r1); k2 = 1/(c1*c1*r1*r1); k3 = Avp1/(c1*c1*r1*r1); num1=[k3]; %傳遞函數分子 den1=[1 k1 k2]; %傳遞函數分母 G1=tf(num1,den1); %HPF Avp2 = 3-(1/q); k4=(3-Avp2)/(c2*r2); k5 = 1/(c2*c2*r2*r2); k6 = Avp2; num2=[k600];%傳遞函數分子 den2=[1k4k5];%傳遞函數分母 G2=tf(num2,den2); p=bodeoptions; p.FreqUnits='Hz'; p.Grid= 'on'; [num,den] = series(num1,den1,num2,den2); %計算串聯傳遞函數 printsys(num,den) %顯示串聯后的總傳遞函數 hold on; bode(num,den,p); %繪制波特圖 % hold on; % bode(G1,p); % hold on; % bode(G2,p); title('有源二階模擬帶通濾波器相頻特性');%標題
附2、程序如何實現濾波?
本部分從算法的角度論述信號濾波的具體工作流程,主要的內容包含:1、濾波器具體的結構以及相關的參數設置,采樣定理的含義;2、算法濾波后具體效果展示;具體內容如下~
圖a表述FIR濾波器的幅頻特性曲線,其中,信號的采樣頻率為1000hz(采樣定理:采樣頻率大于信號最高頻率的2倍,即:現有測量系統在保證精度的情況下,待測信號的最大頻率為500hz);現采用低通濾波器,截止頻率為50hz,當信號頻率高于截止頻率時,信號幅值衰減10倍以上;圖b表述為采用濾波器對包含工頻干擾的信號進行分析處理的結果,從圖中可以看出,采用濾波算法與直接屏蔽干擾源具有相同的采樣效果,還是挺不錯的~
clear all;clc % 讀取傳感器輸出信號 node='信號采集結果.txt'; [x,y]... =textread(node,'%f%f','emptyvalue',0,'headerlines',10); output=filter(lowpass,y); caiji=1000length(y); output=output(caiji,1); plot(output) function Hd = lowpass %LOWPASS Returns a discrete-time filter object. % All frequency values are in Hz. Fs = 2000; % Sampling Frequency Fpass=40;%PassbandFrequency Fstop = 50; % Stopband Frequency Dpass = 0.057501127785; % Passband Ripple Dstop = 0.1; % Stopband Attenuation dens = 20; % Density Factor % Calculate the order from the parameters using FIRPMORD. [N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]); %CalculatethecoefficientsusingtheFIRPMfunction. b = firpm(N, Fo, Ao, W, {dens}); Hd = dfilt.dffir(b); % [EOF]
-
傳感器
+關注
關注
2552文章
51380瀏覽量
755759 -
測試
+關注
關注
8文章
5371瀏覽量
126934 -
算法
+關注
關注
23文章
4629瀏覽量
93186 -
硬件
+關注
關注
11文章
3380瀏覽量
66383
原文標題:工頻信號干擾
文章出處:【微信號:WW_CGQJS,微信公眾號:傳感器技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論