語文課下課鈴響起的瞬間,高三(7)班緊繃的空氣才重新開始流動。
掌聲散去,但那種混合著驚異與探究的目光,如同實質般彙聚在林允寧身上。
孟慧蘭離開前,深深地看了他一眼,眼神裡既有發現璞玉的驚喜,也有一絲難以置信的困惑。
後排,導演劉偉已經放下了那個寫滿筆記的本子,他沒有再對攝影師小王下達任何指令,隻是雙臂環抱,靜靜地觀察著。
作為一名從業近二十年的資深媒體人,他瞬間意識到自己錯得有多離譜。
他原本想拍一個“故事”。
但眼前這個少年,其本身就是一種“現象”。
對於現象,任何預設的劇本都是一種褻瀆。
最好的方式,就是記錄。
“小王,”
他終於開口,聲音平靜卻有力,“從現在開始,忘掉分鏡。用你的直覺去捕捉,我不要漂亮的構圖,我要真實的細節。”
下一堂是數學自習。
張老邪依舊抱著他的保溫杯,在教室裡用他特有的方式巡視。
但這次他沒有靠近林允寧,隻是遠遠地點了點頭,給了他一個“你小子自己安排”的眼神。
林允寧終於能清靜地打開那台IBMThinkPadX40。
WindowsXP的經典開機畫麵過後,閃動的QQ頭像帶來了韓至淵的消息。
【組長—韓至淵】:合成數據生成器已經部署好。你的第一個考驗,現在開始。讓我看看你的算法。
【附件:syntheticdatagenerator.py】
林允寧下載了附件,打開仔細瀏覽了一遍,迅速讀懂了腳本的邏輯:
程序會生成一組包含已知非諧參數的、理論上完美的拉曼光譜,然後用一個儀器響應函數(IRF)對其進行卷積,最後再疊加上一層高斯白噪聲。
這就是韓至淵給他的第一個考驗,一個預設的“靶子”。
或者說,一個充滿了偽裝、乾擾和噪聲的“密文”。
他要做的,就是從這團亂麻中,用自己那套“帶約束的反演算法”,不差分毫地將最初的“明文”給反算出來。
林允寧沒有急著敲代碼,而是先運行了腳本,生成了一張圖。
屏幕上,出現了一條充滿了毛刺、雜亂無章的曲線。
這就是一個實驗物理學家每天都要麵對的、最真實的“敵人”——被噪聲和儀器效應汙染過的原始信號。
“導演,他……”
小王壓低聲音。
“他在做研究。”
劉偉的目光銳利,“彆出聲,看下去。”
林允寧的眉頭,微微皺起。
他首先嘗試了自己之前處理實驗數據的那套算法:
傅裡葉變換下的直接反卷積。
這在理論上是可行的,通過除以儀器響應函數的傅裡葉變換,就能得到原始信號。
他很快寫好了幾十行代碼,按下運行。
不到一分鐘,結果圖彈出——屏幕上是一片徹底崩潰的雪花噪聲,狀若心電圖最後的瘋狂抽搐。
失敗了。
“嗯?”
劉偉的眉毛揚了一下,非但沒有失望,眼中反而閃過一絲更濃厚的興趣,“有意思,他碰壁了。”
對導演而言,一帆風順的神話,遠不如天才在碰壁後憑借自身力量解決難題的“故事”來得動人。
林允寧看著那張失敗的圖,臉上沒什麼表情,隻是指尖在桌上有節奏地敲擊著。
他立刻就找到了問題所在:
直接反卷積,在數學上等同於用一個很小(甚至趨近於零)的數去除另一個數,這個過程會將原始數據中本不明顯的噪聲無限放大,最終導致結果完全崩潰。
在信號處理領域,這是一個經典的“病態問題”(illposed&n)。
“嗬,果然讓陳師兄說中了,想走捷徑,門兒都沒有。”
他低聲自語。
不能硬解,那就隻能換個思路。
問題的核心,是信息不足。
而他手裡唯一被忽略的額外信息,就是物理定律本身的約束——KramersKronig關係。
他意識到,KK關係在這裡不應該被當作一個簡單的“變換工具”,而是一個必須被嚴格遵守的“物理先驗”。
他的最終答案,無論如何都必須滿足這個約束。
那麼,解題的思路就從“一步到位的求解”,變成了“戴著鐐銬的尋找”。
也就是,建立一個本身就滿足KK約束的理論模型,然後通過迭代優化的方法,去尋找一組最優的模型參數,讓這個模型產生的結果,去無限逼近那份帶噪聲的實驗數據。
這,才是解決這類反演問題的正道。
而這整個算法的核心,就是那個在模擬空間裡讓他碰壁的幽靈——
希爾伯特變換。
理論上,希爾伯特變換像一個完美的數學“翻譯官”,能將光譜的實部與虛部進行精確互換。
但這個“翻譯官”有個毛病——
他必須讀完從宇宙大爆炸到熱寂的所有信息,才能開始工作。
可現實是,實驗數據永遠隻是一個有限的片段。
讓一個處理無限信號的“翻譯官”,去翻譯一本殘缺不全、隻有幾百個單詞的“書”,結果必然是災難性的。
這就是問題的症結所在。
“說來說去,還是繞不過去這個坎兒啊……”
想通了這一點,林允寧將那本Rudin的《泛函分析》又拿到了麵前,快速翻到關於“希爾伯特空間與算子”的章節。
他之前在《數學物理方法》裡學過希爾伯特變換,但理解停留在“怎麼解決物理問題”的層麵。
現在,想要完善反演算法,他需要從更底層的數學結構去理解它“為什麼是這樣”。
【檢測到前置知識《數學物理方法》,主體知識《泛函分析》已閱讀,知識模塊【希爾伯特變換】已收錄!】