999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于C#的一維光譜信號處理方法研究與應用

2019-08-26 01:35:26周超方哲宋春苗胡學強
數字技術與應用 2019年5期
關鍵詞:信號方法系統

周超 方哲 宋春苗 胡學強

摘要:光譜信號的處理是光譜系統的關鍵部分,包括插值、光滑、尋峰、提取等步驟,插值是根據已知條件逼近還原真實信號,光滑可以消除統計漲落的影響,尋峰是信號標定的先決條件,信號提取可以得到每一個有用信號單獨的數學表征。這些手段綜合起來應用,可以提高光譜系統的檢出限、精密度、穩定性等主要指標。本文針對上述步驟和方法展開討論,用C#編程語言實現其在一維光譜系統中的應用,取得了良好的效果。

關鍵詞:一維光譜信號;信號處理方法;C#

中圖分類號:TH741;TH842 文獻標識碼:A 文章編號:1007-9416(2019)05-0043-03

1 一維光譜信號處理方法

1.1 插值

插值是離散函數逼近的重要方法,利用它可通過函數在有限個點處的取值狀況,估算出函數在其他點處的近似值。對于常見的高斯信號和高斯疊加多項式的信號,一般需要在譜圖橫軸平均分布的至少7-9個點,才能展現信號的主要特征,在光譜系統中,由于分辨率的問題,我們所得到的譜圖的譜峰往往沒有足夠的數據來表征。這時候就可以使用插值的方法,補足缺失的點。時域上,f(x)是定義在[a,b]上的已知映射關系,x1,x2,x3...xn為區間內n個互不相同的點,G為給定的某一函數類。若G上有函數g(x)滿足:g(xi)=f(xi),i=1,2,...n。則稱g(x)為f(x)關于節點x1,x2,x3...xn在G上的插值函數。頻域插值是將時域的一維光譜信號數據首先轉換成頻域信號,對頻域信號進行低頻插值,一般為補0,然后將頻域信號再轉換成時域信號。頻域插值方法的關鍵代碼如下:

ifftResult = FreqAnalyzer.FFT(data, true).ToList();//傅里葉逆變換

for (int i = 0; i < data.Count(); i++)

{

ifftResult[i].Real = ifftResult[i].Real / data.Count();

ifftResult[i].Image = ifftResult[i].Image / data.Count();

}

ListShift(ifftResult);//序列前后兩段換位

fftExpand = ZeroFilling(ifftResult);//補0

fftResult = FreqAnalyzer.FFT(fftExpand.ToArray(), false).ToList();//傅里葉變換

List result = FreqAnalyzer.Cmp2Mdl(fftResult.ToArray()).ToList(); //插值結果

1.2 光滑

在實際光譜系統中,當信號較弱的時候,信號的統計漲落比較大,往往不是高斯或類高斯分布的期望值,有用信號被淹沒在統計漲落之中,從而影響整個系統的精密度。通過光滑處理方法可以解決上述問題。常用的光滑方法有算術平均法、多項式最小二乘法、離散函數褶積變換法、傅里葉變換法等。光滑的目的是通過數學方法,消除信號中統計漲落的影響,同時保留原有信號的特征信息。其方法的過程可以概括為以當前點為中心,利用其左右n個點的測量數據,通過算法修正當前點的值。比如,算術平均法就是用當前點及其左右2n個點的算術平均數的值來替換當前點的值。傅里葉變換法則是通過頻域低通濾波,將統計漲落看作是高頻的噪聲從原始信號中消除。頻域濾波方法的關鍵代碼如下:

fftResult = FreqAnalyzer.FFT(data,false);//傅里葉變換

ListShift(fftResult);//序列前后兩段換位

for (int i = 0; i < data.Length; i++)

{

fftResult[i].Real = fftResult[i].Real * Hd[i];

fftResult[i].Image = fftResult[i].Image * Hd[i];

}

fftResult = FreqAnalyzer.FFT(fftResult, true);//傅里葉逆變換

data = FreqAnalyzer.Cmp2Mdl(fftResult);//各項再除以項數得到結果數組

1.3 尋峰

一維光譜信號的尋峰是信號標定的先決條件。信號的形狀可用信號峰位、峰強、半高寬加以描述,必要時還應考慮非對稱因子[1]。首先判定信號峰是否存在,如果存在就確定峰的位置和邊界,然后才能根據信號峰的特征進行定性分析。常用的尋峰方法有算術比較法、導數法、協方差法、對稱零面積法等。有信號重疊現象時,算術比較法不能使用。信號較弱時,協方差法的效果會受到較大影響。導數法尋峰會導致一定程度的峰位偏移。對各種情況綜合比較,對稱零面積法的準確度較好。通過窗函數與一維光譜信號進行褶積變換,當變換譜與它的標準偏差之比出現正極值,且大于固定的閾值,即可判定為峰,然后通過探測器響應函數或數學擬合方法確定峰的邊界。對稱零面積法的關鍵代碼如下:

int m = (int)(hFWHM + 1);//hFWHM半峰寬

if (i - m > 0)

{

W = 2 * m + 1; //窗寬

double[] G = new double[W];

double[] C = new double[W];

for (int j = 0; j < W; j++){G[j] = Math.Cos(Math.PI * (j-m) / 2 / hFWHM);}

double d = G.Sum() / W;

for (int j = 0; j < W; j++){C[j] = G[j] - d;}

for (int j = 0; j < W; j++)

{

y[i] += C[j] * netSpectrum[i - m + j];

dy[i] += C[j] * C[j] * netSpectrum[i - m + j];

}

dy[i] = Math.Sqrt(dy[i]);

SSi[i] = y[i] / dy[i];//SSi[i]和閾值比較定峰

}

1.4 提取

光譜信號重疊是光譜自身物理特性和光譜系統分辨率不足的結果。受制于光路設計和探測器的響應曲線,光譜系統不能把兩個臨近的一維光譜信號完全分開時,就需要用數學方法進行提取。一維光譜信號一般可以認為是某種特定分布信號的疊加,如常見的高斯信號和高斯加多項式的信號。提取的目的是通過數學方法,找到用來表征每個峰的最優函數,計算機處理時,可以轉化為求矩陣的最優解[2][3]。常用的方法有最小二乘法、剝譜法、小波變換法等。如果提取后出現殘差較大的情況,需要再次對所得到的函數參數進行調優。最小二乘法提取方法的關鍵代碼如下:

CalCoefArray();//計算系數矩陣

CalConstArray();//計算常數矩陣

lEquations.Init(coefArray, constArray);//coefArray系數矩陣,constArray常數矩陣

lEquations.GetRootsetGauss(resultMatrix);//求方程組的解

for (int i = 0; i < peakNumber; i++)

{

List singlePeak = new List();

for (int j = 0; j < spectrum.Count(); j++)

{

singlePeak.Add(resultMatrix[i, 0] * Math.Exp(-Math.Pow((positionList[j] - peakList[i].position) / peakList[i].peakWidth, 2)));

}

peakList[i].singlePeakSpectrum = singlePeak;

}

2 實際應用

2.1 單個一維光譜信號的一般處理過程

為了方便敘述信號處理過程,本文設計了一組復雜的一維光譜信號,一共9個峰,32個數據點。由于數據量少,難以進行后續的數學運算,首先對原始信號進行8倍的插值處理,如圖1所示。

我們利用上述方法對插值后的結果進行平滑、尋峰、提取,并通過對提取結果與原始信號的殘差分析優化提取過程參數,即可得到每個峰最終的數學表達,通過函數曲線表示,如圖2所示。

2.2 消除信號統計漲落的效果分析

圖3是實際光譜系統在同樣條件下采集的10組信號,我們對235-243范圍內的數據放大后可以看到信號統計漲落的影響,我們從每組信號中選取10個相同位置的有用信號,利用上文提到的插值和光滑方法進行數據處理,結果如表1所示,可以看到不同組之間相同位置的信號的相對標準偏差均有減小,提高了精密度指標。

2.3 信號提取的效果分析

圖4是實際光譜系統采集的1組信號,可以看到信號Sig.1和Sig.2之間有小部分的信號重疊,信號Sig.3的一大部分被信號Sig.4覆蓋,如果不進行信號提取,就無法對信號進行下一步的分析和利用。應用上文提到的尋峰和提取方法,可以得到每個信號的數學表達,并通過函數曲線表示在圖上。提取信號與實際信號的相對偏差如表2所示,相對大的信號提取效果好,相對小的信號提取效果略差,但是總體上能夠控制在3%以內,可以滿足一般的信號處理要求。

3 結語

本文介紹了基于C#的一維光譜信號處理方法與應用,介紹了插值、光滑、尋峰、提取的方法,給出了優選方法的相關代碼,并在數據逼近還原、消除統計漲落、信號尋找、信號提取等步驟成功應用。

參考文獻

[1] 吉昂,陶光儀,卓尚軍,等.X射線熒光光譜分析[M].北京:科學出版社,2003:251-262.

[2] 王婷婷.發射光譜儀中光譜干擾校正方法的應用和研[D].杭州:杭州電機科技大學,2011.

[3] 肖筱南.現代數值計算方法[M].北京:北京大學出版社,2003:186-195.

猜你喜歡
信號方法系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
完形填空二則
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
基于LabVIEW的力加載信號采集與PID控制
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 欧美高清日韩| 亚洲精品无码专区在线观看| 毛片基地视频| 欧美精品成人| 99热亚洲精品6码| 97视频免费看| 国产精品成人第一区| 国产成人精品在线1区| 国内精品九九久久久精品| 亚洲天堂网在线观看视频| 91精品国产情侣高潮露脸| 国产久草视频| 国产午夜无码片在线观看网站| 99er这里只有精品| 亚洲h视频在线| 国产欧美一区二区三区视频在线观看| 中文字幕欧美日韩高清| 99性视频| 天堂成人在线视频| 国产免费怡红院视频| 国产三级毛片| 欧美人人干| 亚洲欧美日韩成人在线| 亚洲精品在线观看91| 香蕉视频国产精品人| 国产精品永久在线| 亚洲成人福利网站| 国产成人喷潮在线观看| 71pao成人国产永久免费视频| 亚洲首页在线观看| 999精品在线视频| 91精品国产自产在线观看| 国产成a人片在线播放| 青青国产成人免费精品视频| 国产一级妓女av网站| 国产黄色爱视频| 国产无码在线调教| 中文无码精品A∨在线观看不卡 | 亚洲精品桃花岛av在线| 19国产精品麻豆免费观看| 五月天综合婷婷| 久久综合色天堂av| 国产1区2区在线观看| 92午夜福利影院一区二区三区| 婷婷六月综合网| 99精品免费欧美成人小视频| 久久香蕉国产线| 国产精品亚欧美一区二区| 99久久亚洲精品影院| 精品综合久久久久久97超人该| 亚洲综合片| 小13箩利洗澡无码视频免费网站| 成人免费午夜视频| lhav亚洲精品| 亚洲av片在线免费观看| 欧美a在线| 国内精品久久人妻无码大片高| 97国产精品视频人人做人人爱| 国内熟女少妇一线天| 又爽又大又黄a级毛片在线视频 | 免费不卡在线观看av| 她的性爱视频| 久久久久久久久久国产精品| 亚洲 欧美 日韩综合一区| 国产亚洲高清视频| 91探花国产综合在线精品| 99热国产这里只有精品9九| 无码区日韩专区免费系列| 欧美国产日韩在线播放| 毛片最新网址| 午夜福利亚洲精品| 久操中文在线| 青青草91视频| 精品成人一区二区| 亚洲第一极品精品无码| 国产男人天堂| 亚洲婷婷丁香| 一区二区日韩国产精久久| 国产日韩精品一区在线不卡| 久久成人免费| 国产毛片不卡| 欧美一级在线看|