• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    測量船指揮調(diào)度系統(tǒng)語音文件的讀取及軟件實現(xiàn)

    2013-08-22 08:02:28蘇仕強
    科技視界 2013年6期
    關(guān)鍵詞:均方濾波器濾波

    蘇仕強

    (中國衛(wèi)星海上測控部,江蘇 江陰 214431)

    0 引言

    新測量船指揮調(diào)度系統(tǒng)可對指揮語音進行全過程錄音,但在回放錄音文件時發(fā)現(xiàn)播放出來的語音聲音小、噪音多,從而效果并不理想。雖然采取了升級錄音線、提高話音音量等措施,但仍不能達到預(yù)期效果。技術(shù)人員在處理錄音過程中,發(fā)現(xiàn)錄音文件為wave語音文件,希望通過對WAVE文件進行提取研究,能找到解決語音效果不理想的問題。

    WAVE文件是語音文件中的一種,它被廣泛地使用在語音技術(shù)研究中,當(dāng)用其進行語音技術(shù)研究時,必須正確提取語音文件中的實際數(shù)據(jù),在MATLAB中有一個自帶函數(shù)可以返回實際語音數(shù)據(jù)。若使用其它語言進行程序開發(fā)時,就必須清楚WAVE語音文件的格式及其在計算機中的存儲結(jié)構(gòu),才能正確地讀取實際數(shù)據(jù),本文先分析討論了WAVE文件的存儲結(jié)構(gòu),然后說明如何使用Visual C++6.0實現(xiàn)WAVE文件讀取及濾波等操作。

    1 WAV文件

    1.1 WAVE文件的存儲結(jié)構(gòu)[1]

    WAVE文件作為多媒體中使用的聲波文件格式之一,它是以RIFF格式為標(biāo)準(zhǔn)的。RIFF是英文Resource Interchange File Format的縮寫,WAVE文件由文件頭和數(shù)據(jù)體兩大部分組成。其中文件頭又分為RIFF/WAV文件標(biāo)識段和聲音數(shù)據(jù)格式說明段兩部分。

    表1 1 8KHz采樣16比特量化的線性PCM語音信號的WAVE文件頭格式

    常見的聲音文件主要有兩種,分別對應(yīng)于單聲道(11.025kHz采樣率、8Bit的采樣值)和雙聲道(44.1kHz采樣率、16Bit的采樣值)。采樣率是指:聲音信號在“?!鷶?shù)”轉(zhuǎn)換過程中單位時間內(nèi)采樣的次數(shù)。采樣值是指每一次采樣周期內(nèi)聲音模擬信號的積分值。對于單聲道聲音文件,采樣數(shù)據(jù)為8位的短整數(shù)(short int 00H-FFH);而對于雙聲道立體聲聲音文件,每次采樣數(shù)據(jù)為一個16位的整數(shù)(int),高8位和低8位分別代表左右兩個聲道。WAVE文件數(shù)據(jù)塊包含以脈沖編碼調(diào)制(PCM)格式表示的樣本。WAVE文件是由樣本組織而成的。在單聲道WAVE文件中,聲道0代表左聲道,聲道1代表右聲道。在多聲道WAVE文件中,樣本是交替出現(xiàn)的。

    表1為其中一種WAVE文件格式。

    1.2 WAVE文件讀取程序?qū)崿F(xiàn)

    typedef struct

    {WORD wFormatag;//編碼格式;

    WORD nChannls;//聲道數(shù),單聲道為1,雙聲道為2;

    DWORD nSamplesPerSec;//采樣頻率;

    DWORD nAvgBytesperSec;//每秒的數(shù)據(jù)量;

    WORD nBlockAlign;//塊對齊;

    }WAVEFORMAT;

    BYTE*GetData (Cstring*pString)//獲取聲音文件數(shù)據(jù)的函數(shù),pString參數(shù)指向要打開的聲音文件;

    {if(pString==NULL)

    return NULL;

    HMMIO file1;//定義HMMIO文件句柄;

    file1=mmioOpen((LPSTR)pString,NULL,MMIO_READWRITE);//以讀寫模式打開;

    if(file1==NULL)

    {MessageBox("WAVE文件打開失敗!");

    return NULL;}

    char style[4];//定義一個四字節(jié)的數(shù)據(jù),用來存放文件的類型;

    mmioSeek(file1,8,SEEK_SET);//定位到WAVE文件的類型位置;

    mmioRead(file1,style,4);

    if(style[0]!='W'||style[1]!='A'||style[2]!='V'||style[3]!='E')

    //判斷該文件是否為"WAVE"文件格式;

    {MessageBox("該文件不是WAVE格式的文件!");

    return NULL;}

    PCMWAVEFORMAT format;//定義 PCMWAVEFORMAT結(jié)構(gòu)對象,用來判斷WAVE文件格式;

    mmioSeek(file1,20,SEEK_SET);

    //對打開的文件進行定位, 指向 WAVE文件的PCMWAVEFORMAT結(jié)構(gòu)的數(shù)據(jù);

    mmioRead(file1,(char*)&format,sizeof(PCMWAVEFORMAT));//獲取該結(jié)構(gòu)的數(shù)據(jù);

    if(format.wf.nChannels!=2)//判斷是否是立體聲聲音;

    {MessageBox("該聲音文件不是雙通道立體聲文件");

    return NULL;}

    mmioSeek(file1,24+sizeof(PCMWAVEFORMAT),SEEK_SET);

    //獲取WAVE文件的聲音數(shù)據(jù)的大小;

    long size;

    mmioRead(file1,(char*)&size,4);

    BYTE*pData;

    pData=(BYTE*)new char[size];//根據(jù)數(shù)據(jù)的大小申請緩沖區(qū);

    mmioSeek(file1,28+sizeof(PCMWAVEFORMAT),SEEK_SET);//對文件重新定位;

    mmioRead(file1,(char*)pData,size);//讀取聲音數(shù)據(jù);

    mmioClose(file1,MMIO_FHOPEN);//關(guān)閉WAVE文件;

    return pData;}

    2 WAVE文件濾波

    2.1 濾波算法[2]

    語音濾波的最終效果度量是人耳的主觀感覺,所以在語音濾波中可以利用人耳感覺特性來減少運算的代價,利用自適應(yīng)濾波器可以獲得令人滿意的解。

    自適應(yīng)橫向濾波器具有以下功能:

    1)按照某種自適應(yīng)算法自動調(diào)節(jié)濾波系數(shù)的橫向濾波器:分別以W1(n)…Wn(n)表示各個濾波器所在時刻的權(quán)系數(shù)。

    2)調(diào)節(jié)這些系數(shù)的過程:首先自動調(diào)節(jié)濾波器系數(shù)的自適應(yīng)訓(xùn)練步驟,然后利用濾波系數(shù)加權(quán)延遲線抽頭上的信號來產(chǎn)生輸出信號,將輸出信號與期望信號進行對比,所得誤差值通過一定的自適應(yīng)控制算法再來調(diào)整權(quán)值,以保證濾波器處在最佳狀態(tài),達到實現(xiàn)濾波目的。

    圖1 自適應(yīng)橫向濾波器結(jié)構(gòu)圖

    令 W(n)=[W1(n),W2(n),…,Wm(n)],x(n)=[x(n),x(n-1),…,x(n-m+1)]T

    則輸出信號:

    誤差序列:

    其中d(n)為期望信號。顯然,自適應(yīng)濾波器控制機理是用誤差序列e(n)按照某種準(zhǔn)則和自適應(yīng)算法對其系數(shù){Wi(n)},=1,2,3,…m進行調(diào)節(jié),最終使自適應(yīng)濾波器的目標(biāo)函數(shù)最小化達到最佳濾波狀態(tài)。按照均方誤差(MSE)準(zhǔn)則定義:

    將e(n)=d(n)-y(n)帶入上式,均方誤差函數(shù)重寫為:

    當(dāng)濾波器系數(shù)固定時,均方誤差函數(shù)又可寫成:

    其中:R=E[X(n)XT(n)]是輸入信號的自相關(guān)矩陣;P=E[d(n)X(n)]是期望信號與輸入信號的互相關(guān)矢量;將上式對W求導(dǎo),并令其等于零,同時假設(shè)R是非奇異的,由此可得最佳濾波系數(shù)W0為:

    由式可見,均方誤差 ξ(n)是權(quán)矢量{Wj(n)},i=1,2,…,M 的二次函數(shù)它代表以{w,(n)},i=1,2,…,M 為自變量的一個“超拋物面”,均方誤差ξ(n)達到最小值ξmin。幾何上這相當(dāng)于超拋物面的最小點。在一般情況下,濾波器在迭代過程中或當(dāng)輸入過程統(tǒng)計特性發(fā)生變化時,權(quán)矢量W并不正好等于W,而是處于某一最佳值W(n)上。為了減小誤差,一個顯然的方法是找出該工作點處使均方誤差ξ(n)減小速率最大的方向,亦即梯度的負方向,然后令權(quán)矢量w(n)沿著梯度的負方向修正。令▽(n)代表n時刻的M×I維梯度矢量,則權(quán)矢量W(n+1)可用下列簡單遞歸關(guān)系計算:

    式中,u是一個正實數(shù),通常稱它為自適應(yīng)收斂系數(shù)或步長因子。根據(jù)梯度矢量定義,▽(n)可寫成:

    可計算出濾波系數(shù)更新值:

    上式是最陡下降法的數(shù)學(xué)公式,由此公式信號流程圖圖2。

    圖2 最陡下降算法的信號流圖

    2.2 最陡下降算法計算步驟

    算法計算步驟如下:

    1)根據(jù)所處理信號的特征,選取濾波器的階數(shù)M及收斂因子u。

    2)令W(0)=0,W(0)表示一維數(shù)為M,各分量為0的向量。

    3)for(k=M;k<=N;k++)

    X=[x(k),…,x(k-M+1)]T

    y(k)=W(k)*X

    e(k)=x(k)-y(k)

    W(k+1)=W(k)+2*u*e(k)*X

    3 結(jié)束語

    本文分析討論WAVE文件的存儲結(jié)構(gòu)以及其樣本數(shù)據(jù)的存儲結(jié)構(gòu),用VC++6.0語言實現(xiàn)PCM編碼的WAVE文件的讀取,濾波以及存儲,得到了正確的結(jié)果。

    [1]WAV波形文件的結(jié)構(gòu)及其應(yīng)用實踐[J].微計算機信息,2005,21(8):114-119.

    [2]張賢達,保錚.通信信號處理[M].北京:國防工業(yè)出版社,2002:258-270.

    猜你喜歡
    均方濾波器濾波
    基于無擾濾波器和AED-ADT的無擾切換控制
    一類隨機積分微分方程的均方漸近概周期解
    Beidou, le système de navigation par satellite compatible et interopérable
    從濾波器理解卷積
    電子制作(2019年11期)2019-07-04 00:34:38
    開關(guān)電源EMI濾波器的應(yīng)用方法探討
    電子制作(2018年16期)2018-09-26 03:26:50
    基于TMS320C6678的SAR方位向預(yù)濾波器的并行實現(xiàn)
    基于抗差最小均方估計的輸電線路參數(shù)辨識
    RTS平滑濾波在事后姿態(tài)確定中的應(yīng)用
    基于線性正則變換的 LMS 自適應(yīng)濾波
    遙測遙控(2015年2期)2015-04-23 08:15:18
    基于隨機牽制控制的復(fù)雜網(wǎng)絡(luò)均方簇同步
    兰坪| 河北省| 龙门县| 伊宁县| 红原县| 景宁| 屏山县| 东台市| 威远县| 三都| 乳源| 徐闻县| 邵阳县| 耒阳市| 沭阳县| 永和县| 靖江市| 凤冈县| 山西省| 民和| 嘉禾县| 崇阳县| 西乌珠穆沁旗| 肇州县| 专栏| 白玉县| 社旗县| 江达县| 和硕县| 齐齐哈尔市| 和田市| 谢通门县| 安徽省| 象州县| 湘潭市| 凤翔县| 枝江市| 曲水县| 长子县| 芦溪县| 济阳县|