專利名稱::異步采樣率轉換器的制作方法
技術領域:
:本發明涉及數字樣本的異步速率轉換。技術背景在通常實踐中,模擬信號的各樣本在各樣本點采集,這里各樣本的數量n確定數字樣本的精度。各樣本的數量越高,越能夠采集到模擬信號的更精確的讀數。因此,采集的各樣本的頻率遠高于進入信號的頻率。然而,當試圖預測信號在一點處的精確值時,產生誤差。例如采樣數據的電路中的延遲,能夠引起讀取該信號的誤差。因此,本領域中存在對用于更精確地采樣信號、校正通常的(common)偽信號的系統和方法的需求。
發明內容本技術的一個方面是一種執行樣本序列的輸入速率到輸出速率的采樣率轉換。其中輸出速率不同于輸入速率的任何整數倍。執行采樣率轉換包括至少用數字環(loop)產生的定時(timing)誤差信息校正樣本序列版本。一些實施例中用定時誤差信息校正樣本序列版本的幅度。數字環被鎖定在是輸入速率倍數的第一速率。數字環在是輸出速率倍數的第二速率計時。第二速率不同于第一速率的任何整數倍。在各種實施例中,第一速率是輸入速率的倍數,使得輸入速率的倍數為一或大于一的整數。如果是一倍,則該樣本序列的版本等于輸入速率的樣本版本。在各種實施例中,第二速率是輸出速率的倍數,使得輸入速率的倍數為一或大于一的整數。如果是一倍,則第二速率等于輸出速率。一些實施例通過在第二速率計時(clocking)產生樣本序列版本。該樣本序列包括由于在第二速率上而不是輸入速率的任何整數倍上產生時鐘信號而產生的定時誤差。6一些實施例用運算電路,以調整到鎖定數字環的第一速率的溢出頻率產生模溢出。每個模溢出指示由運算電路產生的第一速率和第二速率之間的定時誤差信息。脈動進位加法器(ripplecarryadder)是這樣的運算電路的示例。其他示例包括其他加法電路以及減法電路。另外的示例為并行超前進位和單循環(one-cycle)查表法。運算電路應當產生輸出狀態的有序序列(orderedset)。相對于有限有序序列的順序不單調的溢出或輸出,當經過充分地長于與第二速率(是樣本序列輸出速率的倍數)相關的時間間隔時間段的評估時,被調整以用與第一速率(是樣本序列輸入速率的倍數)相同的頻率發生。(經過該相對長的時間間隔)已經達到這種(頻率的)相等時,在溢出周期運算電路的狀態變量編碼第一速率相對于第二速率的定時誤差。在一些實施例中,在輸入速率的樣本序列來自S/PDIF(索尼/菲利普數字接口格式)信號。在該實施例中,輸入速率是S/PDIF信號的字時鐘(wordclock),并且采樣串行各元件是從S/PDIF串行數據流中提取的并行數據。一般地,SPDIF信號自身是雙相(bi-phase)編碼的串行數據傳輸協議,并且如果第一雙相被解碼,則在其中編碼的數據變為并行,然后以SPIDF信號的嵌入的字時鐘的速率提供給各實施例。各種實施例具有如下的各種性能特性的一個或多個。采樣率轉換具有主要由輸入量化噪聲限定的動態范圍。采樣率轉換具有主要由輸入量化噪聲、過采樣有限脈沖響應濾波器的圖像抑制、以及下采樣有限脈沖響應濾波器的圖像抑制限定的動態范圍。采樣率轉換具有主要由輸出速率限定的最大下采樣比率。采樣率轉換具有主要由描繪電路的邏輯合成的速率限定的最大過采樣比率。本技術的另一方面是一種執行輸入速率到輸出速率的樣本序列的采樣率轉換的電路。輸出速率不同于輸入速率的任何整數倍。所述電路包括鎖定在輸入速率的倍數的第一速率的數字環。該數字環在輸出速率的倍數的第二速率計時。第二速率不同于第一速率的任何整數倍。數字環由頻率檢測和低通濾波器電路、以及可變振蕩器電路形成。該數字環產生定時誤差信息。該電路還包括用該定時誤差信息校正樣本序列版本的電路。該數字環中的頻率檢測的示例為平均頻率或長期頻率,其等效于零平均相位誤差,使得相位檢測為頻率^^測的示例。各種實施例包括執行如上所述的各方法的電路,如通過在第二速率計時產生樣本序列的過采樣版本的電路(所述過采樣版本包括由于在第二速率而不是在輸入速率的任何整數倍計時產生的定時誤差)、用定時誤差信息校正樣本序列的過采樣版本的幅度的電路。在各種實施例中,數字環產生在輸入速率和第二速率之間的定時誤差信息、或第一速率和第二速率之間的定時誤差信息。在一些實施例中,可變振蕩器電路包括有限模運算電路。在一些實施例中,可變振蕩器電路包括進位加法器電路,其包括高有效位電路的和耦合到高有效位電路的低有效位電路。低有效位電路產生溢出。該溢出指示由進位加法器電路產生的輸入速率和第二速率、或第一速率和第二速率之間的定時誤差信息。一些實施例還包括與該電路集成的輸入。該輸入以輸入速率從S/PDIF(索尼/菲利普數字接口格式)信號接收樣本序列。另一方面是一種實現執行本技術的算法的計算機程序。圖1以及圖2A-2K圖示各樣本輸入信號以及相應的各樣本點。圖1A圖示"異步采樣率"轉換問題。圖1B圖示"零階保持(zeroorderhold)"功能。圖3圖示數字鎖相環。圖4是圖示鎖住頻率的數字環的方法的流程圖。圖5是補償信號的定時圖。圖6圖示說明誤差因素的圖。圖7是顯示具有20dB/decade斜率的誤差頻率的圖。圖8是顯示具有40dB/decade斜率的誤差頻率的圖。圖9是圖示由再次采樣引起的誤差圖。圖IO顯示了模運算加法器。圖11和12顯示基于定時誤差信息的幅度校正。圖13顯示具有過采樣和下采樣的實施例的方塊圖。圖14顯示具有不同頻率鎖定和計時產生定時誤差信息的環的數字鎖相環。圖15顯示簡單電壓控制振蕩器。圖16顯示由脈動(ripple)進位加法器實現的電壓控制振蕩器。圖17A是沒有使用如在此描述的數字環鎖定的電路的RTL仿真圖。圖17B是圖13的電路的RTL仿真圖。圖18顯示使用過采樣但不用下采樣的實施例的方塊圖。圖19顯示使用下采樣但不用過采樣的實施例的方塊圖。圖21顯示用于基于定時誤差信息的幅度校正的公式。具體實施方式在系統內確定誤差中,保留恒定頻率是有用的。本技術貫注于ASRC的新方法,其中不需要模擬PLL產生用于ASRC鎖定到其的過采樣輸入時鐘。通過使用根據本技術的電路,可以估計過采樣輸入時鐘將已在的位置而根本不必實際產生它。使用本技術,不需要具有模擬鎖相環(PLL)來得到過采樣輸入數據將相對于用于采樣異步輸入的點擊(clickdown)的信息。本技術可用于模擬PLL中,以創建輸入樣本的倍數率并在模擬PLL輸出上對其轉換。提供了電路來通過時域插值的方式校正采樣率,該電路具有第一電路回路,具有第一上/下計數器,配置其以接收輸入信號和反饋信號;以及加法器,配置其以接收來自上/下計數器的輸出信號,并且向上/下計數器輸出進位輸出作為反饋信號;以及第二電路回路,配置其以傳輸來自加法器的和輸出到調制器,并且將來自調制器的輸出信號反饋到加法器的輸入。模擬信號是連續變化量;其一直具有值并且具有連續的幅度。通常,模擬信號的數字近似是通過產生量化數值(具有有限分辨率的數值)序列來進行,每一個量化數值都以規則的時間間隔,最近似模擬量。例如,由CD播放器的音頻信號的數字化,通過在44.1kHz的常規比率(regularratio)以所謂"16位分辨率"采集各樣本完成。"16位分辨率"意味著幅度的數字表示超過16個二進制位,并且因此精確到大約1/65536或大約16ppm(百萬分之)。另一示例為記錄在DVD盤上的數字音頻。在該情況中,幅度的各樣本可被分辨到24位或大約0.06ppm,并且采集這些樣本的常規比率是在48kHz。因此,在音頻消費者應用中,我們通常使用至少兩種不同的采樣率(44.1kHz和48kHz),以及兩種不同的幅度分辨率(16位和24位)。圖1A顯示示例這里信號1在44.1kHz采樣,并得到用"x"標記的點序列。信號2在較高的比率(48kHz)采樣,并且得到用"o"標記的點序列。在系統中存在兩種采樣率可能不方便考慮這樣的情形一在48kHz數字音頻數據流從DVD源到達,而在44.1kHz的第二流從ADC和麥克風源到達(這種情形發生在當"卡拉ok"播放器使用DVD作為背景樂器,并且ADC編碼歌唱者時)。應該如何混合這兩種信號并通過相同的音頻輸出裝置輸出?這是個問題,因為各輸入樣本在不同的時間到達-如果48kHz源被用來運行數字信號處理器(或更準確地說,如果DSP被配置運行在48kHz的各樣本上),則44.1kHz信號的各樣本在48kHz的各樣本之間到達-它們必須被延遲,否則近似到48kHz的常規比率以便一起處理。這是"異步采樣率"轉換問題,并且本公開內容教導,與一些選擇的時鐘相關的、異步到達的信號的各樣本,如何能夠被近似為在該時鐘的樣本各異步樣本在給定的時鐘域中轉換為各同步樣本,該給定的時鐘域仍然準確地表示該信號,就像該信號在原有的(現在相對新時鐘異步)域中被采樣一樣。在本技術中,選擇的時鐘率能夠在實質上比輸入采樣率高的速率。圖IB顯示在44.1kHz的各樣本序列,如何可以被近似到更高的、正在執行"零階保持"功能的時鐘率。"零階保持"功能僅僅是重復通過較高速時鐘看到的最后樣本。注意到在圖1B中,在44.1kHz的各樣本通常沒有與在較高時鐘率的任一樣本同時降低。各較高時鐘率樣本是在44.1kHz域中最后見到的樣本的重復。因此存在誤差如圖2D中所示-在較高時鐘域中的第一個改變的樣本之前,輸入樣本輕微改變。參照圖1,圖示運行在頻率"f'的樣本模擬輸入信號。在通常實踐中,信號的各樣本在各樣本點采集,這里各樣本的數量n確定樣本的精度。各樣本的數量越高,越能夠采集到模擬信號的更精確的讀數。因此,采集的各樣本的頻率遠高于進入信號的頻率。例如參照圖2A,如果進入信號202運行在44.1kHz,則各數據樣本點204可以在27MHz采集。然而,當試圖預測信號在一點處的精確值時,產生誤差。例如采樣數據的電路中的延遲,能夠引起讀取該信號的誤差。樣本點206,例如與之前的各樣本一起被連續采集。然而樣本208在轉變點,在此情形下一樣本210在途中(halfway)點讀取,然后接下來讀取樣本212,接下來是樣本點214和216。繼續,采集樣本點218,然后樣本點220在另一個轉變點。傳統的電^各讀取點222,接下來是224和226。然而不同于理想情形的實際各點,是角落點228和230。再次,電路中的延遲引起偽信號(artifact),如那些將產生的,以及對于要在各誤差中間讀取的各信號。在傳統的系統中,輸入系統將過采樣輸入以精確定位(pi叩oint)f(in),輸入速率。然而這種方法是不準確的,并且需要昂貴的電路來采集更準確的樣本。參照圖2B,比較了各輸入點和各輸出時鐘點的圖示。如可以看到的,各輸出時鐘點發生在對應的各輸入點之后。因此,它們在不同的頻率。參照圖2C,顯示數字化信號的圖示。其中各x對應在輸入時鐘的實際輸入。各o對應正確的各輸出時鐘點。理想地,o將對應各輸出時鐘信號點。在使用各同步時鐘的各傳統系統中,這是不可能的,并且產生偽信號。因此,本領域中存在對用于更精確地采樣信號、校正通常的偽信號的系統和方法的需求。如將看到的,本技術以良好的方式實現了這些。本技術貫注于用于通過時域插值、執行異步采樣率^f交正的信號處理元件。該信號接收為輸入,并且被處理以產生由不同的和相對較短的時間間隔分隔的數字數量的輸出流。該處理操作而不將偽信號或誤差引入到新產生的信號流中,不管輸入數據流和輸出數據流之間的時間間隔不同這一事實,而且在各自的頻率中可能沒有任何共同因素。根據本技術,輸出的大多數樣本是輸入樣本的簡單復制。然而,檢測到輸入信號的改變時,對于這樣的一個樣本,輸出信號被設定為輸入的舊值和輸出的新值之間的中間值。在產生該單個中間樣本后,輸出再次復制現在新輸入的樣本。因此,所有定時和采樣誤差的校正,都通過產生該單個中間樣本來實現,該單個中間樣本產生在每次檢測到輸入信號已改變時,所述輸入信號運行在較低速率。將觀察插值的數據點已經插入到輸出數據流中,以提供校正。中間樣本的值從兩個輸出樣本點之間的輸入樣本點的相對定時確定,所述兩個輸出樣本點包圍輸入樣本。輸出樣本點之間的、輸入樣本點的精確位置的確定,通過完全在輸出采樣率的邏輯操作確定。也就是說,不管沒有邏輯操作比輸出采樣率更快的事實,本技術仍然提供準確確定輸入樣本時間的裝置。通常,本技術貫注于具有三個基本特性的系統和方法更快輸出時鐘、確定輸入時鐘改變的點、并且執行時域插值。目的在于解決輸入和輸出數據中的不同。在一個實施例中,更快輸出時鐘用于更好地采集各輸入信號點。在實踐中,輸入時鐘可在各輸出時鐘之間降低,并且每個輸入時鐘產生新的樣本點。在每個輸出時鐘周期可能簡單地采樣輸入。然而,重新得到的(retrieved)輸入時鐘信號值仍然可能丟失。因此,從圖像角度,參照圖2D,陰影面積234是丟失的輸入信號部分。因此,系統將需要等待下一個時鐘周期。這將是傳統系統中的情形。相反,根據本技術,忽略第一次通過,并且將丟失第一周期。在下一步驟中,如圖2E中圖示的,產生出現在輸入信號的高點和地點之間的中間點。因此,點238是輸入信號之前的點,點240是得到的中間點,而點242是新輸入點。根據本技術,圖2E中所示的面積236,是具有得到的中間值的新信號。得到該值的方式下面將進一步討論。因此,如果我們僅僅利用當存在輸入時鐘時所看到的輸入樣本,將產生誤差。僅在上一個時鐘周期之后,輸入將不會改變。輸入的陰影面積被丟失。然而,輸出能夠被延遲任何數量的時鐘周期。這將不會扭曲輸出。因此,輸入能夠被采樣,并且延遲能夠產生一個或多個時鐘周期,如上面的示例。這允許系統插入舊值和新值之間的點。這樣的值在一點插入,使得面積相同。輸出僅僅曾(ever)在輸出周期上改變。系統通過使用中間點,能夠補償輸入沒有在時鐘改變的事實。在最后的結果中,各面積,如上面的面積234和236保持相同。這通過使用如圖3中圖示的鎖相環在一個實施例中實現。參照圖3,圖示了本技術的一個實施例,其提供一種系統,被配置來通過時域插值來精確定位頻率。提供接收輸入信號302的鎖相環300,該輸入信號302在同步輸入信號的各周期的上/下(U/D)計數器控制304接收。上/下計數器輸出信號306(在該特定示例中為IO位)到模累加器308。累加器308形成電路在其中運行的兩個反饋回路的部分。累加器輸出信號309(在該示例中也為IO位)到調制器310,該調制器310根據時鐘312(在該示例中為27MHz)運行,并且產生通過反饋回路314傳輸的反饋信號、以及相應的輸出信號316。模累加器輸出信號320,其是作為44.1kHz進位輸出(carry-out)信號輸出的進位輸出脈沖,并且通過反饋回路322反饋到上/下計數器304的下輸入端。輸入信號302饋入上/下計數器304的上輸入端。在運行中,運行在第一速率例如44.1kHz的輸入信號,輸入到上/下計數器的上輸入端中。上/下計數器的輸出傳輸到加法器的一個輸入。模累加器的輸出被輸入到調制器中,其在第二速率例如27MHz計時,并且調制器的輸出產生電路的第一輸出"M",還作為加法器的第二輸入反饋。加法器具有反饋到上/下計數器的"下"輸入端的進位輸出。在從加法器溢出時,進位輸出重置上/下計數器,重置輸出信號(第二輸出)的前沿。加法器將計數器的輸出(例如10位輸出)加至來自"M"的10位輸出信號。因此,釆樣率的點由公式X『Xn+(M/N)(XN+1—XN)確定,其中M/N為定時誤差。輸入樣本時間的確定如下進行。首先,模累加器308被配置來在輸出時鐘率312,將輸入313加到運行總數(runningtotal)。累加器308可以被配置作為以有限整數寬度運行的數字加法器和寄存器,或被配置來累加遞增值的其它已知加法裝置。運行總數最后將溢出以產生輸出脈沖320,因為加法器為有限寬度,并且最終將超過最大值并溢出。根據本技術,比較來自模累加器308的各溢出320的頻率速率和各輸入樣本305的到達速率(rateofarrival)。如果各輸入樣本的到達速率超過累加器的各溢出的速率,則增加加法器313的輸入,該輸入是每個輸出周期相加的量。相反,如果各輸入樣本的到達速率低于來自計數器的各溢出的速率,則減少加法器的輸入。因此,存在控制回路314,其中加法器的輸入將固定一個值,使得各速率相等。參照圖4,圖示了總體描述電路300的運行的流程圖400。在步驟402,接收運行在輸入速率的輸入信號。在步驟404中,在上/下計數器中調用向上計數。在步驟406中,確定是否有進位輸出脈沖。如果沒有進位輸出,在步驟408中過程恢復計數。一旦出現進位輸出,過程轉移到步驟410,在這里上/下計數器被重置為下計數,圖5中的基線值B。計數器中的初始值為零(圖3中318為計數器輸出),因此加法器從不溢出。加法器在加零。然而,最終輸入信號增加計數器。現在,加法器最終一定溢出。此外,當加法器的各溢出的速率等于各輸入時鐘的速率時,計數器將只到達平衡。例如,如果輸入時鐘率為48kHz,輸出時鐘率為lMHz以及總線寬度為N=20,則當數值為以下時計數器停止移動44e3/lE6x220=46137這是因為在該數值,加法器溢出速率為46137/220xlMHz=44e3。因此,存在對計數器的恰好多如"向下計數"的"向上計數"。觀察到當描述的系統鎖住時,當計數器中的數值實質上已經固定時,輸入時鐘到達時,計數器中的數值表示輸入位置的誤差。更特別地,當進位輸出發生時,系統查看寄存器中的數值。其剛超出總范圍(ftillscale)。而且,這也是為什么曾有溢出的原因。參照圖2F,數值(A)(計數器值)剛剛加到寄存器中的數值。因此,現在寄存器中的數值是比A少的某數值。圖2F圖示寄存器中的數值,顯示FS。每次在某點它將(A)加到總數,它超出FS為B,B必須小于A。在該實施例中,計數器中數值為N,而寄存器溢出量為M。參照圖2G,觀察到M/N的數量為采樣時間誤差。這還將在圖2H中進一步說明。因此,這是系統能夠知道輸入時鐘點位于哪里的情形,其考慮(lookat)上面討論的以及圖3中圖示的回路中的M/N。參照圖21,圖示了中間樣本由舊樣本P和舊樣本Q得到。中間樣本為S=P+M/N(Q-P)。再次,系統現在能夠知道輸入時鐘位置在哪里,并且能從這些值中得出中間點S。系統插入單個樣本到輸出流中。它在上一個輸入樣本和下一個輸入樣本中間。其通過鎖住輸入和輸出時鐘的數字查看來計算。"M"為回路寄存器溢出的量,而"N"為回路計數器中的數值。中間樣本為S=P+M/N(Q-P)。本技術采用觀察輸入樣本的位置可以由剛溢出后累加器中預設的剩余數值決定。在其溢出的量與相對時鐘的時間信號的位置成比例。特別是,檢測到模累加器的溢出時,剩余值被認為與在輸出速率的各樣本之間的、輸入樣本速率的相對位置成比例,所述剩余值是在有限寬度累加器中剩余的數量。因此,位置被確定,并且中間樣本可以利用該確定產生,而不用任何邏輯操作任何快于輸出采樣率時鐘。參照圖5,圖示了補償信號的定時圖。在運行中,過程的整個周期(overcycle)是重復性的,在該示例中為C1-C4,其每4個周期重復。在圖示的特定示例中,存在四個通道。本領域的技術人員將會理解,如可能期望特定的應用時,可以存在更多或更少的通道。每個通道的持續時間通過用模加法器時鐘頻率312除以信號頻率確定,如在該示例中27MHz/44.1kHz=612.25。因此,每個Cl-C4基本上相等。累加器在每個步驟,跨越時間跨度N,以增量累加大小M。一旦模累加器以超過最大極限L的量溢出,則電路重置回最小基線B。根據本技術,每個階段的溢出量Ml-M4,被用來確定進入信號的轉變的更準確的點。觀察到該值隨時間改變并且甚至可能減少,如圖5中所示的示例。實際上,通過每612.25ms設置各樣本點,誤差減少。面積定義補償面積。更具體的是,參照圖6,A,是輸入的面積,并且A2是關于中間點的面積。每個面積由各小的面積才羊本組成,并且各面積的和一樣。參照圖2J,輸入信號面積由來自輸入的各5Ai的和組成,并且輸出信號面積由來自輸出信號的和的各5Ai組成。然而,各面積的重心不同,從圖2J中所示的各面積樣本看是明顯的。參照圖2K,可以得到數學解釋。如果i(x)是輸入信號,并且x是自間隔的起點的距離,并且o(x)是輸出信號。安排各間隔使得滿足圖21(A)的等式。曲線下的面積相同,然而,遵循圖21(B)的等式。該表達式是函數的第一時刻(moment)的重心。他們在各分開的面積不匹配。然而根據本技術,利用兩個中間點,第一時刻能夠如圖21(C)和(D)中的等式匹配。因此,每個額外的匹配的時刻增加進行的近似的階。參照圖7,在頻域中如果各面積匹配,則誤差頻率以20dB/decade降低。此外,參照圖8,如果每個面積的各時刻匹配,則誤差頻率以40dB/decade降低。因此,本技術提供一種系統,其能夠具有n階時域異步信號突變(rage)轉換器(ASRC)積分器。這通過使用數字鎖相環以發現實際輸入改變來達到。通過使用各中間樣本,消除了任何的高階頻率誤差。下面是本技術的另一解釋。在大多數應用中用數字數據流替換模擬信號。數字數據流是在特定時鐘速率的一系列量化樣本。許多系統特別是音頻系統需要處理在不同數據率的數據一個普遍示例為來自某些設備的每秒44.1k采樣和在其他設備中每秒48k采樣的音頻數據。如果數據率能夠改變(例如如果在44.1ks/s的數據流能夠被轉換為48ks/s),則能夠使用在固定采樣率的相同后(post)處理系統。不相關的各時鐘速率之間的釆樣率轉換的問題,通過使用異步采樣率轉換器(ASRC或簡單SRC)解決。這里描述的SRC通過將異步輸入流過采樣到輸出時鐘域的倍數,然后在輸出時鐘域中子采樣來操作。我們將使用44.1k到48k示例來描述該SRC的操作。使用了以輸出時鐘速率倍數操作的邏輯-在該示例中為256*48k=12.288MHz。輸入樣本以與該時鐘不相關的速率改變,但是我們通過以44.1k將輸入樣本到12.288MHz時鐘域來開始處理。這個筒單將輸入數據再采樣到輸出時鐘的處理引入失真,因為樣本的定時選擇沒有保存。該失真歸因于輸入改變時(在輸出還沒有保存數據改變的精確時間的點)引起的誤差。該時間誤差在44.1kHz/12.288MHz的速率。圖9顯示在輸出時鐘和引入的誤差之間的采樣改變。陰影區域901表示誤差。理論上,如果我們可以15發現該誤差,則我們可以對輸出信號作出一些補償。僅使用在12.288MHz速率的邏輯操作可以發現該誤差。我們通過構建在12.288MHz操作的數字PLL,發現輸入樣本實際已經改變的精確時間點。這利用如圖10中所示的模運算加法器完成(具有有限寬度、忽略溢出的加法器)。調整輸入數量直到輸出溢出事件的速率與輸入時鐘率相同。注意到數字環的輸出是同步的,即在12.288MHz域;輸入速率異步,但是通過上/下計數器的操作平均速率被調整到相同。這將創建數字鎖頻環。加法器的溢出"co"現在鎖頻到12.288MHz時鐘域的輸入時鐘。我們觀察到,如果在溢出"co"出現時檢查到加法器"和,,輸出總線的內容,則該和輸出實際上正編碼異步輸入改變出現的精確點。特別地,如果計算了數量"m=sum/inc,,,其中"inc"是上/下計數器的內容,則"m"為位于12.288MHz時鐘域內的輸入時鐘時間的比率。例如,如果m-1/4,則輸入異步時鐘將實際上已經在兩個連續12.288MHz時鐘點之間改變了1/4路徑(way),同樣地,如果m=1/2,則輸入時鐘將實際上已經在兩個12,288MHz脈沖之間改變1/2路徑。我們已經導出輸入樣本已經改變的精確點而不需要任何邏輯,除了以輸出時鐘頻率的倍數操作以在與用于DPLL的總線寬度成比例的精度之內。現在我們具有校正輸出數據流需要的所有信息。通過考慮圖9所示的陰影區域校正了輸出樣本。該區域表示輸出數據流中的誤差。該誤差能夠校正到任意階轉換的性能涉及校正的階,并且還涉及輸入數據率和輸出數據率的比率。在時域中的一階或線性插值如下所示完成。DPLL被用于計算輸入數據流相對輸出時鐘頻率12.288MHz已經改變的位置。從這點,我們能夠計算時間的誤差,然后改變誤差樣本的幅度以提供一階校正。該校正在圖11和12中圖形地顯示。時間的誤差被轉換成與一階匹配的幅度的誤差。參考圖ll,"dy"表示輸入樣本的幅度的改變。"dx"表示輸出時鐘的頻率的周期(period),即1/12.288MHz。"dw"表示異步輸入改變時和輸出時鐘頻率已經發現該改變時的時間差。參考圖12,"dh"是修改樣本使得誤差匹配l"階的總量。圖11中的灰色區域可以被看作是"權重(weight)",我們必須在幅度誤差中創建相同的"權重",如圖12中灰色區域所示。該計算式為dw-dy=error—in—time=error—in—amplitude=dxdh從DPLL中描述為"m"的數值在此公式中表示"dw",并且因為DPLL在12.288MHz速率計時,所以"dx"等于1。由于兩個輸入樣本之間的差,"dy"容易計算。從該信息,能夠完成樣簡單計算以確定"dh"值,即dh=minput—difference如果新的輸入樣本被改變為"dh",則誤差將被校正到一階;通過使得各誤差的"權重"相同,我們已經完成對12.288MHz時鐘域中的理想輸出流的r階近似。在對該單個暫時樣本的該調整之后,我們過濾該數據到尼查斯特(Nyquist)輸出速率,并以該輸出速率子采樣該數據,因此完成SRC轉換。我們已經在每個輸入樣本使用單獨的時鐘域插值點來完成該整個過程。通過將該思路擴展到對于共同點不僅匹配"權重"還匹配"時刻",該近似可以增長到二階或更高階。在增加計算插值點的復雜性的開支的基礎上擴展到多階是可能的。在輸入到輸出采樣率的速率低時,出現最優性能,這能夠通過在傳遞到SRC之前,首先使用輸入時鐘的倍數來過采樣輸入數據流實現,盡管其不是必需的。如果輸入纟皮64倍過采樣(64*44.1kHz=2.8224MHz)、然后傳遞到以頻率(256*48kHz=12.288MHz)運行的SRC,則在轉換44.1kHz到48kHz音質(tone)時的性能好于180dB。圖13顯示SRC的方塊水平圖,以及圖17B顯示以32位精度運行的RTL仿真的輸出。顯示了最壞情形的結果(其在最高信號頻率20kHz出現)。下面是本技術的另一描述,也稱為具有輸入信號的虛擬上轉換的ASRC。在之前的ASRC中,發現如果我們有在44.1kHz的輸入信號并想要轉換成48kHz。如果我們可以實際上過采樣在44.1kHz的輸入數據上到某個速率,比如64*44kHz,然后將其轉換到在比如256*48kHz的過采樣輸出速率,然后驟減(decimate)降回48kHz,則大大地改善了性能。這樣做需要一些濾波以及計時信號,但結果是非常好的。為了顯示其工作如何好,見下面的示例。圖17A顯示用2""階ASRC將44.1kHz采樣率直接轉換到256*48kHz,然后驟減到48kHz。圖17B顯示被轉換的完全相同的信號,但是這次過采樣到64*44.1kHz,然后轉換到256*48kHz域,然后驟減降到48kHz。通過比較圖17A和17B,從在試圖轉換采樣率之前過采樣輸入信號,能夠看到在運行ASRC之前首先過采樣輸入數據到更高速率的巨大性能好處。圖17A顯示增加的尖峰,其是時鐘域轉換引起的誤差。圖17B區域中在20kHz和28kHz的尖峰,表示輸入信號和48kHz的輸出采樣率-輸入信號在20kHz。之前的ASRC技術需要經由模擬PLL產生64*44.1kHz。本實施例包括具有輸入信號的虛擬上轉換的ARSC,移除了對模擬PLL產生過采樣輸入時鐘用于ASRC鎖定的需要。該電路能夠估計過采樣輸入時鐘將已在的位置而根本無需實際產生它,因此"具有輸入信號虛擬上轉換的ASRC"。沒有實際的輸入過采樣時鐘用于ASRC鎖定,然而我們能夠導出應該已在的位置的定時并校正輸出數據流,就像我們實際上具有該時鐘。圖13顯示釆樣率轉換的該技術。創建ASRC的數字邏輯電路、和過采樣然后驟減所需要的所有濾波,現在能夠在輸出時鐘域完成!現在ASRC使用數字PLL來鎖定到44.1kHz,但是然后創建過采樣計時(64*44.1kHz)。因為這些脈沖實際上由256*48kHz時鐘產生,因此這些脈沖的定時不正確。該新的電路將鎖定到44.1kHz并創建一些相位信息,其實際上告訴采樣率轉換器每個過采樣的脈沖離"虛擬"過采樣時鐘的多遠,就像該數字PLL實際上正鎖定在由模擬PLL產生的精確的64*44.1kHz的時鐘。因此這去掉了在進入ASRC之前產生64*44.1kHz的需要,因為它能夠實際上指出該時鐘的定時"將"已在的位置。這意味著該芯片相對易于制造,因為在整個采樣率轉換器中只存在1個時鐘域。本技術由于這樣的事實是可能的,該事實為數字PLL現在能夠被鎖定到某個頻率(即44.1kHz)、并實際上創建描述在某個過采樣率(即64*44.1kHz)的時鐘沿將實際在哪里的定時信息。然后該定時信息;故傳遞到ASRC,并且ASRC使用其來調整輸出數據流以校正該定時誤差。因為我們具有我們的"虛擬"過采樣時鐘的相對定時的信息、而實際上不需要該時鐘,所以我們然后能夠使用輸出時鐘域來計時輸入過釆樣電路,該輸入過采樣電路被^^定在過采樣輸入時鐘域上,然后使用ASRC來修改數據以校正不匹配的定時。圖14顯示如何制造數字PLL,其可以創建"虛擬"過采樣時鐘(標記為"P—OS")以及定時信息(其從"M"和"N—OS"導出)。圖14中的電路描述如何產生具有輸出的DPLL,該輸出是參考頻率(輸入時鐘)的倍數。數據"N_OS"和"N"從DPLL中提取以便恢復某些瞬時相位信息。理論上,通過產生相位對齊的并且能夠是參考頻率的任何倍數、或那種方式的任何片斷的輸出,任何電路執行DPLL功能。例如,以任何頻率獲取參考頻率Fl、并能夠產生輸出頻率X*F1(其中X是某個實數)并相位對齊(參考F1的上升和下降沿和輸出X*F1的每X個上升或下降沿被"鎖定",意味著它們在時間上相互不相對移動)的任何電路將被認為是DPLL。DPLL與PLL相似在于僅需要幾個塊用于校正操作。1.相位檢測器2.積分器(integrator)3.VCO操作如下所示。輸入的參考頻率進入相位檢測器,然后與該電路的輸出比較,該電路的輸出是VCO的輸出。誤差是信號的2個相位之間的差,并且誤差信號在"積分器"積分。然后積分器的輸出調整"VCO",其完成反饋環。反饋環將試圖將來自"相位檢測器"的誤差變為零,使得暗示"相位檢測器"的各輸入必須相同,其依次暗示2個輸入(參考頻率和"VCO"輸出)必須相同。如果你了解控制輸入的"VCO"和輸出頻率之間的關系,則可以提取瞬時相位而沒有太多困難。在之前圖中描述的電路中,DPLL的3個核心塊如下所示。1.相位檢測器,(這在"上/下計數器和相位對齊邏輯"塊中)2.積分器,(這在"上/下計數器和相位對齊邏輯"塊中)3.VCO,(這些是由"輸出時鐘"計時的、底部具有DFF的2個加法器塊)使用該VCO技術,如果你把輸入當作未標記數據,則輸入(信號"M")量和輸出頻率之間的關系線性上升到滿刻度的1/2。信號"M"為"m"位寬,并且然后被分成2部分MSB's和LSB,s。MSB's是頂部"os"位,而LSB,s是底部"m-os"位。在一些實施例中,上/下計數器計算各時鐘的沿,無論正、負或兩者。在一些實施例中,相位對齊邏輯使得鎖定的輸出脈沖來到計時輸入數據的各輸入沿之間的1/2路徑,使得當該數據有效(沒有改變)時,我們能夠獲得遍及時鐘域傳送的數據。現在有2個在這些信號上操作的加法器,一個為MSB's以及另一個為LSB,s。將各加法器明確分開的原因是要訪問"P—OS"信號,其僅僅是來自對LSB,s操作的加法器的溢出。該"P_OS"是LSB,s的溢出(也已知為進位輸出(carry-out)),饋入到MSB's加法器的進位輸入(carry-in)中。結果是由MSB,s和LSB,s表示的數字代碼正常地增加,但是我們現在已經訪問內部信號,其是對"m-os"位操作的全加器單元的進位輸出。例如,假定我們有4位加法器。其它實施例使用不同位數。能夠通過鏈接4個全加器單元得到4位加法器。每個全加器具有3個輸入和2個輸出。其功能是<table>tableseeoriginaldocumentpage20</column></row><table>A和B是要添加的輸入,CI是"進位輸入"以及"CO"是"進位輸出"。為了得到4位加法器能夠創建"脈動進位加法器"加法器。只通過給圖15中的電路增加常數得到"VCO"。如果"m"是8,則意味著輸入能夠從O到255。當加法器輸出大于255時,其將設置"CO"位并且將其余的各位鎖存到FF中。因此當輸入為1日于,加法器將溢出1/256時鐘。如果輸入為2,則溢出將出現2/256時鐘。因此這是筒單VCO,輸入一個數字,你將得到在"CO"管腳上輸出的受控頻率。假定我們采取8位加法器并將其分成兩個4位加法器,并將第一4位加法器的"CO"連接到第二4位加法器的"CI"。圖16是與8位VCO相同的電路,但是我們現在已經明確定位來自LSB的進位輸出。輸入與上面相同的輸入,輸出為與前面相同,輸入常數l到該電路中,LSB加法器的進位輸出溢出1/16時鐘,而MSB加法器的進位輸出溢出1/256時鐘。與前面相同,輸入常數2到該電路中,LSB加法器的進位輸出溢出2/16時鐘,而MSB加法器的進位輸出溢出2/256時鐘。因此現在我們具有為MSB溢出的倍數的信號。接著還有l件事發生,當LSB加法器(以特定的MSB加法器的溢出率的倍數)溢出時,我們在該瞬時鎖存加法器的輸出。該鎖存的信號給我們2個異步時鐘(輸入時鐘和輸出時鐘)之間的"瞬時相位"關系。使用該瞬時相位信息,我們能夠精確計算與輸出時鐘相比輸入時鐘(參考)何時改變,即使其在輸出時鐘的各沿之間改變。使用該時間信息,樣本能夠在輸出時鐘域中校正幅度。下面是從定時誤差信息校正幅度的另一示例。樣本流。(注意在輸入數據流上存在O階保持)......11118888333......現在要校正樣本,其中樣本改變值。(因為如果采樣從不改變,則無論何時重新計時它總是正確)......111X1888X2333......現在為了得到新的樣本,我們在數據改變的點從DPLL獲得M和N—OS值,并計算如下Xl=l+(N_OS/M)*(8-l)X2=8+(N_OS/M)*(3-8)注意(N_OS/M)不是常數。圖18顯示使用過采樣但不用下采樣的實施例的方塊圖。該方塊圖與圖13相似,但是不需要下采樣濾波器。圖19顯示使用下采樣但不用過采樣的實施例的方塊圖。該方塊圖與圖13相似,但是不需要過采樣濾波器。13相似,但是既不需要過采樣濾波器也不需要下采樣濾波器。在圖13、18到20的電路中,數字環鎖定到輸入速率。或者,如果輸入速率的過采樣版本是可用的,則數字環能夠鎖定到輸入速率或輸入速率的過釆樣版本。下面是THD+N(全部調諧失真+噪聲)的討論。在具有由FIR濾波器實現的上采樣濾波器和下采樣濾波器的實施例中,如果這些濾波器是理想的,則ASRC操作輸入數據的量化噪聲。但是如果這些濾波器不是理想的,意味著圖像抑制僅為大約-130dB,則因為假音調在提供給ASRC的數據中,所以其將可能在該水平出現。完全可以使得FIR濾波器具有》200dB的圖像抑制,并且在這種情況下,ASRC將僅被輸入數據量化噪聲限制。另一實施例是實現以下算法的計算機程序。該算法訪問表示用第一常規時間庫(dtl)采取的信號樣本的數據的有序序列,并且創建樣本的第二有序序列,其表示在第二不同的時間庫(dt2)中的相同信號,該兩個時間庫不是整數相關的。在第三時間庫(dt3)的可能的中間有序組樣本是第二時間庫(dt3=dt2/F,F{0,...INF})的整數片斷。當第二時間庫沒有充分地短于第一時間庫(即不是(dt2《dt1))時,需要第三時間庫。該算法包括下面示例性過程過程(pl),通過其將第一序列的樣本拷貝到第三序列的連續單元(或者第二序列,如果沒有使用第三序列)中,直到第三(或第二)序列(t3)的等效時間超過第一序列(tl)下一個單元的時間。在pl之后(即,當第三(或第二)序列(t3)的等效時間超過第一序列(tl)的下一個單元的時間時),執行過程(p2)。該過程用從第一序列的當前單元(sl)和第一序列的下一單元(s2)中導出的值(y),填充第三(或第二)序列的單個未定單元,該值(y)如下y=sl+(t3-tl)(s2-sl)/dt3;或如果沒有使用第三序列,則y=sl+(t3-tl)(s2-sl)/dt2。在p2之后執行過程(p3),增加第一序列的序列指針使得第一序列的等效時間現在超過第三序列(或第二)的等效時間。然后回到程序pl。該處理繼續直到p3遇到第一序列的尾端。在該點輸出數據的序列存在于第三或第二序列中。如果已經使用第三序列,則第三序列可被下采樣到第二序列中。第二序列現在是第一序列在第二序列的時間庫中的表示。例如,該算法在一個或多個計算處理器中執行。相關申請的引用本申請要求由發明人MartinMallinson和DustinForman于2006年8月15日提交的、名為異步采樣率轉換器(AsynchronousSampleRateConverter)的美國臨時專利申請No.60/838,105的權益。在此通過引用并入該申請。權利要求1、一種方法,包括執行樣本序列從輸入速率到輸出速率的采樣率轉換,該輸出速率不同于輸入速率的任何整數倍,包括用由數字環產生的定時誤差信息校正樣本序列版本,該數字環鎖定到是輸入速率倍數的第一速率并且在是輸出速率倍數的第二速率計時,該第二速率不同于第一速率的任何整數倍。2、如權利要求l所述的方法,其中第一速率是輸入速率的倍數,該輸入速率的倍數是1,使得樣本序列的版本等于在輸入速率的樣本序列。3、如權利要求l所述的方法,其中第一速率是輸入速率的倍數,該輸入速率的倍數是大于1的整數,使得樣本序列的版本是在輸入速率的樣本序列的過采樣版本。4、如權利要求l所述的方法,其中第二速率是輸出速率的倍數,該輸出速率的倍數是l,使得第二速率等于輸出速率。5、如權利要求l所述的方法,其中第二速率是輸出速率的倍數,該輸出速率的倍數是大于1的整數。6、如權利要求l所述的方法,還包括通過在第二速率計時產生樣本序列的版本,該樣本序列的版本包括由于在第二速率、而不是在輸入速率的任何整數倍計時而產生的定時誤差。7、如權利要求l所述的方法,其中所述執行還包括用該定時誤差信息校正樣本序列的版本的幅度。8、如權利要求l所述的方法,還包括利用運算電路、在調整到鎖定數字環的第一速率的溢出頻率產生多個模溢出,多個模溢出的每個指示由運算電路產生第一速率和第二速率之間的定時誤差信息。9、如權利要求1所述的方法,其中在輸入速率的樣本序列來自S/PDIF索尼鄰利普數字接口格式信號。10、如權利要求l所述的方法,其中采樣率轉換具有主要由輸入量化噪聲限定的動態范圍。11、如權利要求1所述的方法,其中采樣率轉換具有主要由輸入量化噪聲、過采樣有限脈沖響應濾波器的圖像抑制、和下采樣有限脈沖響應濾波器的圖像抑制限定的動態范圍。12、如權利要求l所述的方法,其中采樣率轉換具有主要由輸出速率限制的最大下采樣比率。13、如權利要求1所述的方法,其中采樣率轉換具有主要由描繪電路的邏輯合成的速率限制限定的最大過采樣比率。14、一種執行樣本序列從輸入速率到輸出速率的采樣率轉換的電路,其中輸出速率不同于輸入速率的任何整數倍,包括數字環,其鎖定在是輸入速率倍數的第一速率和在是輸出速率倍數的第二速率計時,第二速率不同于第一速率的任何整數倍;包括頻率檢測和低通濾波器電路;以及可變振蕩器電路,其與頻率檢測和低通濾波器電路形成數字環,其中數字環產生定時誤差信息;以及用定時誤差信息校正樣本序列的版本的電路。15、如權利要求14所述的電路,其中第一速率是輸入速率的倍數,該輸入速率的倍數是1,使得樣本序列的版本等于在輸入速率的樣本序列。16、如權利要求14所述的電路,其中第一速率是輸入速率的倍數,該輸入速率的倍數是大于1的整數,使得樣本序列的版本是在輸入速率的樣本序列的過采樣版本。17、如權利要求14所述的電路,其中第二速率是輸出速率的倍數,該輸出速率的倍數是l,使得第二速率等于輸出速率。18、如權利要求14所述的電路,其中第二速率是輸出速率的倍數,該輸出速率的倍數是大于1的整數。19、如權利要求14所述的電路,還包括通過在第二速率計時產生樣本序列的過采樣版本的電路,該過采樣版本包括由于在第二速率、而不是在輸入速率的任何整數倍計時產生的定時誤差。20、如權利要求14所述的電路,還包括用定時誤差信息校正樣本序列的過采樣版本的幅度的電路。21、如權利要求14所述的電路,其中可變振蕩器電路包括有限模運算電路。22、如權利要求14所述的電路,其中數字環產生輸入速率和第二速率之間的定時誤差信息。23、如權利要求14所述的電路,其中數字環產生第一速率和第二速率之間的定時誤差信息。24、如權利要求14所述的電路,其中可變振蕩器電路包括進位加法器電路,該進位加法器電路包括高有效位電路;以及低有效位電路,其耦合到高有效位電路,其中低有效位電路產生溢出,該溢出指示由進位加法器電路產生輸入速率和第二速率之間的定時誤差信息。25、如權利要求14所述的電路,其中可變振蕩器電路包括進位加法器電路,所述進位加法器電路包括高有效位電路;和低有效位電路,其耦合到高有效位電路,其中低有效位電路產生溢出,該溢出指示由進位加法器電路產生第一速率和第二速率之間的定時誤差信息。26、如權利要求14所述的電路,其中在輸入速率的樣本序列來自S/PDIF索尼/菲利普數字接口格式信號。27、如權利要求14所述的電路,還包括與該電路集成的輸入,該輸入以輸入速率從S/PDIF索尼/菲利普數字接口格式信號接收樣本序列。28、如權利要求14所述的電路,其中該電路具有主要由輸入量化噪聲限定的動態范圍。29、如權利要求14所述的電路,其中該電路具有主要由輸入量化噪聲、過采樣有限脈沖響應濾波器的圖像抑制、和下采樣有限脈沖響應濾波器的圖像抑制限定的動態范圍。30、如權利要求14所述的電路,其中該電路具有主要由輸出速率限制的最大下采樣比率。31、如權利要求14所述的電路,其中該電路具有主要由描繪電路的邏輯合成的速率限制限定的最大過采樣比率。32、一種電路,包括用于執行樣本序列從輸入速率到輸出速率的采樣率轉換的裝置,其中輸出速率不同于輸入速率的任何整數倍,包括用于用數字環產生的定時誤差信息校正樣本序列的版本的裝置,該數字環鎖定在是輸入速率倍數的第一速率和在是輸出速率倍數的第二速率計時,第二速率不同于第一速率的任何整數倍。全文摘要各種實施例執行樣本序列的輸入速率到輸出速率的采樣率轉換。用數字環產生的定時誤差信息校正樣本序列的版本。數字環鎖定在第一速率和在第二速率計時。文檔編號H03M7/00GK101326725SQ200780000577公開日2008年12月17日申請日期2007年8月15日優先權日2006年8月15日發明者安德魯·M·馬林森,達斯廷·D·福曼申請人:Ess技術公司