當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]在實(shí)際應(yīng)用中, 直接利用DSP產(chǎn)生任意長(zhǎng)度偽隨機(jī)序列的方法, 可以為系統(tǒng)設(shè)計(jì)和測(cè)試帶來便利。文中 基于線性同余算法, 結(jié)合Analo Gdevices公司DSP芯片TigerSHARC20XS的運(yùn)算結(jié)構(gòu), 設(shè)計(jì)出一種利用尋址遞減長(zhǎng)度序列, 從而

在實(shí)際應(yīng)用中, 直接利用DSP產(chǎn)生任意長(zhǎng)度偽隨機(jī)序列的方法, 可以為系統(tǒng)設(shè)計(jì)和測(cè)試帶來便利。文中
基于線性同余算法, 結(jié)合Analo Gdevices公司DSP芯片TigerSHARC20XS的運(yùn)算結(jié)構(gòu), 設(shè)計(jì)出一種利用尋址遞減長(zhǎng)度序列, 從而產(chǎn)生具有遍歷性的任意長(zhǎng)度偽隨機(jī)序列的方法。通過對(duì)比, 說明此方法成功解決了傳統(tǒng)方法中, 利用DSP的反饋位移寄存器只能產(chǎn)生2n (1≤n≤32)長(zhǎng)度偽隨機(jī)序列的問題, 在生成序列的任意長(zhǎng)度方面具有一定創(chuàng)新性, 對(duì)通信傳輸和雷達(dá)變頻抗干擾具有一定的參考價(jià)值。

關(guān)鍵詞 線性同余算法; 偽隨機(jī)數(shù); 任意長(zhǎng)度序列; DSP

Genera tion Method about Pseudo Random Sequence of Optiona l Cycle Ba sed on DSP

Abstract In many p rojects, it is a great advantage for designing and debugging systems to generate the p seudo random sequence by DSP. Based on the analysis of the linear congruential generator and TigerSHARC20XS of ANALOGDEV ICES, this paper p resents a method for generating the p seudo random sequence in op tional cycle by ad2 dressing the sequence of descending length. Compared with traditionalmethods, the new method, which is innova2 tive in op tional cycle, solves the p roblem that the p seudo random sequence can only be in a fixed cycle of 2n ( 1≤n≤32) using DSP in traditional methods and is of value in the transmission of communication and anti2jamming of the frequency hopp ing radar.
Keywords LCG; p seudo random number; op tional cycle sequence; DSP

 隨機(jī)數(shù)是雖然具有一定的統(tǒng)計(jì)學(xué)規(guī)律, 但抽樣值不能事先確定的數(shù)。實(shí)際中產(chǎn)生的隨機(jī)數(shù)不是絕對(duì)隨機(jī)數(shù), 而是相對(duì)的, 稱為“偽隨機(jī)數(shù)” 。偽隨機(jī)數(shù)既有隨機(jī)數(shù)所具有的優(yōu)良相關(guān)性, 又有隨機(jī)數(shù)所不具備的規(guī)律性。這兩個(gè)特點(diǎn), 使得以偽隨機(jī)數(shù)為基礎(chǔ)的偽隨機(jī)信號(hào)既易于從干擾信號(hào)中被識(shí)別和分離出來,又可以方便的產(chǎn)生和重復(fù)。因此偽隨機(jī)序列在通訊、雷達(dá)、導(dǎo)航、測(cè)量、密碼、計(jì)算機(jī)、相關(guān)辨識(shí)及故障診斷等許多領(lǐng)域中都有著廣泛的應(yīng)用。

在許多文獻(xiàn)中, 涉及的偽隨機(jī)序列產(chǎn)生方法多是基于高級(jí)語言的, 較少涉及硬件具體實(shí)現(xiàn)問題。已有的一些硬件實(shí)現(xiàn)方法, 在FPGA芯片DSP芯片上都有過應(yīng)用 。其中在用DSP芯片實(shí)現(xiàn)時(shí), 如果要求產(chǎn)生任意長(zhǎng)度M (M > 0)的一個(gè)偽隨機(jī)序列并保證在無重復(fù)數(shù)的前提下該序列包含0~M - 1的每一個(gè)數(shù),傳統(tǒng)做法無法完成; 只有將生成的序列長(zhǎng)度M 限制為2n (1≤n ≤32)時(shí), 才能滿足要求。文中介紹的基于DSP的偽隨機(jī)序列產(chǎn)生方法解決了這樣的問題, 可以產(chǎn)生任意長(zhǎng)度的偽隨機(jī)序列, 對(duì)工程應(yīng)用有一定的現(xiàn)實(shí)意義。

1 線性同余算法的基本原理

線性同余算法[ 6 ]的核心公式是Xn + 1 = ( aXn + b) modM, n = 0, 1, ⋯, M - 1。其中, a ( 0≤a≤M )是 乘數(shù), b ( 0 ≤ b ≤M ) 是加數(shù), M (M > 0 ) 是模數(shù), X0 (0≤X0 ≤M )是初值即種子。模數(shù)M 也等于生成的 偽隨機(jī)序列的長(zhǎng)度, 所有參數(shù)均為整數(shù)。 線性同余算法產(chǎn)生的偽隨機(jī)序列在不更換種子的 前提下以M (M = 2n )為周期出現(xiàn)循環(huán), 如果M 不等于 2n , 序列將以0 = 7時(shí), 生成序列為{ 6, 9, 0, 7, 6, 9, ...} , 周期為4; 當(dāng)M = 8, a =5, b = 1, X0 = 1 時(shí), 生成序列為{ 6, 7, 4, 5, 2,3, 0, 1, 6, 7, ...} , 周期為8; 當(dāng)M = 16, a = 5,b = 3, X0 = 7 時(shí), 生成序列為{ 6, 18, 11, 10, 5,12, 15, 14, 9, 0, 3, 2, 13, 4, 7, 6, 1, ...} ,周期為16。

由上面的例子可以看出, 直接運(yùn)用線性同余算法用硬件產(chǎn)生偽隨機(jī)序列在實(shí)際工程應(yīng)用中并不靈活。比如在雷達(dá)信號(hào)處理中, 為了減小外界對(duì)雷達(dá)信號(hào)接收的干擾, 會(huì)要求發(fā)射機(jī)和接收機(jī)以一定的時(shí)間間隔隨機(jī)地在一定數(shù)目的頻點(diǎn)上跳頻, 在跳頻過程中不跳完所有規(guī)定的頻點(diǎn)不允許重復(fù)。如果一個(gè)頻點(diǎn)用一個(gè)偽隨機(jī)數(shù)來對(duì)應(yīng), 這就可以等價(jià)為一個(gè)偽隨機(jī)序列問題。顯然, 不能因?yàn)閭鹘y(tǒng)方法生成的偽隨機(jī)序列長(zhǎng)度必須為2n ( 1≤n ≤32) , 而要求發(fā)射機(jī)和接收機(jī)的跳頻點(diǎn)個(gè)數(shù)也設(shè)計(jì)為2n (1≤n≤32) 。

2 任意長(zhǎng)度偽隨機(jī)序列產(chǎn)生方法及DSP實(shí)現(xiàn)

由上面的舉例可以看出, 在序列長(zhǎng)度M ≠2n 的時(shí)候, 生成序列中的數(shù)都<M 并且會(huì)以<M 的周期出現(xiàn)循環(huán)。如果就用這個(gè)序列作為輸出肯定是不符合要求的, 因?yàn)樵?~M - 1之間有很多數(shù)都沒有在結(jié)果中出現(xiàn), 換種說法就是輸出的序列沒有對(duì)0~M - 1這M 個(gè)數(shù)進(jìn)行遍歷。但是換種思路, 如果把這個(gè)序列不直接用作輸出, 而當(dāng)作一個(gè)偏移地址, 就有可能間接地以訪問某個(gè)地址的方式輸出一串符合偽隨機(jī)序列要求的數(shù)。這就是文中介紹的生成任意長(zhǎng)度偽隨序列方法的核心。

下面結(jié)合DSP的硬件實(shí)現(xiàn)具體闡述各個(gè)步驟。首先, 用DSP程序生成一組特定長(zhǎng)度為M 的數(shù)然后放入內(nèi)存中, 這里的M 可以等于2n 也可以是任意值。也可以事先在外部文件中寫好需要輸出的一組數(shù)然后導(dǎo)入DSP的內(nèi)存中。根據(jù)不同的應(yīng)用場(chǎng)合,放入內(nèi)存的這組數(shù)可以是0~M - 1, 也可以是沒有任何規(guī)律排列的任意M 個(gè)數(shù)。

其次, 根據(jù)要求給種子、乘數(shù)、加數(shù)和模數(shù)賦值, 調(diào)用求余子程序根據(jù)線性同余算法公式進(jìn)行運(yùn)算, 得到一個(gè)余數(shù)。用得到的余數(shù)作為偏移地址, 加上已放入內(nèi)存中序列的首地址也就是基地值, 就得到了一個(gè)訪問地址。因?yàn)閯偛诺那笥嗖僮魇菍?duì)M 進(jìn)行,得到的余數(shù)即偏移地址一定<M, 所以按照得到的訪問地址進(jìn)行尋址, 得到的數(shù)一定是內(nèi)存中長(zhǎng)度為M的已存序列中的某個(gè)數(shù), 將這個(gè)數(shù)輸出。

再次, 把上一步已輸出數(shù)后面的每個(gè)數(shù)都向前存放一個(gè)地址, 這樣內(nèi)存中的序列首地址不變, 序列長(zhǎng)度減1。把模數(shù)M 也減1, 以對(duì)應(yīng)新的序列長(zhǎng)度。再調(diào)用求余子程序, 根據(jù)線性同余算法公式進(jìn)行運(yùn)算,得到又一個(gè)余數(shù)。然后同樣會(huì)得到一個(gè)新訪問地址,同樣能輸出內(nèi)存中長(zhǎng)度為M - 1的序列中的某個(gè)數(shù),將其輸出。

隨后, 把上一步已輸出數(shù)后面的每個(gè)數(shù)再都向前存放一個(gè)地址, 這樣內(nèi)存中的序列首地址還不變, 序列長(zhǎng)度再減1, 把模數(shù)M 也再減1。按照剛才闡述的操作步驟重復(fù)進(jìn)行, 直至模數(shù)被減為1, 就會(huì)輸出一個(gè)符合要求的長(zhǎng)度為的偽隨機(jī)序列。此時(shí)的序列就是任意長(zhǎng)度的偽隨機(jī)序列。

最后, 如果內(nèi)存中的數(shù)都被輸出完, 重新導(dǎo)入長(zhǎng)度為M 的序列, 并更換種子 , 乘數(shù)和加數(shù)可以更換也可以不更換。然后進(jìn)入新一輪的偽隨機(jī)數(shù)生成,新生成序列中的M 個(gè)數(shù)和已生成序列中的M 個(gè)數(shù)相比較順序已經(jīng)被完全打亂。這樣一直重復(fù)操作下去,每輸出M 個(gè)數(shù)更換一次種子, 就可以生成含有M 個(gè)元素的長(zhǎng)度為n ×M ( n為正整數(shù))的偽隨機(jī)序列。

操作流程, 如圖1所示。

[!--empirenews.page--]
DSP主要匯編程序 。程序中以j19寄存器中所放值為基地值、長(zhǎng)度為M (M 為任意值)的一組數(shù)就是得到的長(zhǎng)度為M (M 為任意值)的偽隨機(jī)序列, 想要得到含有M 個(gè)元素的長(zhǎng)度為n ×M ( n為正整數(shù))的
偽隨機(jī)序列, 只要每隔M 個(gè)數(shù)更換種子重新運(yùn)行程序就可以得到。
當(dāng)外部文件中存有1~M 依次排列的M 個(gè)數(shù)時(shí),仿真結(jié)果舉例如下:

當(dāng)M = 8, a = b = X0 = 7時(shí), 生成序列為{ 1, 2,5, 4, 3, 8, 6, 7, 12, ...} , 周期為8; 當(dāng)M = 10,a = b = X0 = 7 時(shí), 生成序列為( 7, 3, 1, 2, 6, 5,4, 10, 8, 9, 7, 3, ...) , 周期為10; 當(dāng)M = 11,a = 5, b = 3, X0 = 4 時(shí), 生成序列為{ 2, 5, 8, 11,4, 10, 7, 9, 6, 3, 1, 2, 5, ...} , 周期為11; 當(dāng)M = 12, a = 5, b = 3, X0 = 4時(shí), 生成序列為{ 12, 2,5, 8, 11, 4, 10, 7, 9, 6, 3, 1, 12, 2, ...} , 周期為12。

由仿真結(jié)果可以看出, 文中介紹的方法能靈活產(chǎn)生任意長(zhǎng)度的偽隨機(jī)序列。

3 結(jié)束語
偽隨機(jī)序列有著廣泛的應(yīng)用前景, 在通信傳輸和雷達(dá)抗干擾方面尤為重要, 序列長(zhǎng)度是影響其應(yīng)用的關(guān)鍵因素。文中討論了偽隨機(jī)序列長(zhǎng)度和遍歷性的矛盾, 提出了基于DSP芯片具有遍歷性的任意長(zhǎng)度偽隨機(jī)序列的工程實(shí)現(xiàn)方法。給出了對(duì)該實(shí)現(xiàn)方法具體步驟的分析, DSP程序的仿真結(jié)果顯示了該實(shí)現(xiàn)方法的正確性和有效性。在應(yīng)用中可方便地修改程序中各參數(shù), 以滿足各種場(chǎng)合不同的需求。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉