利用偽隨機碼降低EMI
在開關係統和高頻系統內含有周期性的震盪訊號。這些訊號會傳遞到系統中,時常導致EMI的問題。 一種解決這種EMI問題的方法是通過產生偽隨機碼展寬週期性震盪訊號的頻譜,使得訊號功率分佈在一個頻率內而非單個固定頻率。通過展寬頻率,可以將能量“均勻”分佈,從而得到降低EMI的效果。 下面就以一個振盪器為例解釋一下這種方法。
產生偽隨機碼 這裡採用簡單的基於移位暫存器和加法器的電路產生偽隨機序列。4bit的電路最多生成16個狀態碼。一個週期完成後重複。相關演算法和解釋可以在網上找到。
振盪器本身自帶8bit的Trim功能。從LSB開始從1%到64%頻率調節。最高位是方向位,表示正/負調整方向。 我們把隨機碼的最高位使用在最高位。隨機碼的第三位作為Trim的低3位。 生成隨機碼的時鐘訊號使用了振盪器輸出的8分頻的訊號,避免過快過多的Trim碼調整反而帶來其他問題。
同時放一個不經過隨機碼調整的振盪器作為對比。 電路如下:
進行模擬後,對穩定後的輸出時鐘訊號做1024點的DFT分析,如下圖左側。 左側上半部頻譜是未經過隨機化的時鐘訊號,100KHz單個分量頻率10dB。 左側下半部分是經過隨機化的時鐘訊號。可以看到頻率被展開到了大約80-120KHz的頻段內。同時最強的分量僅為~0dB。 右側波形為偽隨機碼波形和兩個振盪器的輸出時鐘訊號。
由於振盪器本身Trim的精度以及只使用了4bit的隨機碼序列,訊號頻譜並未真正在頻段範圍內白噪聲展開。但我們依然得到了大約10dB(V訊號)的衰減。
相關文章
- 偽隨機數是什麼?偽隨機數生成方法有哪些?隨機
- CSS中如何實現偽隨機?CSS隨機
- 偽隨機數 pseudo random number隨機random
- C語言中的例子--偽隨機數C語言隨機
- matlab中的偽隨機數原理Matlab隨機
- 偽隨機數C語言程式設計隨機C語言程式設計
- 玄不救非,氪不改命 如何分清遊戲中的“真隨機”和“偽隨機”?遊戲隨機
- 利用 Linux 系統生成隨機密碼的 10 種方法Linux隨機密碼
- 利用Linux系統生成隨機密碼的10種方法Linux隨機密碼
- 利用迴圈語句隨機建立矩形隨機
- 預設的 rand.Intn () 生成的是偽隨機數隨機
- 隨機驗證碼隨機
- 一份偽當機程式碼
- JS生成隨機密碼JS隨機密碼
- 利用arc4random_uniform()產生隨機數randomORM隨機
- 非酋的福音?談一談遊戲內的偽隨機機制以及實現遊戲隨機
- javascript隨機生成字串,可以用來生成隨機密碼JavaScript隨機字串密碼
- [轉載]利用近場探頭和頻譜儀查詢EMI輻射問題
- 使用 Python 生成基於馬爾可夫鏈的偽隨機文字Python馬爾可夫隨機
- Linux 生成隨機密碼Linux隨機密碼
- php生成唯一隨機碼PHP隨機
- 使用mkpasswd生成隨機密碼隨機密碼
- 利用自簽名生成「可隨機自啟動」來電通隨機
- 案例四:Shell指令碼生成隨機密碼指令碼隨機密碼
- ruby指令碼,隨機生成複雜密碼指令碼隨機密碼
- 如何得到一個隨機密碼隨機密碼
- C程式隨機種子原始碼C程式隨機原始碼
- 十位隨機驗證碼隨機
- 隨機生成四個驗證碼隨機
- Linux 隨機生成密碼mkpasswdLinux隨機密碼
- 應用:隨機生成驗證碼隨機
- 隨機之美,隨機森林隨機森林
- EMI/EMS/EMC有什麼關係?
- MySQL 隨機查詢資料與隨機更新資料實現程式碼MySql隨機
- 策劃解讀:關於“暴擊”的誤解與數值的“偽隨機”隨機
- 50%暴擊等於4下必暴 遊戲中的偽隨機你知道多少?遊戲隨機
- 用C語言的rand()和srand()產生偽隨機數的方法總結C語言隨機
- 弱口令、子域名、md5、偽隨機數、目錄爆破與CTF實戰隨機