傅立葉,請再幫我們一次吧....

2022-01-05 TsinghuaJoking

前言

前一段時間,推文中介紹了兩款參賽同學根據負反饋原理製作的恆磁20kHz的信號源,有效的解決了智能車比賽場地中電磁導線的長度,直徑等引起的電磁線圈的阻抗變化,從而對於輸出信號中20kHz基波信號帶來影響,提高了比賽場地導引信號的精度。

兩款信號源中,都採用了10mH電感和6.8nF電容組成的諧振選頻迴路,對輸出電流信號中20kHz基波信號進行檢測。通過負反饋的原理來穩定輸出電流信號中基波的幅值。

是否還可以採用別的方法來檢測輸出電流信號的基波呢?下面給大家所介紹,就是通過普通的電阻對輸出電流進行採樣,通過軟體算法來獲取輸出電流的基波分量。

實驗仍然採用傳統的數位訊號源,輸出所使用的20kHz,100mA的方波交流信號。在信號輸出線中串入一個0.1歐姆的電阻,將電流信號轉變成電壓信號。

為了便於單片機採集該信號。使用了INA199對於電阻兩端的電壓進行差模放大,放大倍數50倍。由於IN199的帶寬只有14kHz,它對於電流信號中的高頻信號 有著較大的衰減。下圖中,可以看到在採樣電阻兩端的電壓信號經過INA199差模放大之後,信號的上升沿和下降沿變得光滑了。信號失真是由於它中間的高頻分量被衰減了。

雖然信號出現了失真,但這只是低通濾波器將其中的高頻信號濾除了。對於20kHz基波信號衰減不大。並且這是一個線性低通濾波器,所以對於後面的測量校正不會帶來很大的影響。

使用單片機軟體算法來獲取電流信號的基波頻率分量,首先需要通過ADC(模擬數字轉化器)對於輸入信號進行採樣,然後再進行頻率分析。由於單片機的ADC性能和計算能力有限,所以需要使用信號欠採樣和快速傅立葉變換計數。下面分別進行介紹。

信號欠採樣

根據信號採樣香儂(Claude Shannon)定理,如果信號採樣頻率大於信號中最高頻率的兩倍,則信號可以無損失進行恢復,否則就會造成信息的丟失和頻率混疊。通常稱信號最高頻率的兩倍為信號的奈奎斯特(Nyquist)採樣頻率。在實際應用中情況下,需要採樣頻率大於信號最高頻率的五倍以上。

對於方波電流信號,理論上,它的最高頻率是無窮大。這樣就會給信號採樣帶來很大的麻煩。如果採樣頻率無法滿足奈奎斯特頻率,就會產生信號的頻率混疊現象,表現在原本信號中高頻分量在採集後所形成的序列反而是低頻序列。這樣就會造成信號頻率分量出現偏差。

20kHz的電流信號,具有豐富的高次諧波。如果考慮到信號的10次諧波作為信號的最高頻率。那麼所需要的採樣頻率就是20000*10*2=400,000Hz。這個頻率對於普通的單片機來說已經到來它的上限了。如下是設置單片機ADC不同的轉換時間,所採集到的電流信號。

可以看出,在轉換時間小的情況下,是可以採集到比較完整的電流波形,但是,數據中會帶有很大的噪聲。如果轉換時間設置長了,就會出現明顯的欠採樣的情況,數據波形與實際信號波形之間出現了很大的差別。

如何解決這個矛盾了。這裡需要應用到電流信號是周期信號的特點,可以使用信號欠採樣來獲得信號完整的波形。

欠採樣是巧妙應用到頻譜混疊,將原本高頻的諧波,變成低頻的諧波,從而可以在遠小於信號的奈奎斯特採樣頻率下完成信號的採集。

從時域分析來看,採樣的周期比信號的周期(或者信號周期的整數倍數)略大,比如大了deltaT,它遠遠小於信號的周期T。這樣每一個周期只採集一個數據,下一個周期的的採樣點會往後延遲deltaT.。將若干個周期中不同位置的採樣數據拼合在一起就可以形成信號的完整周期的數據。下圖就可以看出,一個高頻正弦波,在欠採樣下,可以形成一個低頻的正弦序列波形。

對於20kHz的信號,它的一個周期為50微妙。下圖是採用周期是50.172微秒的間隔對電流信號進行採集所獲得數據波形,可以看出它是原來電流波形的完美體現。

通過MATLAB中的FFT命令,可以求解出數據中的各個頻率分量幅度(成為幅度譜)。具體結果如下圖所示。

頻譜顯示,上述波形中,它的基波以及各個奇次(3,5,7)諧波都存在,並隨著頻率的增加而減小。所有的偶次(2,4,6....)諧波都不存在。這是由於原始的對稱方波屬於奇諧信號,這樣的信號以及它的線性變換都不存在偶次諧波。相關的介紹在「分數諧波」推文中介紹過。

FFT

獲取信號中的各個諧波分量的幅值,可以通過傅立葉變換求得。對於採集所得到的離散序列來講,所使用變換就是離散傅立葉變換(DFT)。在上個世紀60年代,出現的離散傅立葉變換的快速算法(FFT)使得DFT的計算複雜度從O(N^2)降低到N*log2(N),這使得頻譜分析快速進入了實際工程應用中。

問題是,快速傅立葉變換是否是最快,最有效的分析方法呢?

這需要看應用的具體需求。在有些情況下,反而直接應用DFT所需要的計算量比FFT還要小。比如在這裡,由於我們只需要求出信號中20kHz的基波信號分量,即信號頻譜中對應20kHz的係數X[k],所以直接使用上述DFT公式計算X[k]則只需要N次複數乘法和N-1次複數加法即可。反而比Log2(N)*N次的FFT更少。

由於計算需要使用到Exp(2pijkn/N)係數,根據歐拉公式,它是由cos(t)+jsin(t)構成,這些係數可以在進行計算前製作成表格提前得到,或者使用三角變換公式進行地推而形成,這都可以加快具體計算過程。

下面,對於上述方法進行實驗驗證一下。採用和以前實驗方案相同,在以前標準信號源迴路中串入不同的電感,模擬不同長度的電磁線。通過一個LC諧振迴路放在電磁線周圍,來感應磁場強度。分別記錄在不同串入電感的情況下,LC輸出交流電壓信號以及電流採集信號的FFT係數。

如下是對20中不同電感下,測量的數據曲線。可以看出,原來標準信號源,隨著輸出迴路電感的增加,輸出電流信號的基波分量在逐步增加。具體原因在以往的推文中有分析。

與此同時,可以看到通過電流採樣數據所計算出的FFT基波分量的頻譜係數也按照相同的比例進行變化。

這說明,通過軟體計算所獲得的基波分量的大小與採用LC選頻諧振迴路的作用相同。如果使用FFT係數對於輸出電流進行反饋控制,就可以使得輸出電流的基波保持穩定。

如下就是使用採集到的LC電壓值除以電流信號的FFT基波係數所得到的比值,可以看到該比值基本維持在 一個恆定量。

這也說明,使用電流採樣然後進行頻譜分析可以完成信號源基波分量的穩定控制。

總結

對於比賽數位訊號源增加輸出電流採樣電阻,通過信號欠採樣計數,可以獲得輸出電流波形數據。應用信號傅立葉變換,提取所感興趣的基波分量的幅度。由於只是計算基波分量 一個頻譜係數,所以不需要採用快速傅立葉變換,而是使用迭代的方式完成普通的離散傅立葉變換計算就可以高效計算出對應的頻譜係數。

在具體實現中有些參數需要通過試湊來完成優化。比如欠採樣的頻率的選擇,計算DFT數據的長度等。在上述實驗,選擇欠採樣頻率使得在信號的一個周期內可以採集到100個左右的有效數據。為了避免由於數據截取對於計算結果所帶來的誤差,選擇1個或者2個正周期的數據進行計算,可以獲得比較穩定的頻譜係數。

通過此次的分析,是否大家認為「信號與系統」課程的重要性了?如果大家想在這方面有更多的了解,請關注競賽系列MOOC課程中相關的信息。

相關焦點

  • 如果看了這篇文章你還不懂傅立葉變換,那就過來掐死我吧(下)
    當時大三他教我通信原理,但是他先用了4結課幫我們複習了很多信號與系統的基本概念,那個用樂譜代表頻域的概念就是他講的,一下子讓我對這門課豁然開朗,才有了今天的這篇文章。所謂的公式錯誤在哪裡呢?傅立葉級數的本質是將一個周期的信號分解成無限多分開的(離散的)正弦波,但是宇宙似乎並不是周期的。曾經在學數位訊號處理的時候寫過一首打油詩:往昔連續非周期,回憶周期不連續,任你ZT、DFT,還原不回去。
  • 第一講:另類視野下的形象直觀的傅立葉變換
    我們通過基本的三角法則,並使用歐拉公式,可以對傅立葉級數進行擴展和延伸我們將傅立葉變換公式進行替換後,就變成了如下的樣式:虛部和實部兩部分積分:我們如何直觀的理解這個方程式呢?此時的方程式為,函數乘以一個餘弦和正弦曲線,在任意角頻率下,找到兩條曲線下的面積,積分會告訴我們哪些區域代表實部和虛部角頻率會改變振幅和相位,進一步完成整個傅立葉變換,所以可以將實部和虛部表示成一個直角三角形,上述的的直角三角形更像是在描述一個單位圓,不同的ω,導致直角邊或正或負,相位角也會隨之而改變
  • 我們最後再做一次吧
    我一直覺得我們身處在二十歲出頭無可奈何的黑暗裡,我要把她推去光明,然後獨自再在黑暗中行走,這條路只能我自己走下去,帶上她就是一種辜負,放手這是我對愛情最後的詮釋。那幾天我們就拼命做愛就在這個十幾平米的房間裡,早上起床做一次然後她靠著我的肩膀再睡一會,叫好外賣等外賣的間隙我們再做一次,坐在床上吃完外賣我們開始打遊戲,輸了或者贏了冷不丁的再做一次,到了晚上更加頻繁,每一次我們都大汗淋漓癱倒在床上,她幫我抽幾張床頭的抽紙遞給我把地上的菸灰缸遞給我,我抽一根煙,一根煙之後我們又抱在一起,氣息得不到平復,就一直喘著,眼睛看向對方,劉海溼漉漉的喘著粗氣的樣子
  • 方波的傅立葉級數和信號中的吉布斯現象
    我們現在來確定如下圖波形的傅立葉級數。來獲得它的振幅和相位譜。下圖是一個周期性的方波我們的目標是得到傅立葉係數a0 an和bn,首先,我們將波形描述為圖中可知f (t) = f (t + t),因為t = 2,ω0 = = 2π∕t =π。
  • 「我弟說了,這是最後一次,咱們再幫他一次吧」「咱們離婚吧」
    我們每個人的生活都是有一個重心的,當把自己的生活重心偏向於工作的時候,那麼感情勢必會有些落下。小王和自己妻子結婚的時候已經是32歲了,同齡人早就已經抱孩子了,可是兩個人的感情才剛剛起步。可能正是因為小王感覺兩個人開始的時間比較晚,所以對自己的妻子基本上是百依百順,只要她提出要求,自己一般情況下是不會反駁的。小王感覺自己的妻子有一些任性,是在兩個人結婚兩年之後了。
  • 快速傅立葉變換檢測信號完整的輸出電流信號的基波
    使用單片機軟體算法來獲取電流信號的基波頻率分量,首先需要通過ADC(模擬數字轉化器)對於輸入信號進行採樣,然後再進行頻率分析。 FFT 獲取信號中的各個諧波分量的幅值,可以通過傅立葉變換求得。對於採集所得到的離散序列來講,所使用變換就是離散傅立葉變換(DFT)。在上個世紀60年代,出現的離散傅立葉變換的快速算法(FFT)使得DFT的計算複雜度從O(N^2)降低到N*log2(N),這使得頻譜分析快速進入了實際工程應用中。
  • 讓我們再談一次戀愛吧
    「不不不,真是記錯了,其實,我早就開始在那裡等你了,時間不早了,我請你吃飯去吧。」她輕輕地跳上了我的摩託車後座,側身而坐。她穿著雪白的連衣裙,清純而又灑脫,我從行駛的摩託車後視鏡裡,看到她那雪白的裙擺在風中輕揚。「陳雅賢?」「嗯?」「等我的時間裡,你在想什麼?」
  • 多項式乘法與快速傅立葉變換
    還有一種就是本節上文處所述的三個步驟:1、將多項式由係數表示法轉化為點值表示法(點值過程);2、 利用點值表示法完成多項式乘法;3、將點值表示法再轉化為係數表示法(插值過程)。三個步驟下來,總的時間複雜度為O(N*logN)。它體現在下圖中的Evaluation + Pointwise multiplication + Interpolation 三個合過程。
  • 假面騎士:巧爺幫沙灘影帝宣傳漫畫,再看看劇組的最後一次齊聚吧
    假面騎士:巧爺幫沙灘影帝宣傳漫畫,再看看劇組的最後一次齊聚吧喜歡假面騎士的朋友,是不是也跟小編一樣,認同《假面騎士555》是一部好作品呢。近日,巧爺為《假面騎士555》的番外作品-假面騎士凱撒的漫畫做了一次宣傳,詳情如下。
  • 那些年我們錯過的愛情,如果可以,請再愛一次!
    那些年啊,是那麼的美好,我們一起走在校園的燈光下;那些年,是那麼的真實也虛假,真實的是你就在我的身邊,虛假的是我怕醒來你就不在了;那些年啊,我們一起走過所有的小路,一起吃過美味小吃,那些年,我們在海邊許下諾言,立一個海誓山盟;那些年啊,我們都是那麼的幼稚和倔強,最後失去了你,那些年我們錯過的愛情
  • 再來一次吧,我們缺的正是這份誠實
    一下子收好,但蓋不上了,著急,我抿著嘴,輕輕酸軟地教她,先蓋上旁邊的,再落下白色硬紙……她親自試過後,完全成功。「再來一次吧」她自言自語又把面膜帶出裝回,又自言自語「再來一次吧」讓我好驚喜,除了好吃再來一次,做「工作」也具有「再來一次」不嫌麻煩的品質。
  • 「你再給我一次機會吧」「離了就是離了,請你別再打擾我」
    但是,一旦兩人步入了婚姻的殿堂,很多人就會開始發現事情並沒有我們當初想像的那樣美好。比如說,有些家庭會出現「家暴」的情況。當年「瘋狂英語」的李陽,後面瘋狂家暴。這個事件裡,其實最令人覺得匪夷所思的,是他妻子竟然公開選擇原諒他。雖然我們都很敬佩她的寬容,但是更多的人是擔心家暴事件會再次發生,因為這個東西不是一下子就可以改變的。
  • 請再愛它一次吧
    所以,當中國隊以自擺烏龍這種恥辱的方式輸掉與敘利亞的比賽,丟掉小組頭名的時候,中國球迷的憤怒與失望,就再一次變成了對國足的陣陣罵聲。  裡皮出走,放下高額的薪金。新聞發布會上,他氣憤、激動,比起球迷來有過之而無不及。球迷們更是氣到智商飆高,連足協道歉信中「差強人意」的用法錯誤也被諷刺到爆。  不過筆者對此結果並不感到意外。
  • 等這個世界變好了,我們再去一次首爾吧!
    走嗎,我們下個月放了假就去吧!」從未想過的說走就走的旅行,竟然真的發生在我身上,就這樣,兩個剛滿20歲的女生開始了她們期盼已久的首爾之旅。我印象中的首爾,浪漫、年輕、時尚,是一座能夠讓人悸動的城市。就這樣,懷著對一座新的城市的嚮往與熱切,在新的一年的開始,踏上了旅途,去感受首爾的溫度。
  • 那就再愛一次吧。
    薛之謙和高磊鑫的愛情老薛05年選秀的時候,她幫他拉票,因為版主把安利的帖子都刪了,她帶著閨蜜在網上把那個版主罵得狗血淋頭。後來老薛還請版主吃飯賠不是,那時候她也就19歲,誰還沒有年輕過,想想就覺得很甜。
  • 「老婆,你再原諒我一次,我不會再出軌了」「我們離婚吧」
    也是在這期間,依依的丈夫出軌了,本來他的出軌是天衣無縫的,可奈何是他收不住腳,在一次次的出軌中,他真正的動了感情,所以自然就露出了馬腳,讓依依發現了他的出軌。當被發現出軌後,丈夫沒有解釋,回家後一下就跪在了地上,各種講他們的往事,痛哭流涕對依依說:「老婆你原諒我吧,我沒有動感情,只是喝醉後才做了錯事,我發誓一定沒有下次了,我一定改,如果還有下次,我一定天打雷劈,不得好死」。雖然依依很痛苦,可看著痛哭流涕的丈夫,和肚子中還沒出世的孩子,她還是心生不忍,沒有聲張丈夫出軌的事情,然後選擇了原諒丈夫。
  • 傅立葉變換、拉普拉斯變換、Z 變換的聯繫是什麼?為什麼要進行這些變換?
    前面說了傅立葉級數,接下來再看傅立葉變換。傅立葉變換之所以稱為傅立葉變換,是由於1822年,法國數學家傅立葉(J.Fourier) 在研究熱傳導理論時首次證明了將周期函數展開為傅立葉級數的理論,並進而不斷發展成為一個有力的科研分析工具。
  • 阿隆·戈登,請再扣一次
    論情懷,我真的希望阿隆·戈登明年再參加一次扣籃大賽,並拿下冠軍,然後像《英雄本色》裡的小馬哥一樣,說一句:我失去的東西我一定要拿回來。這樣的劇情,戈登並非沒有想過。2016年扣籃大賽遺憾輸給拉文後,2017年的扣籃大賽,戈登就是懷著「我失去的東西一定要拿回來」的抱負而來的。
  • 兒子,以前是爸媽不夠關心你,再給我們一次機會好嗎
    遊相建跟父母合影 當客人來家裡做客時,兒子會幫著倒茶,平日裡也經常幫著買菜,街坊鄰居常常說:你可真是好福氣。 可他們還沒來得及好好跟兒子溝通,兒子就在2014年3月4日從湖北省黃石市陽新縣再次離家出走了,這一次外出之後,杳無音信。 這些年,夫妻二人找遍了大半個中國,每次遇到沿街乞討的少年,他們都會盡力幫助,只希望有一天兒子在外面,也能遇到好心人。
  • 什麼都不用想,讓我們再享受一次泡沫吧!
    盯著上面這隻無奈的貓,再看看臉盆,好好想幾分鐘吧。現在我們要做的,是享受泡沫。為了更有說服力,再看看shibor走勢,如下圖所示。再看看具體數字:看看上述利率,都低於2%了,呵呵喝喝,以後還會更低的。請大家放心,從去年開始就沒有緊縮了,現在更要放開。什麼都得靠印錢來解決。