Q51: 推導傅里葉變換?
?的 Parseval 定理
傅里葉變換的 Parseval 定理揭示了啥關系?
Parseval 定理揭示了傅里葉變換中時域與頻域的能量守恒關系,即信號在時域的總能量等于其在頻域的總能量。這就好比一個物體無論從哪個角度稱重,重量始終不變,確保了信號在不同域表示時的能量一致性。
推導過程
Parseval 定理的數學形式為:。從右邊開始推導:
這里利用了?
(狄拉克函數,在?
?時為無窮大,否則為 0),最終左邊等于右邊,定理得證。
在 LLM 中的使用
在 LLM 的訓練數據預處理中,若輸入包含音頻,可通過 Parseval 定理檢測數據是否異常。例如,某段音頻在時域能量正常但頻域異常,可能存在噪聲或損壞。在文本生成的注意力機制中,該定理可類比為信息在不同表示空間的能量守恒,確保信息完整性。
代碼示例
import numpy as np
import matplotlib.pyplot as plt
# 生成一個模擬音頻信號(假設為某個詞的發音片段)
x = np.linspace(-1, 1, 1000)
f = np.exp(-(x ** 2) / 0.5) # 模擬音頻的時域信號
# 計算傅里葉變換
f_hat = np.fft.fftshift(np.fft.fft(f))
xi = np.fft.fftshift(np.fft.fftfreq(len(x), x[1] - x[0]))
# 計算時域能量
energy_time = np.sum(np.abs(f) ** 2) * (x[1] - x[0])
# 計算頻域能量
energy_freq = np.sum(np.abs(f_hat) ** 2) * (xi[1] - xi[0])
print(f"時域能量: {energy_time:.4f}")
print(f"頻域能量: {energy_freq:.4f}")
代碼解釋:生成一個模擬音頻信號?f,通過 FFT 計算其頻域表示?。分別計算時域和頻域能量,驗證 Parseval 定理。這有助于在 LLM 處理音頻輸入時,確保能量一致性,提升語音識別或生成的準確性。
Q52: 證明卷積定理?
卷積定理在傅里葉變換中有啥關鍵作用?
卷積定理表明,時域的卷積操作對應頻域的乘積操作。這在 LLM 處理序列數據時非常關鍵,例如文本中的詞與詞的關聯(卷積)可以轉換到頻域分析,大大簡化計算復雜度。
證明過程
設?(卷積的定義,即將?g?翻轉后在?f?上滑動相乘積分),對其進行傅里葉變換:
令?
,交換積分次序后,就得到了頻域相乘的結果,證明了卷積定理。
在 LLM 中的使用
在 LLM 的卷積神經網絡(CNN)層處理文本時,卷積核與輸入特征的卷積可轉換為頻域相乘,加速計算。例如,在文本分類中,通過頻域分析提取關鍵特征,提升分類效率。
代碼示例
import numpy as np
import matplotlib.pyplot as plt
# 生成兩個信號(模擬文本特征)
x = np.linspace(-5, 5, 1000)
f = np.exp(-(x ** 2) / 2)
g = np.exp(-(x ** 2) / 8)
# 計算時域卷積
conv_time = np.convolve(f, g, 'same')
# 計算傅里葉變換
f_hat = np.fft.fft(f)
g_hat = np.fft.fft(g)
conv_freq = np.fft.ifft(f_hat * g_hat)
# 對比結果
plt.plot(x, conv_time, label='時域卷積')
plt.plot(x, np.real(conv_freq), label='頻域相乘逆變換')
plt.legend()
plt.show()
代碼解釋:生成兩個模擬文本特征的信號?f?和?g,分別計算時域卷積和頻域相乘逆變換的結果,驗證卷積定理。這有助于 LLM 在處理文本特征時,選擇更高效的計算方式。
Q53: 分析離散傅里葉變換(DFT)的頻域采樣性質
DFT 的頻域采樣在 LLM 中如何助力數據處理?
DFT 的頻域采樣性質指頻域樣本對應時域信號的周期延拓。在 LLM 處理變長文本或音頻時,可通過頻域采樣壓縮數據,保留關鍵信息,減少計算量。
分析過程
設??是長度為?N?的離散信號,DFT 為?
。若頻域采樣?
(M?為間隔),相當于?
?周期延拓為?
。頻域采樣間隔?M?決定時域延拓周期,數學上可通過 DFT 的定義和周期性證明。例如,若?
,
,則時域信號會被延拓成周期為?20?的信號。
在 LLM 中的使用
在 LLM 處理音頻文本對時,對音頻 DFT 頻域采樣,減少數據量,同時保留關鍵頻率信息,提升處理效率。例如,在語音識別中,先對音頻進行頻域采樣,再輸入模型,加快處理速度。
代碼示例
import numpy as np
import matplotlib.pyplot as plt
# 生成離散信號(模擬音頻片段)
N = 100
n = np.arange(N)
x = np.sin(2 * np.pi * 5 * n / N) + 0.5 * np.sin(2 * np.pi * 12 * n / N)
# 計算DFT
X = np.fft.fft(x)
# 頻域采樣(每隔5點采樣)
M = 5
X_sampled = X[::M]
# 計算逆DFT
x_recon = np.fft.ifft(X_sampled)
x_recon = np.concatenate([x_recon] * M)[:N]
plt.plot(n, x, label='原信號')
plt.plot(n, x_recon, label='頻域采樣逆變換信號')
plt.legend()
plt.show()
代碼解釋:生成含兩個頻率成分的離散信號?x,計算 DFT 后頻域采樣,逆變換觀察時域效果。這模擬了 LLM 處理音頻時的采樣壓縮過程,驗證頻域采樣性質的實際應用。
Q54: 推導小波變換(Wavelet Transform)的多分辨率分析公式
小波變換的多分辨率分析如何助力 LLM 特征提取?
小波變換的多分辨率分析可將信號分解為不同頻率分辨率的部分,在 LLM 處理圖像或音頻輸入時,先粗后細分析特征,提升模型對細節的捕捉能力。就像用不同倍數的放大鏡觀察物體,先看整體再看局部。
推導過程
多分辨率分析滿足?,其中?
?由尺度函數?
?張成(
?是尺度函數,如常見的 Daubechies 尺度函數),而?
(
中?
?的補空間)由小波函數?
?張成。信號?
?可分解為:
其中?
(尺度系數,反映粗尺度信息),
(小波系數,反映細節信息)。通過尺度函數的雙尺度方程
(
?是低通濾波器系數)和小波函數與尺度函數的關系?
(
?是高通濾波器系數),可以遞推計算不同尺度的系數,實現多分辨率分解。
在 LLM 中的使用
在 LLM 處理圖像生成時,小波多分辨率分析可先處理整體圖像結構(粗尺度),再細化紋理細節(細尺度)。處理音頻時,分離不同頻率成分,提升語音識別準確性。例如,在生成高分辨率圖像時,先確定大致輪廓,再逐步添加細節;在語音識別中,先捕捉低頻的語音輪廓,再分析高頻的細節特征。
代碼示例
import pywt
import numpy as np
import matplotlib.pyplot as plt
# 生成信號(模擬圖像邊緣信息或音頻特征)
x = np.linspace(0, 1, 1024)
signal = np.sin(2 * np.pi * 10 * x) + 0.5 * np.sin(2 * np.pi * 30 * x)
# 進行小波多分辨率分析(用db1小波,分解3層)
coeffs = pywt.wavedec(signal, 'db1', level=3)
# 重構信號
rec_signal = pywt.waverec(coeffs, 'db1')
plt.plot(x, signal, label='原信號')
plt.plot(x, rec_signal, label='重構信號(多分辨率)')
plt.legend()
plt.show()
代碼解釋:使用 PyWavelets 庫對信號進行 3 層 db1 小波分解與重構。原信號包含 10Hz 和 30Hz 成分,重構信號會綜合各尺度信息。運行代碼會發現,重構信號與原信號相似,但經過多分辨率處理后,能更清晰地展示不同尺度的特征,模擬 LLM 處理圖像或音頻時的特征提取與重建過程。
Q55: 驗證 Nyquist - Shannon 采樣定理的重構條件
Nyquist - Shannon 采樣定理如何保障 LLM 輸入質量?
Nyquist - Shannon 采樣定理是信號采樣的 “黃金法則”:如果采樣頻率至少是信號最高頻率的兩倍,那么就可以從采樣點無失真地重構原信號。在 LLM 處理音頻或圖像輸入時,遵循此定理可避免信息丟失,確保輸入質量。
驗證過程
設信號??最高頻率為?B,采樣頻率?
,采樣信號?
(
?是采樣間隔)。其傅里葉變換?
(頻譜發生周期延拓)。通過理想低通濾波器?
(截止頻率?B,增益?T),輸出?
,逆變換得:
這就是 sinc 插值公式,只要采樣頻率滿足定理,就能無失真重構原信號。
在 LLM 中的使用
音頻 CD 的采樣率定為 44.1kHz,因為人耳能聽到的最高頻率約 20kHz,44.1kHz 滿足兩倍要求。在 LLM 處理音頻輸入時,按此定理采樣確保語音識別準確。處理圖像時,避免混疊現象(如摩爾紋),保證圖像生成質量。例如,在訓練圖像生成模型時,確保采樣符合定理,避免生成圖像出現失真。
代碼示例
import numpy as np
import matplotlib.pyplot as plt
# 原信號(5Hz正弦波)
t = np.linspace(-1, 1, 1000)
f = np.sin(2 * np.pi * 5 * t)
# 采樣頻率(12Hz,高于10Hz)
fs = 12
Ts = 1 / fs
n = np.arange(-10, 10)
t_sampled = n * Ts
f_sampled = np.sin(2 * np.pi * 5 * t_sampled)
# 重構信號(sinc插值)
t_recon = np.linspace(-1, 1, 1000)
f_recon = np.zeros_like(t_recon)
for n_val in n: f_recon += f_sampled[n_val + 10] * np.sin(np.pi * (t_recon - n_val * Ts) / Ts) / (np.pi * (t_recon - n_val * Ts) / Ts)
plt.figure(figsize=(10, 5))
plt.plot(t, f, label='原信號')
plt.plot(t_recon, f_recon, label='重構信號')
plt.legend()
plt.show()
代碼解釋:生成 5Hz 的正弦波,以 12Hz 采樣(滿足定理)。通過 sinc 插值重構信號,運行代碼會發現,重構信號與原信號幾乎完全重合,驗證了定理的正確性,確保 LLM 處理音頻輸入時的準確性。
Q56: 分析快速傅里葉變換(FFT)的遞歸分治復雜度?
FFT 的高效復雜度如何助力 LLM 處理大數據?
FFT 是 DFT 的 “快速通道”,它通過分治策略,把原本??復雜度的 DFT 運算降到?
。在 LLM 處理海量文本或音頻數據時,這種高效性至關重要,能大幅減少計算時間。
分析過程
設?(為簡化,假設 N 是 2 的冪),FFT 將?N?點 DFT 分解為兩個?
?點 DFT,遞歸公式為?
。展開這個遞歸:
每一級遞歸都需要處理?
?的操作(如蝶形運算),而總共有?log N?級遞歸(因為每次規模減半),所以總復雜度是?
。
在 LLM 中的使用
在實時音頻處理中,FFT 能快速計算音頻的頻譜,實現實時音效調整,如在語音交互應用中實時分析用戶語音的頻譜特征。在雷達信號處理或大規模文本的頻譜分析中,FFT 的高效性使得實時處理成為可能,例如在文本分類中快速提取文本的頻率特征。
代碼示例
import numpy as np
import time
# 測試不同N下FFT的計算時間
Ns = [1024, 2048, 4096, 8192]
for N in Ns: x = np.random.randn(N) # 生成隨機信號 start = time.time() np.fft.fft(x) # 計算FFT end = time.time() print(f"N = {N}, 計算時間: {end - start:.6f} 秒")
代碼解釋:對不同長度?N?的隨機信號進行 FFT 計算,記錄時間。運行代碼會發現,隨著?N?翻倍,時間大約增加?log N?倍,驗證了??的復雜度。例如,N 從 1024 到 2048,時間不會翻倍,而是增加約?
?倍左右(實際因系統差異略有不同,但趨勢一致),確保 LLM 處理數據的高效性。
Q57: 推導濾波器設計中的 Z 變換極點穩定性條件
Z 變換極點穩定性如何確保 LLM 濾波器可靠?
在濾波器設計中,Z 變換??的極點位置決定了濾波器是否穩定。穩定的濾波器能保證輸入有界信號,輸出也有界(BIBO 穩定),這對 LLM 處理音頻或圖像的濾波操作至關重要。
推導過程
系統穩定要求?(單位脈沖響應絕對可和)。對于因果系統(輸出只取決于當前和過去輸入),
?的收斂域是?
。穩定的條件是所有極點都在單位圓內(
)。假設?
,其中?
,極點是?
?的根。如果每個根?
,則系統穩定。例如,對于?
,極點?
?在單位圓內,系統穩定。
在 LLM 中的使用
設計低通濾波器去除音頻噪聲時,需檢查極點是否在單位圓內,否則濾波器可能會發散,導致降噪失敗。在雙線性變換法設計 IIR 濾波器時,調整參數確保極點位置正確,避免系統不穩定。例如,在 LLM 處理音頻輸入時,設計穩定的濾波器去除背景噪聲,確保語音清晰。
代碼示例
import numpy as np
import matplotlib.pyplot as plt
# 定義濾波器分母系數(比如1 - 1.5z^{-1} + 0.7z^{-2})
a = [1, -1.5, 0.7]
# 計算極點
pole = np.roots(a[::-1]) # 注意系數順序,np.roots求多項式根
print(f"極點: {pole}")
# 檢查穩定性
is_stable = np.all(np.abs(pole) < 1)
print(f"濾波器是否穩定: {is_stable}")
# 繪制極點和單位圓
plt.figure(figsize=(6, 6))
plt.plot(np.real(pole), np.imag(pole), 'ro', label='極點')
theta = np.linspace(0, 2 * np.pi, 100)
plt.plot(np.cos(theta), np.sin(theta), 'b', label='單位圓')
plt.axis('equal')
plt.legend()
plt.show()
代碼解釋:定義濾波器的分母系數?a,計算極點并判斷是否在單位圓內。運行代碼會繪制出極點和單位圓,直觀展示穩定性。如果極點都在單位圓內,輸出 “True”,否則 “False”,確保 LLM 中濾波器設計的可靠性。
Q58: 證明維納濾波(Wiener Filter)的最小均方誤差解
維納濾波如何提升 LLM 處理噪聲數據的能力?
維納濾波是從含噪信號中恢復原信號的 “魔法鏡”,它通過最小化均方誤差(MSE)來找到最佳的濾波方式,在 LLM 處理噪聲數據(如含噪音頻或圖像)時,能有效提升輸入質量。
證明過程
設含噪信號?(
?是原信號,
?是噪聲),維納濾波器輸出?
。均方誤差?
。在頻域中:
對?
?求導并令導數為 0(求最小值):
其中?
?是原信號功率譜,
?是噪聲功率譜。這表明,維納濾波器的頻域響應由信號和噪聲的功率譜決定。
在 LLM 中的使用
在語音通話中,背景噪聲會干擾語音,維納濾波可以根據語音和噪聲的功率譜,自動調整濾波系數,去除噪聲保留清晰語音,提升 LLM 的語音識別準確率。在圖像去噪中,區分圖像信號和噪聲的功率譜,去除噪聲點,保留圖像細節,提高 LLM 處理圖像的質量。
代碼示例
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import wiener
# 生成原信號(模擬語音)
t = np.linspace(0, 1, 1000)
x = np.sin(2 * np.pi * 5 * t)
# 加噪聲(高斯白噪聲)
n = 0.5 * np.random.randn(len(t))
y = x + n
# 應用維納濾波(窗口大小31,可調整)
x_hat = wiener(y, mysize=31)
plt.figure(figsize=(10, 5))
plt.plot(t, y, label='含噪信號')
plt.plot(t, x_hat, label='維納濾波輸出')
plt.plot(t, x, label='原信號')
plt.legend()
plt.show()
代碼解釋:生成正弦波?x,加入噪聲得到?y。使用 scipy 的 wiener 函數進行濾波,調整窗口大小可以控制去噪效果。運行代碼會發現,濾波后的信號??接近原信號?x,噪聲被有效去除,展示了維納濾波在 LLM 處理噪聲數據時的實際應用效果。