日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数字信号处理学习笔记(一)|离散傅里叶变换

發(fā)布時間:2025/3/12 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数字信号处理学习笔记(一)|离散傅里叶变换 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

離散傅里葉變換(DFT)

離散傅里葉變換(Discrete Fourier Transform)的實質(zhì)是有限長序列傅里葉變換的有限點離散采樣,實現(xiàn)了頻域離散化,使數(shù)字信號處理可以在頻域采用數(shù)值運算的方法進(jìn)行,增大了數(shù)字信號處理的靈活性。

一、DTF的定義

設(shè)x(n)是一個長度為M的有限長序列,則定義x(n)的N點離散傅里葉變化為:

逆變換為:

二、DFT與傅里葉變換的關(guān)系


上述式子說明了:DFT的X(k)是x(n)傅里葉變換X(e^jw)在區(qū)間[0,2π]上的N點等間隔采樣。

三、DFT與Z變換的關(guān)系



**上述式子說明了:DFT的X(k)是Z變換X(z)在單位圓上的N點等間隔采樣

四、DFT的性質(zhì)

(1)線性

(2)循環(huán)位移

設(shè)x(n)為有限長序列。長度為M,M≤N,則x(n)的循環(huán)位移為

循環(huán)過程如下所示:

(3)時域循環(huán)移位定理

設(shè)x(n)是長度為M(M≤N)的有限長序列,y(n)為x(n)的循環(huán)移位。即:
則:
證明過程如下:

令n+m=n’,則有

(4)頻域循環(huán)移位定理

同(3)

(4)復(fù)共軛序列的DFT

設(shè)x*(n)是x(n)的復(fù)共軛序列,長度為N,則
證明如下,根據(jù)DFT唯一性

五、用DFT進(jìn)行譜分析的誤差

(1)混疊現(xiàn)象:

對連續(xù)信號進(jìn)行譜分析時,首先要對其采樣,由時域連續(xù)變時域離散信號,再用DFT(FFt)進(jìn)行譜分析。采樣速率必須滿足采樣定理,否則會在w=π附近發(fā)生頻率混疊現(xiàn)象。
對于Fs確定的情況,一般在采樣前進(jìn)行預(yù)濾波,濾除高于折疊頻率Fs/2的頻率成分

(2)柵欄效應(yīng):

N點DFT是在頻率區(qū)間[0,2π]上對時域離散信號的頻譜進(jìn)行N點等間隔采樣,二采樣點之間的頻譜是看不到的。
采用提高頻率分辨率,對原序列尾部補(bǔ)零,增大截取長度及DFT變換區(qū)間長度等方法解決柵欄效應(yīng)

(3)截斷效應(yīng)

對無限長序列進(jìn)行譜分析時,需要將其截斷 成有限長序列。
影響有
(1)泄露
(2)譜間干擾

六、用Python語言編寫DFT算法

編程思路:
1、利用歐拉公式

得到
2、幅值計算

計算sin(0.4pin+pi/3)+10sin(0.2pin+pi/4)

代碼如下:

from math import * import numpy as np import matplotlib.pyplot as plt def signal(n):return (sin(0.4 * pi * n + pi / 3) + 10 * sin(0.2 * pi * n + pi / 4))# 生成WN項 def wn_k(k, n, N):return complex(cos(2 * pi * n * k / N), sin(-2 * pi * n * k / N))amplitude = [] # 準(zhǔn)備一個空列表 power_spectrum = [] sums = 0# 256點DFT,X(0)到X(255) for k in range(0, 256):for n in range(1, 257):# n的取值為從1到256sums = sums + signal(n) * wn_k(k, n, 256)amplitude.append(sums)sums = 0print(amplitude, len(amplitude))for i in range(0, 256):power_spectrum.append(amplitude[i] ** 2)plt.subplot(2, 1, 1) plt.plot(np.abs(amplitude)) plt.title("amplitude_spectrum") plt.subplot(2, 1, 2) plt.plot(np.abs(power_spectrum)) plt.title("power_spectrum") plt.show()

總結(jié)

以上是生活随笔為你收集整理的数字信号处理学习笔记(一)|离散傅里叶变换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。