91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

總結(jié)ARM芯片的算法

GReq_mcu168 ? 來源:玩轉(zhuǎn)單片機(jī) ? 作者:玩轉(zhuǎn)單片機(jī) ? 2020-06-24 14:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

啥是傅立葉級數(shù)?在數(shù)學(xué)中,傅里葉級數(shù)(Fourier series)是把類似波的函數(shù)表示成簡單正弦波的方式。更正式地說法是,它能將任何周期性函數(shù)或周期信號分解成一個(可能由無窮個元素組成的)簡單振蕩函數(shù)的集合,即正弦函數(shù)和余弦函數(shù)(或者,等價(jià)地使用復(fù)指數(shù)),從數(shù)學(xué)的定義來看,是這樣地:

設(shè)x(t)是一周期信號,其周期為T。若x(t)在一個周期的能量是有限的,有即

則,可以將x(t)展開為傅立葉級數(shù)。怎么展開呢?計(jì)算如下:

公式中的k表示第k次諧波,這是個什么概念呢?不容易理解,看下對于一個方波的前4次諧波合成動圖就比較好理解了。這里的合成的概念是時(shí)域上的疊加的概念

總結(jié)ARM芯片的算法

總結(jié)ARM芯片的算法

啥是傅里葉變換?在數(shù)學(xué)中,傅里葉變換(Fourier transform FT )是一種數(shù)學(xué)變換,它將一個函數(shù)(通常是一個時(shí)間的函數(shù),或一個信號)分解成它的組成頻率,例如用組成音符的音量和頻率表示一個音樂和弦。傅里葉變換指的是頻域表示和將頻域表示與時(shí)間函數(shù)相關(guān)聯(lián)的數(shù)學(xué)運(yùn)算。其本質(zhì)是一種線性積分變換,用于信號在時(shí)域(或空域)和頻域之間的變換,在物理學(xué)和工程學(xué)中有許多應(yīng)用。因其基本思想首先由法國學(xué)者約瑟夫·傅里葉系統(tǒng)地提出,所以以其名字來命名以示紀(jì)念。實(shí)際上傅里葉變換就像化學(xué)分析,確定物質(zhì)的基本成分;信號來自自然界,也可對其進(jìn)行分析,確定其基本頻率成分。其數(shù)學(xué)定義為:

對于連續(xù)時(shí)間信號x(t),若x(t)在時(shí)間維度上可積分,(實(shí)際上并不一定是時(shí)間t維度,這里可以是任意維度,只需在對應(yīng)維度空間可積分即可),即:

那么,x(t)的傅立葉變換存在,且其計(jì)算式為:

其反變換為:

上面這兩個公式是啥意思呢?在度量空間可積可以理解成其在度量空間能量有限,也即對其自變量積分(相當(dāng)于求面積)是一個確定值,那么這樣的函數(shù)或者信號就可以進(jìn)行傅立葉變換展開,展開得到的就變成是頻域的函數(shù)了,如果對頻率將函數(shù)值繪制出曲線就是我們所說的頻譜圖,而其反變換就比較好理解了,如果我們知道一個信號或者函數(shù)譜密度函數(shù),就可以對應(yīng)還原出其時(shí)域的函數(shù),也能繪制出時(shí)域的波形圖。

總結(jié)ARM芯片的算法

當(dāng)然,本文限定討論時(shí)域信號是因?yàn)槲覀冸娮酉到y(tǒng)中的應(yīng)用最為普遍的就是一個時(shí)域信號,當(dāng)然推而廣之,其他的多維度信號也能利用上面定義進(jìn)行推廣,同樣在多維空間信號也非常有應(yīng)用價(jià)值,比如2維圖像處理等等。

上面兩個概念是一個東東么?傅立葉級數(shù)對應(yīng)的是周期信號,而傅立葉變換則對應(yīng)的是一個時(shí)間連續(xù)可積信號(不一定是周期信號)

傅立葉級數(shù)要求信號在一個周期內(nèi)能量有限,而后者則要求在整個區(qū)間能量有限

傅立葉級數(shù)的對應(yīng)是離散的,而傅立葉變換則對應(yīng)是連續(xù)的。

故而,兩者的物理含義不同,且其量綱也是不同的,代表周期信號的第k次諧波幅度的大小,而則是頻譜密度的概念。所以答案是這兩者從本質(zhì)上不是一個概念,傅立葉級數(shù)是周期信號的另一種時(shí)域的表達(dá)方式,也就是正交級數(shù),它是不同的頻率的波形的時(shí)域疊加。而傅立葉變換則是完全的頻域分析,傅里葉級數(shù)適用于對周期性現(xiàn)象做數(shù)學(xué)上的分析,傅里葉變換可以看作傅里葉級數(shù)的極限形式,也可以看作是對周期現(xiàn)象進(jìn)行數(shù)學(xué)上的分析,同時(shí)也適用于非周期性現(xiàn)象的分析。傅里葉級數(shù)適用于對周期性現(xiàn)象做數(shù)學(xué)上的分析,傅里葉變換可以看作傅里葉級數(shù)的極限形式,也可以看作是對周期現(xiàn)象進(jìn)行數(shù)學(xué)上的分析,同時(shí)也適用于非周期性現(xiàn)象的分析。

啥是離散傅立葉變換?離散傅里葉變換(Discrete Fourier Transform,縮寫為DFT),是傅里葉變換在時(shí)域和頻域上都呈離散的形式,將信號的時(shí)域采樣變換為其DTFT的頻域采樣。

在形式上,變換兩端(時(shí)域和頻域上)的序列是有限長的,而實(shí)際上這兩組序列都應(yīng)當(dāng)被認(rèn)為是離散周期信號的主值序列。即使對有限長的離散信號作DFT,也應(yīng)當(dāng)將其看作其周期延拓的變換。在實(shí)際應(yīng)用中通常采用快速傅里葉變換計(jì)算DFT。

對于N點(diǎn)序列,它的離散傅立葉變換為(DFT)為:

其中k=0,1,。..。,N-1,上面的式子展開一下:

總結(jié)ARM芯片的算法

啥是快速傅立葉變換?快速傅立葉變換(Fast Fourier Transform:FFT)是一種計(jì)算數(shù)字信號序列的離散傅立葉變換(Discrete Fourier Transform:DFT)或其逆變換(IDFT)的算法。傅里葉分析將信號從其原始域(通常是時(shí)間或空間)轉(zhuǎn)換為頻域的表示,反之亦然。DFT是通過將一系列值分解成不同頻率的分量來獲得的。這個操作在很多領(lǐng)域中都很有用,但是直接從定義中計(jì)算它通常太慢而不實(shí)際。FFT通過將DFT矩陣分解成稀疏(大部分為零)因子的乘積來快速計(jì)算這種轉(zhuǎn)換。所以其本質(zhì)是實(shí)現(xiàn)離散傅立葉變換的一種優(yōu)化算法,將時(shí)間復(fù)雜度從降低為,其中N為待計(jì)算序列的長度。當(dāng)N非常大時(shí),這種優(yōu)化在時(shí)間維度上提升是非常顯著的。尤其在嵌入式應(yīng)用領(lǐng)域,由于受限于采用的芯片算力往往不強(qiáng),所以FFT算法較之于DFT的效果是非常有應(yīng)用價(jià)值的。

1994年,Gilbert Strang將FFT描述為“我們一生中最重要的數(shù)值算法”,并被IEEE雜志《計(jì)算科學(xué)與工程》列入20世紀(jì)十大算法之一,它深遠(yuǎn)的影響了我們世界與日常生活。說這個算法改變了世界也不為過。在我們?nèi)粘I钪泻芏嘣O(shè)備里面都有它的影子,比如手機(jī)、比如photoshop,比如數(shù)字音響等等。

快速傅立葉算法的最核心思想就是計(jì)算機(jī)科學(xué)里面常見的分治思想,即把一個復(fù)雜的問題,分解為一個小的類似問題進(jìn)行求解。

FFT基本上可分為兩類,時(shí)間抽取法和頻率抽取法,而一般的時(shí)間抽取法和頻率抽取法只能處理長度N=2M的情況,另外還有組合數(shù)基四FFT來處理一般長度的FFT。所謂抽取,就是把長序列分為短序列的過程,可在時(shí)域也可在頻域進(jìn)行。最常用的時(shí)域抽選方法是按奇偶將長序列不斷地變?yōu)槎绦蛄?,結(jié)果使輸入序列為倒序,輸出序列為順序排列,這就是Coolly—Tukey算法。

假定待變換離散時(shí)間序列信號長度為,將x(n)按照奇偶分組:

上式可變換為:

其中,k取0,1,。..,N/2-1

從而,

由于A(k),B(k)都是點(diǎn)的DFT,X(k)為N點(diǎn)的DFT。那么這一分治思想還可以進(jìn)一步做下去,這里就不贅述了。

下圖就是一個時(shí)間抽取的基2FFT算法的示意圖:

總結(jié)ARM芯片的算法

對于頻率抽取基2的示意圖其原理類似,這里放個圖:

總結(jié)ARM芯片的算法

不同點(diǎn):

DIT2 FFT是在時(shí)域先進(jìn)行奇歐倒序,頻域輸出為正序

DIF2 FFT其輸入序列在時(shí)域是正序,而頻域輸出為奇偶分開的倒序。

代碼實(shí)踐好了,前面碼了這么多字,還是不夠直觀,為了更好說明前面的分治思想,這里放了個遞歸實(shí)現(xiàn)代碼測一下看看療效:

#include 《assert.h》

#include 《math.h》

#include 《stdio.h》

#include 《stdlib.h》

#define q 8 /* 2^q 點(diǎn),256 */

#define N (1《《q) /* N點(diǎn) FFT, iFFT */

typedef float real;

typedef struct{

real Re;

real Im;

} complex;

#ifndef PI

# define PI 3.14159265358979323846264338327950288

#endif

/*為了更好說明分治思想,這里采用遞歸實(shí)現(xiàn),結(jié)束條件為N《=1*/

void fft( complex *v, int n, complex *tmp )

if(n》1) { /* N如小于1,直接返回*/

int k,m; complex z, w, *vo, *ve;

ve = tmp; vo = tmp+n/2;

for(k=0; k《n/2; k++) {

ve[k] = v[2*k];

vo[k] = v[2*k+1];

fft( ve, n/2, v ); /* FFT 偶數(shù)序列 v[] */

fft( vo, n/2, v ); /* FFT 偶數(shù)序列 v[] */

for(m=0; m《n/2; m++) {

w.Re = cos(2*PI*m/(double)n);

w.Im = -sin(2*PI*m/(double)n);

z.Re = w.Re*vo[m].Re - w.Im*vo[m].Im; /* Re(w*vo[m]) */

z.Im = w.Re*vo[m].Im + w.Im*vo[m].Re; /* Im(w*vo[m]) */

v[ m ].Re = ve[m].Re + z.Re;

v[ m ].Im = ve[m].Im + z.Im;

v[m+n/2].Re = ve[m].Re - z.Re;

v[m+n/2].Im = ve[m].Im - z.Im;

return;

/*為了更好說明分治思想,這里采用遞歸實(shí)現(xiàn),結(jié)束條件為N《=1*/

void ifft( complex *v, int n, complex *tmp )

if(n》1) {

int k,m; complex z, w, *vo, *ve;

ve = tmp; vo = tmp+n/2;

for(k=0; k《n/2; k++) {

ve[k] = v[2*k];

vo[k] = v[2*k+1];

ifft( ve, n/2, v ); /* FFT 偶數(shù)序列 v[] */

ifft( vo, n/2, v ); /* FFT 奇數(shù)序列 v[] */

for(m=0; m《n/2; m++) {

w.Re = cos(2*PI*m/(double)n);

w.Im = sin(2*PI*m/(double)n);

z.Re = w.Re*vo[m].Re - w.Im*vo[m].Im; /* Re(w*vo[m]) */

z.Im = w.Re*vo[m].Im + w.Im*vo[m].Re; /* Im(w*vo[m]) */

v[ m ].Re = ve[m].Re + z.Re;

v[ m ].Im = ve[m].Im + z.Im;

v[m+n/2].Re = ve[m].Re - z.Re;

v[m+n/2].Im = ve[m].Im - z.Im;

return;

#define SAMPLE_RATE (10000.0f)

int main(void)

complex v[N], scratch[N];

float amp[N];

int k;

/*模擬一個采樣系統(tǒng),采樣率為10KHz,有兩個信號:500Hz/2kHz*/

for(k=0; k《N; k++) {

v[k].Re = 1*sin(2*PI*500*k/SAMPLE_RATE)+0.5*sin(2*PI*2000*k/SAMPLE_RATE);

v[k].Im = 0;//實(shí)際信號處理時(shí),虛部常為0

/*輸出模擬信號*/

for(int i=0;i《N;i++)

printf(“%f,”,v[i].Re);

printf(“

fft( v, N, scratch );

for( int i=0;i《N;i++)

printf(“%f,”,sqrt(v[i].Re*v[i].Re+v[i].Im*v[i].Im));

printf(“

”);

while(1);

總結(jié)一下本文目的為了方便理解快速傅立葉的算法思想,如果需要將算法實(shí)際應(yīng)用到單片機(jī)或者DSP中,還需要做進(jìn)一步的優(yōu)化,實(shí)際使用時(shí),一般會將蝶形算子做成一個表,另外也會做定點(diǎn)優(yōu)化。對于ARM芯片而言,其CMSIS庫有現(xiàn)成的實(shí)現(xiàn)例子可以直接使用,對于TI系列DSP而言,也內(nèi)置了FFT代碼庫,可直接使用。
責(zé)任編輯:pj

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

    關(guān)注

    561

    文章

    8250

    瀏覽量

    367035
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6077

    文章

    45510

    瀏覽量

    671340
  • ARM芯片
    +關(guān)注

    關(guān)注

    1

    文章

    128

    瀏覽量

    22777
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Arm Flexible Access 擴(kuò)容升級,賦能更多企業(yè)加速芯片開發(fā)

    與適用范圍,并簡化加入流程。此次更新旨在降低復(fù)雜度、加快項(xiàng)目進(jìn)程, 在 最大程度為初創(chuàng)企業(yè)及成熟芯片設(shè)計(jì)團(tuán)隊(duì) 降低設(shè)計(jì) 風(fēng)險(xiǎn) 的前提下,讓他們同時(shí)得以釋 放更廣闊 的 邊緣 人工智能 ?(AI) 創(chuàng)新空間。 Arm 商業(yè)賦能總監(jiān) Neil Parris 表示:“
    的頭像 發(fā)表于 02-04 16:20 ?1239次閱讀
    <b class='flag-5'>Arm</b> Flexible Access 擴(kuò)容升級,賦能更多企業(yè)加速<b class='flag-5'>芯片</b>開發(fā)

    選擇加密算法時(shí)需考慮哪些因素?

    芯源半導(dǎo)體安全芯片的硬件加密引擎支持多種國際通用加密算法,在實(shí)際為物聯(lián)網(wǎng)設(shè)備選擇加密算法時(shí),需考慮哪些因素?
    發(fā)表于 11-17 07:43

    自主可控背景下MCU芯片的替代之路:從ARM到RISC-V的機(jī)遇與挑戰(zhàn)

    近年來,國際技術(shù)競爭日益激烈,芯片供應(yīng)鏈安全問題凸顯。MCU(微控制器)作為工業(yè)控制、汽車電子、航天設(shè)備的"大腦",其自主可控已成為我國集成電路產(chǎn)業(yè)的重中之重。傳統(tǒng)ARM架構(gòu)雖成熟可靠,但授權(quán)模式
    的頭像 發(fā)表于 11-12 21:57 ?734次閱讀

    SM4算法實(shí)現(xiàn)分享(一)算法原理

    SM4分組加密算法采用的是非線性迭代結(jié)構(gòu),以字為單位進(jìn)行加密、解密運(yùn)算,每次迭代稱為一輪變換,每輪變換包括S盒變換、非線性變換、線性變換、合成變換。加解密算法與密鑰擴(kuò)展都是采用32輪非線性迭代結(jié)構(gòu)
    發(fā)表于 10-30 08:10

    國密系列算法簡介及SM4算法原理介紹

    所示: 非對稱加密算法:SM2算法可用于電子認(rèn)證服務(wù);SM9算法可用于各種互聯(lián)網(wǎng)新興應(yīng)用。 對稱加密算法:SM1算法未公布,以IP核的形式
    發(fā)表于 10-24 08:25

    Telechips與Arm合作開發(fā)下一代IVI芯片Dolphin7

    Telechips宣布,將在與 Arm的戰(zhàn)略合作框架下,正式開發(fā)下一代車載信息娛樂系統(tǒng)(IVI)系統(tǒng)級芯片(SoC)“Dolphin7”。
    的頭像 發(fā)表于 10-13 16:11 ?1207次閱讀

    Arm助力MediaTek天璣9500重塑旗艦體驗(yàn)

    Arm 合作伙伴產(chǎn)品上“芯”!近日,MediaTek 發(fā)布了天璣 9500 旗艦 5G 智能體 AI 芯片,該芯片基于啟用 SME2 的全新 Arm C1 CPU 集群打造,并搭載
    的頭像 發(fā)表于 10-10 11:28 ?1260次閱讀

    Arm Zena CSS加速軟件和芯片開發(fā)進(jìn)程

    Arm 控股有限公司(納斯達(dá)克股票代碼:ARM,以下簡稱 Arm)近期宣布推出 Arm Zena 計(jì)算子系統(tǒng) (Compute Subsystems, CSS)。作為標(biāo)準(zhǔn)化且預(yù)先集成的
    的頭像 發(fā)表于 08-25 16:22 ?2128次閱讀

    SL1680防偷拍識別算法 # 防偷拍# 算法# 芯片# 深蕾科技

    芯片
    深蕾半導(dǎo)體
    發(fā)布于 :2025年08月18日 16:03:23

    PPEC電源DIY套件:圖形化算法編程,解鎖電力電子底層算法實(shí)踐

    電源。這種方式不僅降低了開發(fā)門檻,還保留了對底層算法的控制能力,具有很強(qiáng)的實(shí)踐性和教育意義。 升級版開關(guān)電源DIY 套件核心組件含: PPEC 最小系統(tǒng)板(PPEC32F334RBT7 芯片
    發(fā)表于 08-14 11:30

    mcu芯片和soc芯片的區(qū)別解析

    MCU(微控制器單元)和SoC(系統(tǒng)級芯片)是兩種常見的芯片類型,它們在設(shè)計(jì)目標(biāo)、應(yīng)用場景和功能集成上有顯著區(qū)別。以下是主要差異的總結(jié): 1. 核心結(jié)構(gòu)與功能 MCU(Microcontroller
    的頭像 發(fā)表于 08-12 11:34 ?4981次閱讀
    mcu<b class='flag-5'>芯片</b>和soc<b class='flag-5'>芯片</b>的區(qū)別解析

    Arm CEO:公司正在自研芯片

    據(jù)外媒路透社報(bào)道,Arm CEO Rene Haas透露,Arm正在投資開發(fā)自有芯片,并計(jì)劃將部分利潤投資于制造自己的芯片和其他組件。與之對應(yīng)的是A
    的頭像 發(fā)表于 07-31 11:49 ?669次閱讀

    ARM加大投資自研芯片,2026財(cái)年第一季營收達(dá)10.5億美元

    7月30日,芯片IP大廠ARM安謀 CEO Rene Haas表示,公司正在加大投資,計(jì)劃開發(fā)自有芯片與系統(tǒng)產(chǎn)品,這象征著ARM營運(yùn)模式開始轉(zhuǎn)型,將從單純的IP授權(quán)跨越到實(shí)體
    的頭像 發(fā)表于 07-31 10:24 ?8332次閱讀
    <b class='flag-5'>ARM</b>加大投資自研<b class='flag-5'>芯片</b>,2026財(cái)年第一季營收達(dá)10.5億美元

    石油測井儀器電子艙的“大腦”——高溫ARM處理器芯片

    175℃高溫ARM處理器芯片是高溫電子學(xué)的尖端成果,是解鎖深部、高溫油氣資源勘探開發(fā)的關(guān)鍵技術(shù)之一
    的頭像 發(fā)表于 07-22 13:09 ?1022次閱讀
    石油測井儀器電子艙的“大腦”——高溫<b class='flag-5'>ARM</b>處理器<b class='flag-5'>芯片</b>

    單片機(jī)項(xiàng)目實(shí)例:XPT2046觸摸屏芯片驅(qū)動與校準(zhǔn)算法

    單片機(jī)項(xiàng)目實(shí)例:XPT2046觸摸屏芯片驅(qū)動與校準(zhǔn)算法,推薦下載!
    發(fā)表于 06-09 22:24