亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C#的一維光譜信號(hào)處理方法研究與應(yīng)用

        2019-08-26 01:35:26周超方哲宋春苗胡學(xué)強(qiáng)
        關(guān)鍵詞:信號(hào)方法系統(tǒng)

        周超 方哲 宋春苗 胡學(xué)強(qiáng)

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

        關(guān)鍵詞:一維光譜信號(hào);信號(hào)處理方法;C#

        中圖分類號(hào):TH741;TH842 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)05-0043-03

        1 一維光譜信號(hào)處理方法

        1.1 插值

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

        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);//補(bǔ)0

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

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

        1.2 光滑

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

        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);//各項(xiàng)再除以項(xiàng)數(shù)得到結(jié)果數(shù)組

        1.3 尋峰

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

        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 提取

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

        CalCoefArray();//計(jì)算系數(shù)矩陣

        CalConstArray();//計(jì)算常數(shù)矩陣

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

        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 實(shí)際應(yīng)用

        2.1 單個(gè)一維光譜信號(hào)的一般處理過程

        為了方便敘述信號(hào)處理過程,本文設(shè)計(jì)了一組復(fù)雜的一維光譜信號(hào),一共9個(gè)峰,32個(gè)數(shù)據(jù)點(diǎn)。由于數(shù)據(jù)量少,難以進(jìn)行后續(xù)的數(shù)學(xué)運(yùn)算,首先對(duì)原始信號(hào)進(jìn)行8倍的插值處理,如圖1所示。

        我們利用上述方法對(duì)插值后的結(jié)果進(jìn)行平滑、尋峰、提取,并通過對(duì)提取結(jié)果與原始信號(hào)的殘差分析優(yōu)化提取過程參數(shù),即可得到每個(gè)峰最終的數(shù)學(xué)表達(dá),通過函數(shù)曲線表示,如圖2所示。

        2.2 消除信號(hào)統(tǒng)計(jì)漲落的效果分析

        圖3是實(shí)際光譜系統(tǒng)在同樣條件下采集的10組信號(hào),我們對(duì)235-243范圍內(nèi)的數(shù)據(jù)放大后可以看到信號(hào)統(tǒng)計(jì)漲落的影響,我們從每組信號(hào)中選取10個(gè)相同位置的有用信號(hào),利用上文提到的插值和光滑方法進(jìn)行數(shù)據(jù)處理,結(jié)果如表1所示,可以看到不同組之間相同位置的信號(hào)的相對(duì)標(biāo)準(zhǔn)偏差均有減小,提高了精密度指標(biāo)。

        2.3 信號(hào)提取的效果分析

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

        3 結(jié)語

        本文介紹了基于C#的一維光譜信號(hào)處理方法與應(yīng)用,介紹了插值、光滑、尋峰、提取的方法,給出了優(yōu)選方法的相關(guān)代碼,并在數(shù)據(jù)逼近還原、消除統(tǒng)計(jì)漲落、信號(hào)尋找、信號(hào)提取等步驟成功應(yīng)用。

        參考文獻(xiàn)

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

        [2] 王婷婷.發(fā)射光譜儀中光譜干擾校正方法的應(yīng)用和研[D].杭州:杭州電機(jī)科技大學(xué),2011.

        [3] 肖筱南.現(xiàn)代數(shù)值計(jì)算方法[M].北京:北京大學(xué)出版社,2003:186-195.

        猜你喜歡
        信號(hào)方法系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        信號(hào)
        鴨綠江(2021年35期)2021-04-19 12:24:18
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        完形填空二則
        基于FPGA的多功能信號(hào)發(fā)生器的設(shè)計(jì)
        電子制作(2018年11期)2018-08-04 03:25:42
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        可能是方法不對(duì)
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        基于LabVIEW的力加載信號(hào)采集與PID控制
        国产精品久久婷婷六月丁香| 男性av天堂一区二区| www国产亚洲精品| 蜜桃无码一区二区三区| 免费可以在线看A∨网站| 国产经典免费视频在线观看| 精品一区二区三区亚洲综合| 国产日产亚洲系列最新| 久久久精品人妻一区二区三区四| 玩弄丰满奶水的女邻居| 日日摸夜夜添无码无码av| 西西人体大胆视频无码| 久久精品av在线视频| 狠狠97人人婷婷五月| 人人摸人人操| 亚洲AV秘 无码一区二p区三区| 国内精品久久人妻性色av| 国产一区二区三区三区四区精品 | 在线偷窥制服另类| 人妻免费黄色片手机版| 三级黄色片免费久久久| 精品乱码久久久久久久| 亚洲国产精品久久久天堂不卡海量 | 乱子伦视频在线看| 亚洲国产日韩在线精品频道| 免费人成网站在线视频| 亚洲乱码一区av春药高潮| 白又丰满大屁股bbbbb| 全免费a级毛片免费看视频| 国产男女做爰猛烈视频网站| 国产真实一区二区三区| 一边摸一边抽搐一进一出口述| 日韩人妻无码免费视频一区二区三区| 国产在线欧美日韩一区二区| 青青青伊人色综合久久| 亚洲一区二区懂色av| 乱老年女人伦免费视频| 精品综合久久久久久97超人| 精品久久久亚洲中文字幕| 久久一区二区三区久久久| 99久久精品国产一区二区三区|