欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)字短時(shí)脈沖波形干擾濾波器的制作方法

文檔序號:7534317閱讀:337來源:國知局
專利名稱:數(shù)字短時(shí)脈沖波形干擾濾波器的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及濾波器領(lǐng)域。更具體地,本發(fā)明一方面涉及處理數(shù)據(jù)抽樣的濾波器。更具體地,本發(fā)明還涉及用于去除在數(shù)字?jǐn)?shù)據(jù)抽樣中的短時(shí)脈沖波形干擾(glitch)、尖峰脈沖、信號漏失或其他短期異態(tài)的電路和方法。
許多電子電路、數(shù)據(jù)總線、接口和傳輸介質(zhì)受到由無關(guān)的內(nèi)部和外部因素、例如相鄰信號源、開關(guān)感應(yīng)瞬變等強(qiáng)加的噪聲和失真的影響。這種無關(guān)強(qiáng)加常常以信號振幅在電路或介質(zhì)的某點(diǎn)急劇上升或下降的形式出現(xiàn),其中上升或下降是與所需信號無關(guān)的。因?yàn)檫@種干擾或噪聲的頻率、極性、持續(xù)時(shí)間和幾何形狀都不同,所以已知有多個(gè)名字。例如,當(dāng)這些干擾信號是短持續(xù)時(shí)間并且(通常)是非周期的時(shí),常常將其稱為“短時(shí)脈沖波形干擾”或“信號漏失”,此后將這些都簡稱為“短時(shí)脈沖波形干擾”。
已經(jīng)設(shè)計(jì)出許多用于對付信號短時(shí)脈沖波形干擾的嘗試的解決辦法,每種方法都在不同程度上適合于某個(gè)范圍的信號或工作條件。一些構(gòu)造為內(nèi)部或外部補(bǔ)償電路、帶有或沒有部分固件或軟件支持的解決辦法被證明相對來說更好一些。在其他情況下,解決辦法是以與通用或?qū)S锰幚砥饕黄鹗褂玫目蓤?zhí)行軟件(程序)的形式運(yùn)用的。還沒有一般可應(yīng)用的技術(shù)在硬件和軟件實(shí)施中都證明是有用的。
根據(jù)下面描述的本發(fā)明的例示性的用于以連續(xù)時(shí)間間隔ti,i=1,2,…采樣的信號的短時(shí)脈沖波形干擾濾波器實(shí)施例,克服了現(xiàn)有技術(shù)的限制,并產(chǎn)生了技術(shù)效果。
在一方面,在圖示的實(shí)施例中,本發(fā)明處理奇數(shù)N個(gè)采樣數(shù)據(jù)值的重疊時(shí)間序列,以確定每個(gè)時(shí)間間隔ti出現(xiàn)的每組N個(gè)值的排序順序的中間值。這個(gè)中間值被作為當(dāng)前組N個(gè)輸入值(即,時(shí)間間隔ti)的輸出值。在后面的時(shí)間間隔ti+1中,舍棄前N個(gè)采樣中最舊的,并將一個(gè)新的樣本加在這組中。對于每個(gè)時(shí)間間隔重復(fù)這個(gè)過程。
在圖示的硬件實(shí)施例中,一個(gè)電路、例如半導(dǎo)體芯片電路(例如,現(xiàn)場可編程邏輯陣列,F(xiàn)PLA)采用上述技術(shù)來消除否則要被處理的信號中出現(xiàn)的短時(shí)脈沖波形干擾。依據(jù)本發(fā)明的一個(gè)例示性軟件實(shí)施例,處理器執(zhí)行軟件例程或計(jì)算機(jī)程序來同樣地估計(jì)和消除加在所需信號上的短時(shí)脈沖波形干擾。
通過參考下面的詳細(xì)說明和附圖,將更加全面地理解本發(fā)明的例示性實(shí)施例的上述總結(jié)性描述。


圖1顯示了一個(gè)典型的摻雜有短時(shí)脈沖波形干擾的所需信號。
圖2顯示了依據(jù)本發(fā)明的原理消除了短時(shí)脈沖波形干擾的圖1的所需信號。
圖3顯示了可以主要采用硬件或采用硬件與軟件相結(jié)合來實(shí)施的系統(tǒng)的例示性實(shí)施例的概觀。
圖4顯示了本發(fā)明的實(shí)施例的例示性硬件實(shí)施。
圖5是本發(fā)明的例示性軟件實(shí)施的流程圖。
圖1顯示了一個(gè)典型的帶有短時(shí)脈沖波形干擾的信號,例如音頻信號,該信號否則應(yīng)適合于重現(xiàn)或其他正常處理。在音頻信號的情況下,收聽者會將這種短時(shí)脈沖波形干擾聽成討厭的爆裂聲或劈啪聲。圖2顯示了應(yīng)用本發(fā)明的原理和技術(shù)采用了許多可能的實(shí)施例中的一個(gè)消除了短時(shí)脈沖波形干擾后的圖1的信號。
更具體地,圖1顯示了振幅、極性和疊加在正弦波上的位置都不同的多個(gè)短期尖峰脈沖或短時(shí)脈沖波形干擾。其他用來去除這些短時(shí)脈沖波形干擾的標(biāo)準(zhǔn)技術(shù)、例如例示性的7抽頭有限脈沖響應(yīng)(FIR)數(shù)字濾波器一般效果不是很好。也就是說,雖然特定短時(shí)脈沖波形干擾的振幅可以減小,一般不能將它們?nèi)コ?,并且它們的幾何形?例如,它們的寬度)實(shí)際上可能會增大。相反,圖2顯示了圖1的應(yīng)用本發(fā)明的方案有效地去除了所有短時(shí)脈沖波形干擾的正弦波。
圖3顯示了以各種詳細(xì)的實(shí)施例執(zhí)行本發(fā)明的各個(gè)方面的一般系統(tǒng)的方框圖。所示的是一個(gè)采樣器301,用來接收輸入導(dǎo)線300上的輸入信號、例如圖1所示的模擬信號。在適當(dāng)?shù)那闆r下,導(dǎo)線300上的輸入信號可能已經(jīng)被采樣,在這種情況下,采樣器301僅僅使這些輸入信號通過,或以不同的速率采樣-這可以由本領(lǐng)域普通技術(shù)人員來確定,以適應(yīng)特定的環(huán)境。無論導(dǎo)線300上的輸入信號是樣本還是名義上的連續(xù)信號,都以脈沖幅度的異常變化反映出任何額外短時(shí)脈沖波形干擾的存在。一般來說,將采樣器301的采樣速率選擇為足夠高,以便能基本上以一個(gè)或多個(gè)樣本捕捉到所有短時(shí)脈沖波形干擾影響的振幅值。采樣器電路301的輸出是一個(gè)反映任何存在的短時(shí)脈沖波形干擾的樣本序列。出于參考的目的,將采樣速率取為1/t,其中t是采樣周期;因此,在t的每個(gè)倍數(shù)、即在ti,i=1,2,…產(chǎn)生一個(gè)樣本。
量化器302從采樣器301接收采樣輸出,并產(chǎn)生每個(gè)采樣值的多比特表示。在一個(gè)例示性情況下,將樣本變換成8比特?cái)?shù)字值,但在特定情況下也可以采用其他特定的樣本間隔。為每個(gè)ti產(chǎn)生一個(gè)這樣的樣本。
N樣本延遲電路303接收每個(gè)樣本值的數(shù)字表示,并保持最新的N個(gè)樣本。在一個(gè)例示性情況下,N=7,延遲電路303保持七個(gè)最新的樣本。在每t秒間隔之后,舍棄最舊的樣本值,并接收下一個(gè)新樣本值,由延遲電路303暫時(shí)保存。在典型的實(shí)施例中可以將延遲電路303實(shí)施為一個(gè)多位移位寄存器、一個(gè)帶有可尋址指針的標(biāo)準(zhǔn)的多位存儲器、一個(gè)循環(huán)緩沖器、或多種其他特定電路實(shí)現(xiàn)中的任何一個(gè)。
較佳地,使存儲在延遲電路303中的所有N個(gè)值在當(dāng)前的t秒時(shí)間間隔內(nèi)可由分揀器304得到。分揀器304執(zhí)行的首要功能是將展示給它的當(dāng)前的N個(gè)值以值增大(或減小)順序排序。由于最好將N選擇為奇數(shù)(例如,7),則當(dāng)前時(shí)間間隔的N個(gè)值的順序列表中的中間樣本值容易地被中間點(diǎn)選擇器305所識別和選擇。中間點(diǎn)選擇器305的輸出是短時(shí)脈沖波形干擾濾波器輸出。將由分揀器304分揀的排序時(shí)間樣本存儲在選擇器305所知的一組寄存器或以物理或邏輯位置表示的存儲單元中證明是很方便的,所以實(shí)際的選擇僅僅是對可預(yù)測的存儲單元的讀出操作。
圖4是圖3系統(tǒng)的分揀器和相關(guān)單元的特定的例示性硬件實(shí)施例。更具體地,圖4中所示是圖3的N個(gè)樣本延遲單元303的表示,顯示為樣本存儲器405。可以看到,對于例示值N=7,樣本存儲器405如圖所示將樣本1至7存儲在各個(gè)存儲寄存器中。如上所述,樣本存儲器的內(nèi)容在每次ti改變時(shí)改變,樣本j在時(shí)間間隔的每次改變變?yōu)?j+l),其中j=1,2,…,6。在將新樣本1增加到樣本存儲器405的頂部時(shí)舍棄樣本7。如上所述,樣本存儲器405的實(shí)際硬件實(shí)現(xiàn)可以采取移位寄存器、帶有可復(fù)置指針的隨機(jī)存取存儲器或其他任何適于實(shí)現(xiàn)(邏輯移位的)N個(gè)樣本值的存儲器的形式。為了便于參考,將每個(gè)樣本值1-7說成是存儲在各個(gè)寄存器中。時(shí)間樣本序列的最后七個(gè)總保持在樣本存儲器405內(nèi)。
七個(gè)寄存的八進(jìn)制四輸入(4到1)多路復(fù)用器(多路復(fù)用器A到G)在圖4中顯示為410。為了便于參考,將多路復(fù)用器A說成是“高于”多路復(fù)用器B,將多路復(fù)用器G說成是“低于”多路復(fù)用器F,等等。這些多路復(fù)用器接收存儲在樣本存儲器405的各個(gè)寄存器中的樣本值作為輸入。另外,對于每個(gè)多路復(fù)用器可能的輸入包括相鄰較高的多路復(fù)用器的輸出(多路復(fù)用器A沒有),相鄰較低的多路復(fù)用器的輸出(多路復(fù)用器G沒有),以及從多路復(fù)用器的輸出反饋回的當(dāng)前值??刂戚斎?35和440由多路復(fù)用器從比較邏輯模塊420和425接收,與本領(lǐng)域普通技術(shù)人員所公知的標(biāo)準(zhǔn)時(shí)鐘和定時(shí)控制一起由多路復(fù)用器接收。
例示性地,在輸入新數(shù)據(jù)之后的第一個(gè)時(shí)鐘,多路復(fù)用器選擇線方便地選擇樣本值鎖存進(jìn)多路復(fù)用器寄存器。在接著的七個(gè)時(shí)鐘周期,比較邏輯模塊評價(jià)交替多對寄存值的振幅。在一個(gè)例示性序列中,比較邏輯模塊420和425首先比較在多路復(fù)用器A&B、C&D以及E&F存儲的值。在下一個(gè)時(shí)鐘周期,比較多路復(fù)用器B&C、D&E以及F&G。在每次比較之后,如果較大的正值高于較大的負(fù)值,則來自比較邏輯模塊420和425的選擇線命令多路復(fù)用器保持它們的當(dāng)前值。然而,如果較大的正值低于較大的負(fù)值,則比較邏輯命令兩個(gè)多路復(fù)用器交換它們的值。在七個(gè)比較周期之后,多路復(fù)用器寄存器將分揀值保持為,將最大正值保存在多路復(fù)用器A中,將最大負(fù)值保存在多路復(fù)用器G中。多路復(fù)用器D的值則為作為輸出提供的中間值,即圖3中的中間點(diǎn)或中間選擇器305的選擇隱含在指定多路復(fù)用器D寄存器作為輸出中。比較邏輯以及有關(guān)的時(shí)鐘和定時(shí)的細(xì)節(jié)隨特定的邏輯構(gòu)件和/或?qū)嵤┕ぞ叨淖?,這些都是本領(lǐng)域普通技術(shù)人員公知的。應(yīng)該理解,在進(jìn)行對N個(gè)樣本分揀列表(對于N為奇整數(shù)的情況)的中間樣本的選擇時(shí),如果證明方便的話,“高”和“低”位置指示器可以一致地顛倒。
在一個(gè)例示性硬件實(shí)施例中,可以采用應(yīng)用與FPGA相聯(lián)系的標(biāo)準(zhǔn)的開發(fā)工具構(gòu)造的標(biāo)準(zhǔn)ATMEL現(xiàn)場可編程門陣列(FPGA)方便地實(shí)現(xiàn)圖4電路的單元和操作序列。
例示性軟件實(shí)施例分揀濾波器的軟件方案允許從一個(gè)磁盤文件或?qū)嵤﹫D3的N樣本延遲301的功能的實(shí)時(shí)延遲單元讀出輸入數(shù)據(jù)。然后將計(jì)算出的濾波值寫入磁盤或其他存儲器,以供后續(xù)使用或檢查。本發(fā)明的軟件方案一般允許容易地修改所保持的用于處理的樣本的個(gè)數(shù)N。這使得用戶能夠觀察到對于特定數(shù)據(jù)集改變這個(gè)參數(shù)的所產(chǎn)生的效果。
如同本領(lǐng)域所公知的,可以采用多種算法用于對當(dāng)前組N個(gè)樣本值進(jìn)行分揀。此外,非常適合于本發(fā)明的硬件實(shí)施的特定算法對于一些軟件實(shí)施例是不適合的。然而,雖然分揀及相關(guān)算法在細(xì)節(jié)上可能不同,但在各個(gè)實(shí)施例中采用這些算法的結(jié)果是大致相同的。
在軟件實(shí)施例中,N樣本延遲單元(或循環(huán)緩沖器)有利地類似于上述硬件實(shí)施。在一個(gè)軟件實(shí)施例中,一個(gè)對循環(huán)緩沖器陣列(cbuf)的索引在每次反復(fù)時(shí)增1,當(dāng)它達(dá)到N時(shí)繞回(清零)。在這個(gè)環(huán)境下,并在一個(gè)新值覆蓋循環(huán)緩沖器中的舊值之前,將舊值暫時(shí)保持在一個(gè)分揀緩沖器陣列(等效于寄存多路復(fù)用器)中并對其進(jìn)行搜索。在分揀緩沖器中只有保存這個(gè)舊值的存儲單元被更新。由于在每次更新之后在分揀緩沖器中只有新值是不按順序的,因此只需要一遍分揀過程就可實(shí)現(xiàn)完全的分揀。如果每次在分揀之前將整個(gè)循環(huán)緩沖器的內(nèi)容復(fù)制到分揀緩沖器中,則分揀過程需要七遍分揀,于是花費(fèi)的時(shí)間長得多。
應(yīng)該明白,雖然在一些硬件方案中難以實(shí)現(xiàn)有利的單遍分揀,但這些硬件實(shí)施例提供了在軟件實(shí)施例中不易實(shí)現(xiàn)的效率。因此,例如,F(xiàn)PGA和其他硬件實(shí)施能夠并行執(zhí)行多個(gè)比較和交換,而這些操作對于軟件實(shí)施例常常證明是困難的或不可能的。
將一個(gè)例示性分揀算法寫成一個(gè)可調(diào)用的例程的形式median_value=sort_filter(j);其中,j是當(dāng)前樣本。軟件有利地包括一個(gè)例程sort_filter(),以及兩個(gè)其他例程-sort_top_down()和sort_bottom_up()。附錄A中顯示的程序打開磁盤文件A\data_file.txt和A\sim_out.txt,從data_file.txt中讀取j的下一個(gè)值,將這個(gè)值傳送給sort_filter(),然后將返回值寫到輸出文件A\sim_out.txt中。
sort_filter()例程在附錄B中給出。從附錄B可以看出,對最初幾個(gè)#定義進(jìn)行聲明,以便于更好地理解代碼,即,SAMPLE_SIZE定義為7。接下來聲明兩個(gè)陣列cbuf[]和sbuf[],分別為循環(huán)緩沖器和分揀緩沖器。它們的大小為保存SAMPLE_SIZE個(gè)值。將這些陣列和對這些陣列的索引-cndx和sndx-聲明為靜態(tài)變量,因此在從sort_filter的一次調(diào)用到下一次時(shí)保持這些值。例程首先將循環(huán)緩沖器索引變量cndx遞增,使其指到下一個(gè)陣列存儲單元。當(dāng)索引達(dá)到SAMPLE_SIZE時(shí)繞回到0。接著,將該存儲單元的舊值保存在old_value中,然后新樣本覆蓋舊樣本。
軟件然后搜索分揀緩沖器,尋找old_value的第一次出現(xiàn)。當(dāng)找到該值時(shí),將其用新值代替,搜索循環(huán)以break語句退出。
最后,例程調(diào)用sort_top_down()和sort_bottom_up()。sort_top_down首先將第一陣列值與第二陣列值進(jìn)行比較,如果需要,將它們進(jìn)行交換,將較大值放入第一存儲單元。然后例程比較第二值和第三值,以此類推,對陣列進(jìn)行下去。sort_top_down將新樣本沿陣列向下移動,以將其正確地放置。同樣,如果需要,sort_bottom_up也可以將新樣本沿陣列向上移動,以將其正確地放置。在這兩個(gè)都調(diào)用了之后,將新樣本正確地放置,以返回sbuf[MEDIAN_VALUE]語句返回中間值。
下面將參考圖5的流程圖進(jìn)一步說明上述例示性軟件實(shí)施例的方面(在附錄B中提供的列表)。
C語言定義SAMPLE_SIZE 保持的數(shù)據(jù)樣本的個(gè)數(shù)。例示的是一個(gè)奇整數(shù)值,例如在實(shí)例列表中用的是7。SBUF_TOP等效于數(shù)0。這允許更易讀的代碼,因?yàn)榉謷彌_器陣列的頂部可以由sbuf[SBUF_TOP]代表。SBUF_BOTM 等效于SAMPLE_SIZE-1。這允許更易讀的代碼,因?yàn)榉謷彌_器陣列的底部可以由sbuf[SBUF_BOTM]代表。MEDIAN_VALUE等效于(SAMPLE_SIZE-1)/2。如果SAMPLE_SIZE為7,則MEDIAN_VALUE為3。
這是存儲陣列中在每次迭代之后作為濾波值輸出的位置。
聲明的變量cbuf[cndx] 循環(huán)緩沖器。保存最后[SAMPLE_SIZE]個(gè)樣本的數(shù)據(jù)陣列。當(dāng)輸入新樣本時(shí),最舊的樣本被覆蓋。將陣列的索引命名為cndx。對于每個(gè)新樣本,cndx遞增1.cndx范圍從0到SAMPLE_SIZE,然后返回0。new_sample 在每次調(diào)用濾波器例程時(shí)通過濾波器例程的最新的數(shù)據(jù)樣本。oldest_value 在循環(huán)緩沖器中由new_sample覆蓋的“最舊”的數(shù)據(jù)值。sbuf[sndx] 分揀緩沖器。與循環(huán)緩沖器保存相同的保持樣本的數(shù)據(jù)陣列,除了這個(gè)陣列是以升序從負(fù)到正排列的。該陣列的索引是sndx。
子例程sort_top_down() 將分揀緩沖器sbuf[]從上向下分揀的子例程。
將較大的正值向下移到他們正確的位置。sort_bottom_up() 將分揀緩沖器sbuf[]從下向上分揀的子例程。
將較大的負(fù)值向上移到他們正確的位置。
在圖5的流程圖中執(zhí)行的步驟的概要1.指向循環(huán)緩沖器中的下一個(gè)存儲單元。(步驟501,502)++cndx;cndx%=SAMPLE_SIZE2.對最舊值進(jìn)行復(fù)制,然后以new_sample取代(步驟505-508)oldest_value=cbuf[cndx];cbuf[cndx]=new_sample;3.找到分揀緩沖器中存儲oldest_value的存儲單元。用new_sample取代(步驟505-508)<pre listing-type="program-listing"><![CDATA[for(sndx=SBUF_TOP),sndx<=SBUF_BOT;sndx++{ If(sbuf[sndx]==oldest_value){ sbuf[sndx]=new_sample;break; } }]]></pre>4.將分揀緩沖器重新分揀sort_top_down();(步驟509和520-526)sort_bottom_up(); (步驟510和530-536)5.輸出濾波值Return sbuf[MEDIAN_VALUE];(步驟515)。
所有落入本發(fā)明的范圍內(nèi)的其他短時(shí)脈沖波形干擾濾波方法和用于實(shí)現(xiàn)這種方法的相關(guān)系統(tǒng)對于本領(lǐng)域普通技術(shù)人員來說是顯而易見的。因此,雖然這里描述了特定的分揀方法和功能,應(yīng)該理解,也可以使用其他分揀方法來根據(jù)樣本值對輸入樣本序列進(jìn)行排序,選擇出一個(gè)或多個(gè)輸出值。雖然系統(tǒng)和方法參數(shù)的特定值、例如N=7用于說明,但這種值對于本發(fā)明的所有實(shí)施例來說不是基本的。在適當(dāng)?shù)那闆r下,用戶可以調(diào)整N的值來適應(yīng)特定數(shù)據(jù)或系統(tǒng)特性或約束。
雖然本發(fā)明的一些例示性實(shí)施例預(yù)期使用FPGA,對于本領(lǐng)域普通技術(shù)人員來說,顯然,在適當(dāng)?shù)那闆r下,可以將特定用途集成電路(ASIC)的部分或全部設(shè)計(jì)為實(shí)現(xiàn)本發(fā)明的實(shí)施例的部分或所有單元。同樣,沒有特定的計(jì)算機(jī)、程序設(shè)計(jì)語言、存儲器配置或外圍設(shè)備(或外圍配置)對于本發(fā)明是必要的。
雖然在處理音頻信號方面部分地顯示了上述例示性實(shí)施例,但本發(fā)明并不限于此。于是,當(dāng)對于部件速度、采樣速率等進(jìn)行本領(lǐng)域普通技術(shù)人員所熟悉的調(diào)整時(shí),可以適應(yīng)對很大范圍的連續(xù)摻雜信號的處理。
雖然已經(jīng)在處理N個(gè)最新樣本的基礎(chǔ)上進(jìn)行了前面的描述,其中N為奇整數(shù),但在適當(dāng)?shù)那闆r下,N可以是不同于奇整數(shù)的其他數(shù)。因此,例如,如果N較大,則選擇位于樣本值的分揀列表的中間的兩個(gè)或多個(gè)樣本值中的一個(gè)是足夠的?;蛘?,可以應(yīng)用一些容易導(dǎo)出的多個(gè)中間值的函數(shù)(例如,數(shù)字平均)。此外,可以根據(jù)存儲樣本的實(shí)際值來調(diào)整選擇。
雖然上面在增加一單個(gè)新樣本和舍棄最舊的單個(gè)前一樣本方面描述了在每個(gè)時(shí)間間隔對存儲樣本的更新,在適當(dāng)?shù)那闆r下,在適當(dāng)調(diào)整的時(shí)間間隔,可以增加不止一個(gè)樣本,并舍棄相同個(gè)數(shù)的最舊樣本。
附錄A調(diào)用sort_filter的主例程<pre listing-type="program-listing"><![CDATA[include<stdio.h>int sort_filter(int new_sample)int j,median_value;FILE*fptr,*foptr;main(void){FILE*fptr,*foptr;fptr=fopen(“a\datafile.txt”,“r”);foptr=fopen(“a\sim_out.txt”,“w”);while(fscanf(fptr,“%d”,&amp;i)?。紼OF){ median_value=sort_fiter(i); fprintf(foptr,“%d\n”,median_value); }}]]></pre>
附錄B<pre listing-type="program-listing"><![CDATA[#defineSAMPLE_SIZE 7/*SAMPLE_SIZE是存儲樣本的個(gè)數(shù)*/#defineSBUF_TOP0/*陣列頂部的索引。sbuf[SBUF_TOP].*/#defineSBUF_BOTM (SAMPLE_SIZE-1) /*這里,=6.*/#defineMEDIAN_VALUE(SAMPLE_SIZE/2) /*這里,=3.(整static int cbuf[SAMPLE_SIZE]; /*聲明循環(huán)和分揀緩沖器*/static Int cbuf[SAMPLE_SIZE];static unsigned char cndx;/*聲明循環(huán)和分揀緩沖器的索引*/Static unsigned char sndx;int sort_filter(int new_sample);int oldest_value;/*復(fù)制最舊值,并以新值取代*/++cndx; /*將循環(huán)緩沖器索引遞增*/cndx%+SAMPLE_SIZE; /*在等于SAMPLE_SIZE時(shí)設(shè)置為零*/oldest_yalue=cbuf[cndx];/*將最舊值保持在“oldest_value.”中*/cbuf[cndx=new_sample; /*用新值改寫循環(huán)緩沖器*//*用新值取代分揀緩沖器中的最舊值的第一次出現(xiàn)*/for(sndx=SBUF_TOP;SNDX<=SBUF_BOTM;sndx++){ if(sbuf[sndx]=oldest_value){ /*找到!*/ sbuf[sndx=new sample;/*用新值改寫舊值*/break;/*退出循環(huán)-完成*/ } }]]></pre>/*因?yàn)榉謷彌_器除了新樣本都已經(jīng)分揀,一次從上到下的分揀和另一次從下到上的分揀就足夠了。
<pre listing-type="program-listing"><![CDATA[ another sort bottom to top is sufficient.*/ sort_top_down(); sort_bottom_up(); return sbuf[MEDIAN_VALUE]; /*返回sbuf[3]中的值*//*=============→ SORT TOP DOWN ←============*/ sort_top_down(){int temp;for(sndx=SBUF_TOP;SNDX<(SBUF_BOTM);sndx++){/*從頂部向下分揀*/if(sbuf[sndx]<sbuf[sndx+1]){temp=sbuf[sndx+1];sbuf[sndx+1]=sbuf[sndx];sbuf[sndx]=temp;}}return(0);}/*===========→ 從下向頂部分揀←===========*/sort_bottom_up(){int temp;for(sndx=SBUF_BOTM;sndx>SBUF_TOP;sndx--){/*從底部向上分揀*/if(sbuf[sndx]<sbuf[sndx-1]){temp=sbuf[sndx];sbuf[sndx]=sbuf[sndx-1];sbuf[sndx-1]=temp;} }return(0); }]]></pre>
權(quán)利要求
1.一種用于處理輸入數(shù)字信號序列的方法,每個(gè)所述輸入數(shù)字信號具有一個(gè)數(shù)字值,所述輸入數(shù)字信號的至少一些所述值摻雜有短時(shí)脈沖波形干擾,所述方法包括下列步驟將一組N個(gè)當(dāng)前輸入數(shù)字信號存儲在一組N個(gè)有序存儲單元中,根據(jù)其相應(yīng)的數(shù)字值分揀所述組N個(gè)當(dāng)前輸入數(shù)字信號,形成所述N個(gè)當(dāng)前信號的一個(gè)分揀列表,以及從所述分揀列表中選擇中間值作為輸出值。
2.如權(quán)利要求1所述的方法,其中,N是一個(gè)奇整數(shù)。
3.如權(quán)利要求1所述的方法,還包括下列步驟從所述組刪去最舊的M個(gè)輸入數(shù)字信號,將M個(gè)新輸入數(shù)字信號增加到所述組,從而產(chǎn)生一個(gè)更新組的N個(gè)當(dāng)前輸入數(shù)字信號,以及重復(fù)權(quán)利要求1的所述步驟,以產(chǎn)生一個(gè)輸出值。
4.如權(quán)利要求3所述的方法,其中,M=1,所述輸入數(shù)字信號以周期t秒周期地出現(xiàn),對于連續(xù)的t秒時(shí)間間隔重復(fù)地完成所述更新。
5.如權(quán)利要求1所述的方法,其中,所述分揀步驟通過執(zhí)行所述存儲的輸入數(shù)字信號的一序列成對地比較來完成。
6.如權(quán)利要求5所述的方法,其中,所述有序存儲單元以較高和較低關(guān)系排序,當(dāng)信號彼此具有一預(yù)定關(guān)系時(shí),所述成對比較導(dǎo)致存儲單元內(nèi)容的交換。
7.如權(quán)利要求6所述的方法,其中,所述預(yù)定關(guān)系為在被比較的一對存儲單元的較低單元中出現(xiàn)較大正值。
8.如權(quán)利要求4所述的方法,其中,對于每個(gè)間隔,通過從前一間隔保持剩余存儲的數(shù)據(jù)信號的有序關(guān)系、并以單遍分揀以所述增加的輸入數(shù)據(jù)信號分揀所述剩余數(shù)據(jù)信號來執(zhí)行所述更新。
9.一種用于處理輸入數(shù)字信號序列的系統(tǒng),每個(gè)所述輸入數(shù)字信號具有一個(gè)數(shù)字值,所述輸入數(shù)字信號的至少一些所述值摻雜有短時(shí)脈沖波形干擾,所述系統(tǒng)包括將一組N個(gè)當(dāng)前輸入數(shù)字信號存儲在一組N個(gè)有序存儲單元中的裝置,根據(jù)其相應(yīng)的數(shù)字值分揀所述組N個(gè)當(dāng)前輸入數(shù)字信號,形成所述N個(gè)當(dāng)前信號的一個(gè)分揀列表的裝置,以及從所述分揀列表中選擇中間值作為輸出值的裝置。
10.如權(quán)利要求9所述的系統(tǒng),其中,N是一個(gè)奇整數(shù)。
11.如權(quán)利要求10所述的系統(tǒng),所述輸入數(shù)字信號以周期t秒周期地出現(xiàn),所述系統(tǒng)還包括從所述組刪去最舊的M個(gè)輸入數(shù)字信號的裝置,將M個(gè)新輸入數(shù)字信號增加到所述組存儲數(shù)字信號、從而產(chǎn)生一個(gè)更新組的N個(gè)當(dāng)前輸入數(shù)字信號、用于在后續(xù)的t秒時(shí)間間隔內(nèi)處理的裝置。
12.如權(quán)利要求11所述的系統(tǒng),其中,M=1。
13.如權(quán)利要求9所述的系統(tǒng),其中,所述分揀裝置包括執(zhí)行所述存儲的輸入數(shù)字信號的一序列成對比較的裝置。
14.如權(quán)利要求13所述的系統(tǒng),其中,所述有序存儲單元以較高和較低關(guān)系排序,所述執(zhí)行所述成對比較的裝置包括當(dāng)所述存儲單元中的信號彼此具有一預(yù)定關(guān)系時(shí)執(zhí)行存儲單元內(nèi)容的交換的裝置。
15.如權(quán)利要求14所述的系統(tǒng),其中,所述執(zhí)行所述內(nèi)容交換的裝置包括當(dāng)發(fā)現(xiàn)被比較的一對存儲單元中的較低單元中存儲著比被比較的所述對存儲單元中的較高單元中存儲的值更大的值時(shí)執(zhí)行所述內(nèi)容交換的裝置。
全文摘要
一個(gè)短時(shí)脈沖波形干擾濾波器處理奇數(shù)N個(gè)潛在地?fù)诫s的采樣數(shù)據(jù)值的重疊時(shí)間序列,以確定在每個(gè)時(shí)間間隔t
文檔編號H03H17/02GK1249567SQ99118378
公開日2000年4月5日 申請日期1999年9月1日 優(yōu)先權(quán)日1998年9月3日
發(fā)明者羅伯特·埃沃勒斯特·約翰森 申請人:朗迅科技公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
宝清县| 涪陵区| 皋兰县| 赣州市| 五台县| 林甸县| 布拖县| 怀远县| 灌南县| 宁河县| 庄浪县| 镶黄旗| 甘德县| 巴中市| 兴化市| 新密市| 长沙市| 宜川县| 尼木县| 花莲县| 额济纳旗| 天长市| 石嘴山市| 景宁| 孟州市| 赣榆县| 辽宁省| 赫章县| 永川市| 疏附县| 齐齐哈尔市| 陆良县| 海城市| 抚顺县| 嘉荫县| 繁昌县| 贡山| 东明县| 徐水县| 九台市| 沾益县|