色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基2FFT的算法推導及python仿真

CHANBAEK ? 來源:FPGA自學筆記分享 ? 作者:FPGA自學筆記分享 ? 2023-06-02 12:38 ? 次閱讀

FFT的算法推導主要用到旋轉因子的周期性、對稱性和可約性:

圖片

基2FFT的頻域抽取法,將x(n)按照n的自然順序劃分為前后兩個部分:

圖片

所以當K為偶數時,前后兩部分相加。當k為奇數時相減。將頻域X(K)劃分為奇偶兩個序列,N點DFT就被分解為兩個N/2點的DFT:

圖片

圖片

可以得到蝶形圖如下:

圖片

進而可以得到基2FFT頻域抽取代碼的實現方法:

圖片

隨后是數據倒換,如下圖:

圖片

可以看到基2FFT頻域抽取后的輸出位置排序就是自然數二進制碼按位倒讀的值。

根據推導結果我們編寫python實現代碼:

首先根據FFT的點數計算需要迭代的次數,根據迭代次數例化一個loop_num+1*N的數組一共來存儲輸入及中間迭代的結果,同時將輸入X送入第一行作為輸入:

import numpy as np
import matplotlib.pyplot as plt


#頻域抽取的基2FFT
loop_num= int(np.log2(N))
data=np.zeros((loop_num+1,N),dtype=np.complex)
data[0]=x

隨后開始FFT的迭代,循環變量i一共來表征迭代的次數;循環變量p用來表征每次循環將將數據換分為幾塊;循環變量j用來進行蝶形運算。通過循環完成FFT的迭代及運算,代碼如下:

for i in range(loop_num):
    k=i+1
    for p in range(2**i):
        for j in range(N//(2**k)):
            data[i+1][j           +p*(N//(2**i))] =  data[i,j+p*(N//(2**i))] + data[i,j+N//(2**k) +p*(N//(2**i))]
            data[i+1][j+N//(2**k) +p*(N//(2**i))] = (data[i,j+p*(N//(2**i))] - data[i,j+N//(2**k) +p*(N//(2**i))])*np.e**(-1j*2*j*np.pi*(2**i)/N)

最終將FFT蝶形運算的結果進行輸出倒序,定義rev2(k,N)遞歸函數達到按bit翻轉的目的,最終輸出FFT結果為fft_out:

def rev2(k,N):
    if (k==0):
        return (0)
    else:
        return(((rev2(k//2,N)//2)+(k%2)*(N//2)))


#輸出倒序
fft_out = np.ones_like(data[0,:])
for k  in range (N):
    fft_out[rev2(k,N)] = data[loop_num,k]

最后為了驗證代碼正確性,直接調用python的FFT庫函數得到xf為庫函數的結果,與fft_out相減并畫圖,觀察誤差。

xf = np.fft.fft(x)
plt.plot(abs(xf))
plt.plot(abs(fft_out-xf))

輸入1024點的任意復數:

x = [int(np.round(np.sin(i)*1024))+int(np.round(np.cos(i)*1024))*1j for i in n]

波形如下:

圖片

運行python算法得到結果如下,圖中藍線是FFT計算的結果,橙線是FFT庫函數計算結果與fft_out相減的差,差值為0,認為我們的迭代算法正確。

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4607

    瀏覽量

    92843
  • FFT
    FFT
    +關注

    關注

    15

    文章

    434

    瀏覽量

    59367
  • 仿真
    +關注

    關注

    50

    文章

    4073

    瀏覽量

    133555
  • 代碼
    +關注

    關注

    30

    文章

    4780

    瀏覽量

    68530
  • python
    +關注

    關注

    56

    文章

    4793

    瀏覽量

    84631
收藏 人收藏

    評論

    相關推薦

    #硬聲創作季 5.4.1 頻域抽取2FFT算法——教學視頻

    算法FFT快速傅里葉變換
    Mr_haohao
    發布于 :2022年09月02日 10:17:12

    FFT的基本原理及算法結構

    FFT的基本原理及算法結構FFT是利用了旋轉因子的周期性和對稱性,對DFT進行簡化的運算。各種FFT算法可分兩大類:一類是針對N等于
    發表于 06-14 00:20

    【NUCLEO-F412ZG試用體驗】ARM的FFT使用及誤差分析

    的數字信號,就可以做FFT變換了。N個采樣點數據,在經過FFT之后,就可以得到N個點的FFT結果。對于快速FFT算法,有
    發表于 12-16 20:31

    FFT變換

      4.1 引言   4.2 2FFT算法   4.3 進一步減少運算量的措施   4.4 分裂FFT
    發表于 08-11 16:50 ?0次下載

    N為合數的FFT算法

    N為合數的FFT算法上面討論的以2(即N=2M)的時間抽選和頻率抽選FFT
    發表于 10-30 13:16 ?1594次閱讀
    N為合數的<b class='flag-5'>FFT</b><b class='flag-5'>算法</b>

    FFT算法的應用

    FFT算法的應用 一. 數字濾波器設計:(一)2按時間抽取FFT算法對于有限長離
    發表于 10-30 13:20 ?1w次閱讀
    <b class='flag-5'>FFT</b><b class='flag-5'>算法</b>的應用

    固定幾何結構的FFT算法及其FPGA實現

    .引言DFT及其快速算法FFT是信號處理領域的核心組成部分。FFT算法多種多樣,按數據組合方式不同一般分時域和頻域,按數據抽取方式的不同又可分為
    發表于 06-20 14:18 ?1142次閱讀
    固定幾何結構的<b class='flag-5'>FFT</b><b class='flag-5'>算法</b>及其FPGA實現

    基于改進FFT算法的OFDM調制解調模塊設計

    文章對傳統FFT算法進行了改進,改進后的算法將N點DFT分解成二維V萬點DFT的組合,在結構上更適合于用流水線方式實現FFT。文章首先對算法
    發表于 09-26 15:38 ?40次下載
    基于改進<b class='flag-5'>FFT</b><b class='flag-5'>算法</b>的OFDM調制解調模塊設計

    基于FPGA高精度浮點運算器的FFT設計與仿真

    提出一種2FFT的FPGA方法,完成了基于FPGA高精度浮點運算器的FFT的設計。利用VHDL語言描述了蝶形運算過程及地址產生單元,其仿真波形基本能正確的表示輸出結果。
    發表于 12-23 14:24 ?46次下載
    基于FPGA高精度浮點運算器的<b class='flag-5'>FFT</b>設計與<b class='flag-5'>仿真</b>

    實數FFT算法的設計及其C語言實現

    首先分析實數FFT算法推導過程,然后給出一種具體實現FFT算法的C語言程序,可以直接應用于需要FFT
    發表于 01-13 11:32 ?1.1w次閱讀
    實數<b class='flag-5'>FFT</b><b class='flag-5'>算法</b>的設計及其C語言實現

    fft算法是什么_如何提高fft算法分辨率

    利和T.W.圖提出的。采用這種算法能使計算機計算離散傅里葉變換所需要的乘法次數大為減少,特別是被變換的抽樣點數N越多,FFT算法計算量的節省就越顯著。
    發表于 11-09 09:28 ?8553次閱讀
    <b class='flag-5'>fft</b><b class='flag-5'>算法</b>是什么_如何提高<b class='flag-5'>fft</b><b class='flag-5'>算法</b>分辨率

    24時分FFT算法淺析及其比較

    FFT 算法的實質是把一長序列的 DFT 計算分割為較短序列的 DFT 計算,對于2算法而言,是把序列每次一分為二,最后分割成兩點 DFT
    發表于 11-23 10:58 ?2.9w次閱讀
    <b class='flag-5'>基</b><b class='flag-5'>2</b>與<b class='flag-5'>基</b>4時分<b class='flag-5'>FFT</b><b class='flag-5'>算法</b>淺析及其比較

    4fft蝶形圖運算單元解析

    蝶形運算,2點DFT運算稱為蝶形運算,而整個FFT就是由若干級迭代的蝶形運算組成,而且這種算法采用塬位運算,故只需N個存儲單元2. ∑∑(2
    發表于 11-23 11:48 ?5.9w次閱讀
    <b class='flag-5'>基</b>4<b class='flag-5'>fft</b>蝶形圖運算單元解析

    python推導式是什么

    python推導推導式(英文名:comprehensions),也叫解析式,是Python的一種獨有特性。 推導式是可以從一個數據序列構
    的頭像 發表于 02-28 17:13 ?2710次閱讀

    2FFT的verilog代碼實現及仿真

    上文2FFT算法推導python仿真推導
    的頭像 發表于 06-02 12:38 ?1680次閱讀
    <b class='flag-5'>基</b><b class='flag-5'>2FFT</b>的verilog代碼實現及<b class='flag-5'>仿真</b>
    主站蜘蛛池模板: 人人碰79免费视频| 欧美亚洲日韩欧洲不卡| 久久久久免费视频| 麻豆国产MV视频| 女教师苍井空体肉女教师S242| 欧美丰满白嫩bbxx| 肉肉的各种姿势高H细文| 卫生间被教官做好爽HH视频| 亚洲99精品A片久久久久久| 亚洲视频中文字幕在线| 7723手机游戏破解版下载| 扒开粉嫩的小缝末成年小美女| 囯产精品麻豆巨作久久| 国精产品一区二区三区四区糖心| 花季v3.0.2黄在线观看| 男女性杂交内射妇女BBWXZ| 日韩 亚洲 欧美 中文 高清| 小sao货ji巴cao死你视频| 亚洲视频不卡| av色天堂2018在线观看| 国产短视频精品区| 精品一区二区三区免费观看| 女bbbbxxx孕妇| 性欧美video| 2017欧美狠狠色| 国产产一区二区三区久久毛片国语 | 香蕉精品国产高清自在自线| 亚洲视频精品在线观看| 99在线观看视频| 国产色精品久久人妻无码| 老板吻我下身好爽到高潮| 色爰情人网站| 中文字幕精品视频在线| 国产成人精品免费青青草原app| 精品久久久久中文字幕加勒比东京热| 男女床上黄色| 亚洲第一色网站| CHINA篮球体育飞机2022网站| 国产日韩亚洲专区无码| 欧美xxxx印度| 夜夜草导航|