0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DSP進(jìn)行浮點(diǎn)快速傅立葉變換剖析

貿(mào)澤電子設(shè)計(jì)圈 ? 來(lái)源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-09-18 06:44 ? 次閱讀

前言

本文目的是演示如何使用STM32F30x 內(nèi)部的DSP 進(jìn)行浮點(diǎn)快速傅立葉變換(FFT),為聯(lián)系實(shí)際應(yīng)用,使用ADC 對(duì)波形發(fā)生器進(jìn)行ADC 采樣,然后對(duì)ADC 采樣結(jié)果進(jìn)行FFT, 與 Matlab 仿真結(jié)果進(jìn)行比較察看最終結(jié)果的準(zhǔn)確性。會(huì)使用到ARMDSP 庫(kù)文件,以及STM32F30x 的浮點(diǎn)運(yùn)算單元以及DSP指令等。

模擬ADC采樣數(shù)據(jù)實(shí)現(xiàn)FFT

使用Matlab生成AM調(diào)制波形

波形公式為:AM_50= sin(2πfc)*(1+50%*sin(2πfm)), 其中fc 為載波頻率,fm 為調(diào)制波頻率,調(diào)制比50%。為了使用ADC 采樣,將波形進(jìn)行偏移處理,疊加1.5V 電壓,最終波形展開(kāi)公式如下:

AM_50 = sin(2πfc) + 50%*sin(2πfm))* sin(2πfc) + 1.5

Matlab 程序如下:

x =sin(2*pi*fm*t); % modulation wave

figure;plot(t,x);y =sin(2*pi*fc*t); % carrier wavefigure;plot(t,y);z1 =y.*(1+m1*x) + 1.5; % AM wave with 50% depthfigure; %figure 1plot(t,z1);xlabel('Time');ylabel('Amplitude');title('AM with50% depth');Z1 =z1*4096/3.3; % 12-bit ADC Value

產(chǎn)生波形如下:

圖【一】

生成模擬ADC數(shù)據(jù),使用STM32F30x進(jìn)行FFT運(yùn)算

生成數(shù)據(jù)存于AM_50_ADC_Data[]數(shù)組中,實(shí)數(shù)轉(zhuǎn)換為復(fù)數(shù),進(jìn)行CFFT 的運(yùn)算,調(diào)用arm_cfft_f32 庫(kù)函數(shù),1024 點(diǎn)FFT。

/* Real data to magnitudedata */

for(i=0; i {testInput_f32_10khz[i*2+1] =0;testInput_f32_10khz[i*2] = AM_50_ADC_Data[i];}

/* Process the data throughthe CFFT/CIFFT module */

arm_cfft_f32(&arm_cfft_sR_f32_len1024,testInput_f32_10khz, ifftFlag, doBitReverse);

/* Process the data throughthe Complex Magnitude Module forcalculating the magnitude ateach bin */

arm_cmplx_mag_f32(testInput_f32_10khz,testOutput, fftSize);

結(jié)果打印并和Matlab計(jì)算結(jié)果進(jìn)行比較

為方便顯示只取整數(shù)部分比較:圖【二】為Matlab 輸出,圖【三】為經(jīng)過(guò)STM32F30x計(jì)算后的結(jié)果.

圖【二】

圖【三】

從數(shù)據(jù)上看Matlab 仿真以及STM32F30x的FFT 兩者非常吻合,數(shù)據(jù)可以直接使用?;跁r(shí)間數(shù)據(jù)轉(zhuǎn)換到頻域上,理論上直流分量,頻率fc處,以及頻率fc-fm,fc+fm 處都會(huì)有波峰出現(xiàn),實(shí)際看FFT 波形如下:

實(shí)際ADC采樣并進(jìn)行FFT操作

使用波形發(fā)生器產(chǎn)生50% 調(diào)幅波,載波10KHz,調(diào)制波1KHz,調(diào)制比50%,偏移1.5V。

使用STM32F30x進(jìn)行ADC 采樣,采樣結(jié)果存于數(shù)組,數(shù)據(jù)導(dǎo)入到Matlab 顯示波形如下:

根據(jù)ADC采樣數(shù)據(jù)進(jìn)行FFT 變換,分析結(jié)果如下面所示:

結(jié)論:

由STM32F30x 的ADC 采樣的波形可以完整進(jìn)行快速傅立葉變換,變化結(jié)果符合理論變化預(yù)期。并且利用STM32F30x 的FPU 以及DSP 模塊方便快速進(jìn)行變化,給實(shí)際應(yīng)用帶來(lái)很大便利性。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    552

    文章

    7921

    瀏覽量

    347653
  • 模擬電路
    +關(guān)注

    關(guān)注

    125

    文章

    1551

    瀏覽量

    102568
  • 傅立葉變換
    +關(guān)注

    關(guān)注

    3

    文章

    99

    瀏覽量

    32322

原文標(biāo)題:【演示示例】STM32F30x ADC 采樣的傅立葉變換,建議看看!

文章出處:【微信號(hào):Mouser-Community,微信公眾號(hào):貿(mào)澤電子設(shè)計(jì)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    快速傅立葉變換(FFT)算法實(shí)驗(yàn)

    本帖最后由 mr.pengyongche 于 2013-4-30 02:23 編輯 快速傅立葉變換(FFT)算法實(shí)驗(yàn)一、摘
    發(fā)表于 12-21 10:54

    淺懂示波器FFT快速傅立葉變換功能及運(yùn)用

    變換,是離散傅氏變換快速算法,它是根據(jù)離散傅氏變換的奇、偶、虛、實(shí)等特性,對(duì)離散傅立葉變換
    發(fā)表于 01-14 17:00

    如何使用STM32F30x內(nèi)部的DSP進(jìn)行浮點(diǎn)快速傅立葉變換?

    本文目的是演示如何使用STM32F30x 內(nèi)部的DSP 進(jìn)行浮點(diǎn)快速傅立葉變換(FFT),為聯(lián)系
    發(fā)表于 02-24 09:13

    傅立葉變換.ppt

    傅立葉變換數(shù)學(xué)物理方法,傅立葉變換,傅立葉級(jí)數(shù),傅立葉級(jí)數(shù)
    發(fā)表于 08-26 09:08 ?0次下載

    快速傅立葉變換(FFT)的Nios II實(shí)現(xiàn)

    快速傅立葉變換(FFT)的Nios II實(shí)現(xiàn) 隨著數(shù)字電子技術(shù)的發(fā)展,數(shù)字信號(hào)處理的理論和技術(shù)廣泛地應(yīng)用于通訊、語(yǔ)音處理、計(jì)算機(jī)和多媒體等領(lǐng)域。快速傅里葉
    發(fā)表于 02-09 09:38 ?81次下載

    基于FPGA的快速傅立葉變換

    摘要:在對(duì)FFT(快速傅立葉變換)算法進(jìn)行研究的基礎(chǔ)上,描述了用FPGA實(shí)現(xiàn)FFT的方法,并對(duì)其中的整體結(jié)構(gòu)、蝶形單元及性能等進(jìn)行了分析。
    發(fā)表于 06-20 14:13 ?1091次閱讀

    1024點(diǎn)FFT快速傅立葉變換

    Xilinx FPGA工程例子源碼:1024點(diǎn)FFT快速傅立葉變換
    發(fā)表于 06-07 14:13 ?33次下載

    Xilinx 的IP:1024點(diǎn)FFT快速傅立葉變換

    Xilinx FPGA工程例子源碼:Xilinx 的IP:1024點(diǎn)FFT快速傅立葉變換
    發(fā)表于 06-07 15:07 ?51次下載

    如何利用TMS320DSP平臺(tái)實(shí)現(xiàn)實(shí)值序列的快速傅立葉變換算法的詳細(xì)概述

    快速傅立葉變換(FFT)是傅立葉變換(DFT)的有效計(jì)算方法,是數(shù)字信號(hào)處理應(yīng)用中最重要的工具之一。由于其結(jié)構(gòu)形式良好,F(xiàn)FT是評(píng)估數(shù)字信號(hào)
    發(fā)表于 05-04 11:09 ?5次下載
    如何利用TMS320<b class='flag-5'>DSP</b>平臺(tái)實(shí)現(xiàn)實(shí)值序列的<b class='flag-5'>快速</b><b class='flag-5'>傅立葉</b><b class='flag-5'>變換</b>算法的詳細(xì)概述

    快速傅立葉變換的基本概念及加窗函數(shù)的介紹

    4.2 快速傅立葉變換及加窗函數(shù)
    的頭像 發(fā)表于 05-07 06:09 ?6412次閱讀
    <b class='flag-5'>快速</b><b class='flag-5'>傅立葉</b><b class='flag-5'>變換</b>的基本概念及加窗函數(shù)的介紹

    如何使用STM32F30x 內(nèi)部的DSP 進(jìn)行浮點(diǎn)快速傅立葉變換資料下載

    電子發(fā)燒友網(wǎng)為你提供如何使用STM32F30x 內(nèi)部的DSP 進(jìn)行浮點(diǎn)快速傅立葉變換資料下載的電
    發(fā)表于 04-05 08:57 ?16次下載
    如何使用STM32F30x 內(nèi)部的<b class='flag-5'>DSP</b> <b class='flag-5'>進(jìn)行</b><b class='flag-5'>浮點(diǎn)</b><b class='flag-5'>快速</b><b class='flag-5'>傅立葉</b><b class='flag-5'>變換</b>資料下載

    簡(jiǎn)述FPGA的快速傅立葉變換

    摘要:在對(duì)FFT(快速傅立葉變換)算法進(jìn)行研究的基礎(chǔ)上,描述了用FPGA實(shí)現(xiàn)FFT的方法,并對(duì)其中的整體結(jié)構(gòu)、蝶形單元及性能等進(jìn)行了分析。
    的頭像 發(fā)表于 05-27 11:21 ?2182次閱讀
    簡(jiǎn)述FPGA的<b class='flag-5'>快速</b><b class='flag-5'>傅立葉</b><b class='flag-5'>變換</b>

    STM32F30x 的ADC 采樣的傅立葉變換

    STM32F30x 的ADC 采樣的傅立葉變換(理士國(guó)際電源技術(shù)有限公司)-本文目的是演示如何使用STM32F30x 內(nèi)部的DSP 進(jìn)行浮點(diǎn)
    發(fā)表于 08-04 17:47 ?71次下載
    STM32F30x 的ADC 采樣的<b class='flag-5'>傅立葉</b><b class='flag-5'>變換</b>

    傅立葉變換是怎么變換傅立葉的理解

    關(guān)于傅立葉變換,無(wú)論是書(shū)本還是在網(wǎng)上可以很容易找到關(guān)于傅立葉變換的描述,但是大都讓人很難理解太過(guò)抽象,盡是一些讓人看了就望而生畏的公式的羅列。 要理解
    的頭像 發(fā)表于 08-25 11:25 ?4743次閱讀

    淺懂示波器FFT快速傅立葉變換功能及運(yùn)用

    變換,是離散傅氏變換快速算法,它是根據(jù)離散傅氏變換的奇、偶、虛、實(shí)等特性,對(duì)離散傅立葉變換
    的頭像 發(fā)表于 11-08 15:01 ?6359次閱讀
    淺懂示波器FFT<b class='flag-5'>快速</b><b class='flag-5'>傅立葉</b><b class='flag-5'>變換</b>功能及運(yùn)用