離散傅里葉變換DFT推導及理解

DTFT到DFT的推導

關于DTFT的相關推導已經做過總結,詳見《DTFT及其反變換的直觀理解》,每一個離散的頻率分量都是由時域中的復指數信號累加得到的,DTFT得到的頻譜時頻率的連續函數 。

離散時間傅里葉變換公式,式1:

X(e^{j{\widehat\omega}} )=\sum\limits_{n=-\infty}^\infty x[n]e^{-j{\widehat\omega}n}

將DTFT求和公式變為可計算的形式需要兩步:采樣連續頻率變量,DTFT的求和次數有限。首先,\widehat{\omega}為連續變量,-\pi \leq\widehat{\omega}\leq\pi,故可以通過一組離散有限的頻率\widehat{\omega}_{k}計算上式;其次,當信號有限長時,DTFT求和有許多約束條件,無限長信號的傅里葉變換無法計算,通常將長序列分為段片段計算長序列的傅里葉變換。

對于有限長信號,其DTFT在\widehat{\omega}_{k}采樣值為式2:

X(e^{j\widehat{\omega}_{k} } )=\sum\limits_{n=0}^{L-1} x[n]e^{-j\widehat{\omega}_{k}n}? ? ? ? ? ? ??k=0,1,...N-1

L為序列x[n]的長度。頻譜中的頻率范圍通常表示為-\pi \leq\widehat{\omega}\leq\pi,其實任意2\pi的頻率間隔都是滿足要求的,如果頻率間隔選擇為

0\leq\widehat{\omega}\leq2\pi

并且使用N個等間隔的頻率計算公式,式3:

\widehat{\omega}_{k}=\frac{2\pi k}{N}? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?k=0,1,...N-1

將式3帶入式2,可得到DTFT的N個頻率樣本,式4:

X(e^{j\frac{2\pi k}{N}} )=\sum\limits_{n=0}^{L-1} x[n]e^{-j\frac{2\pi k}{N}n}? ? ? ? ? ??k=0,1,...N-1

式4中離散頻率指數k的范圍為:0到N-1,共N個采樣值;信號序列長度為L,n為求和的計算指數。

式4左邊可變參數為k,我們定義X[k]=X(e^{j\frac{2\pi k}{N}} )來進行簡化,當頻率樣本數N等于信號長度L時,式4的求和公式為式5:

X[k]=\sum\limits_{n=0}^{N-1} x[n]e^{-j\frac{2\pi }{N}kn}? ? ? ? ? ? ? ? ? ?k=0,1,...N-1

式5成為離散傅里葉變換,即DFT,根據以上推導過程可知,DFT是時間和頻率上都是離散的傅里葉變換。DFT將時域中的N個樣本轉換為頻域中的N值X[k]。

離散傅里葉反變換

DFT是正變換,存在離散傅里葉反變換IDFT將X[k](其中k=0,1,...,N-1)轉換為序列x[n](其中,n=0,1,...,N-1)。

IDFT為式6:

x[n]=\frac{1}{N} \sum\limits_{k=0}^{N-1} X[k]e^{j\frac{2\pi }{N}kn}? ? ? ? ? ? ? ? ?n=0,1,...N-1

式6推導過程參考相關DTFT反變換的推導過程。

DTFT和DFT的區別

DFT(離散傅里葉變換)和DTFT(離散時間傅里葉變換)的區別主要體現在以下方面:

特征

DFT

DTFT

時域信號

有限長序列(需截斷或加窗處理)

無限長序列(理論上允許無限長信號)

頻域特性

離散且周期(頻域采樣)

連續且周期(頻域無采樣)

可計算性

可直接通過數值計算實現(如FFT)

需通過極限或符號運算(無法直接計算)

周期性

隱含時域/頻域雙重周期性

僅頻域具有周期性(2π周期)

應用場景

實際數字信號處理(頻譜分析/濾波等)

理論分析(系統頻率響應等)

關鍵區別總結

  • DFT是DTFT在頻域均勻采樣的結果(DFT = DTFT在頻率點ω=2πk/N處的樣本)。
  • DFT通過有限長信號截斷,將無限求和轉化為有限求和,實現計算機可處理的離散化。
  • DTFT的頻域連續性更適用于理論推導,而DFT的離散性更適合工程實現。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/81355.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/81355.shtml
英文地址,請注明出處:http://en.pswp.cn/web/81355.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

欣佰特科技|工業 / 農業 / AR 場景怎么選?Stereolabs ZED 雙目3D相機型號對比與選型建議

Stereolabs ZED 相機系列為視覺感知領域提供了多種創新解決方案,適用于不同應用場景。選擇合適的 ZED 相機型號,需綜合考慮分辨率、深度感知范圍、接口類型等因素。 Stereolabs ZED 相機產品系列概覽 ZED:首款立體視覺相機,專為高…

黑馬點評Reids重點詳解(Reids使用重點)

目錄 一、短信登錄(redisseesion) 基于Session實現登錄流程 🔄 圖中關鍵模塊解釋: 利用seesion登錄的問題 設計key的具體細節 整體訪問流程 二、商戶查詢緩存 reids與數據庫主動更新的三種方案 緩存穿透 緩存雪崩問題及…

【Pandas】pandas DataFrame add_suffix

Pandas2.2 DataFrame Reindexing selection label manipulation 方法描述DataFrame.add_prefix(prefix[, axis])用于在 DataFrame 的行標簽或列標簽前添加指定前綴的方法DataFrame.add_suffix(suffix[, axis])用于在 DataFrame 的行標簽或列標簽后添加指定后綴的方法 pandas…

解鎖MCP:AI大模型的萬能工具箱

摘要:MCP(Model Context Protocol,模型上下文協議)是由Anthropic開源發布的一項技術,旨在作為AI大模型與外部數據和工具之間溝通的“通用語言”。它通過標準化協議,讓大模型能夠自動調用外部工具完成任務&a…

nginx性能調優與深度監控

目錄 nginx性能調優 更改進程數與連接數 進程數 連接數 靜態緩存功能設置 日志切割 配置網頁壓縮 nginx 的深度監控 GoAccess 簡介 GoAccess安裝 ?編輯 配置中文環境 GOAccess生成中文報告 測試訪問 nginx vts 簡介 nginx vts 安裝 nginx配置開啟vts 測試訪問…

【時時三省】Python 語言----牛客網刷題筆記

目錄 1,常用函數 1,input() 2,map() 3,split() 4,range() 5, 切片 6,列表推導式 山不在高,有仙則名。水不在深,有龍則靈。 ----CSDN 時時三省 1,常用函數 1,input() 該函數遇到 換行停止接收,返回類型為字符串 2,map() 該函數出鏡率較高,目的是將一個可迭…

docker compose yml 啟動的容器中,如何使用linux環境變量賦值

在 Docker Compose 中,可以通過環境變量(${VAR} 或 $VAR)來動態配置容器。以下是幾種常見的使用方式 - 使用 env_file 加載變量文件 可以單獨定義一個環境變量文件(如 app.env),然后在 docker-compose.y…

深入解析Kafka JVM堆內存:優化策略與監控實踐

💝💝💝歡迎蒞臨我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:「storms…

git常用操作命令

本文介紹git常用的操作命令,供大家參考。 1、開始 # 初始化本地git git init# 在初始化的目錄中,創建readme.txt,添加到git庫中 git add readme.txt git commit -m "寫了一個readme.txt文件"2、版本回退 2.1、git reset git lo…

解鎖 MCP 中的 JSON-RPC:跨平臺通信的奧秘

你好,我是 shengjk1,多年大廠經驗,努力構建 通俗易懂的、好玩的編程語言教程。 歡迎關注!你會有如下收益: 了解大廠經驗擁有和大廠相匹配的技術等希望看什么,評論或者私信告訴我! 文章目錄 零、 背景一、RPC vs HTTP1.1 什么是RPC1.2 為什么需要 RPC?1.3 RPC 解決了什么…

【Redis】第1節|Redis服務搭建

一、Redis 基礎概念 核心功能 內存數據庫,支持持久化(RDB/AOF)、主從復制、哨兵高可用、集群分片。常用場景:緩存、分布式鎖、消息隊列、計數器、排行榜等。 安裝環境 依賴 GCC 環境(C語言編譯)&#xff0…

GitLab-CI簡介

概述 持續集成(CI)和 持續交付(CD) 是一種流行的軟件開發實踐,每次提交都通過自動化的構建(測試、編譯、發布)來驗證,從而盡早的發現錯誤。 持續集成實現了DevOps, 使開發人員和運維人員從繁瑣的工作中解…

FFmpeg解碼器配置指南:為什么--enable-decoders不能單獨使用?

FFmpeg解碼器配置指南 在FFmpeg的編譯配置過程中,許多開發者會遇到關于解碼器配置的困惑。特別是--enable-decoders這個選項,很多人誤以為啟用它就能自動包含所有解碼器。本文將深入解析FFmpeg解碼器配置的機制,并通過實際測試展示正確的配置…

C++多態與虛函數

C++多態與虛函數詳解 多態(Polymorphism)是 C++ 面向對象編程的重要特性,通過統一的接口實現不同的行為。虛函數(Virtual Function)是實現運行時多態的核心機制。以下從多態的構成條件、意義、析構函數的虛函數化、純虛函數和抽象類,以及虛函數表的底層實現依次介紹。 1.…

游戲引擎學習第313天:回到 Z 層級的工作

回顧并為今天的內容定下基調 昨天我們新增了每個元素級別的排序功能,并且采用了一種我們認為挺有意思的方法。原本計劃采用一個更復雜的實現方式,但在中途實現的過程中,突然意識到其實有個更簡單的做法,于是我們就改用了這個簡單…

ODBC簡介

ODBC(Open Database Connectivity)是一個由 Microsoft 制定的標準接口,允許不同的應用程序通過統一的方式訪問各種數據庫系統。 🧠 簡單理解: ODBC 就像是 “翻譯官”,在應用程序(如 Excel、Py…

RK3588 buildroot QT 懸浮顯示(OSD)

概述 主要介紹在rockchip rk3588 buildroot中 運行QT程序。需要結合之前的文檔:認識DRM顯示系統、buildroot中QT開發指導、以及如何集成QT庫到3588板子上。 場景:在linux開發中,需要使用QT開發程序,做OSD顯示。(如下圖顯示,顯示器播放視頻,QT頁面懸浮于視頻上方,顯示…

sockaddr_in

在網絡編程中&#xff0c;sockaddr_in 結構體是用于表示 IPv4 地址的套接字地址結構。它定義在 <netinet/in.h> 頭文件中&#xff0c;是 sockaddr 結構體的一個特化版本&#xff0c;專門用于處理 IPv4 地址。 下面是 sockaddr_in 結構體的典型定義&#xff1a; struct …

有銅半孔工藝的制造難點與工藝優化

技術難點剖析 有銅半孔工藝在制造過程中面臨多重挑戰&#xff0c;主要集中在材料加工精度、孔壁完整性及良率控制三個方面&#xff1a; 銅層翹起與毛刺殘留 半孔成型時&#xff0c;銑刀高速切割可能導致孔壁銅層被拉扯&#xff0c;產生翹起或殘留銅屑&#xff0c;影響導電性能…

云原生安全:網絡協議TCP詳解

&#x1f525;「炎碼工坊」技術彈藥已裝填&#xff01; 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 &#xff08;注&#xff1a;文末附可視化流程圖與專有名詞說明表&#xff09; 1. 基礎概念 TCP&#xff08;Transmission Control Protocol&#xff09;是…