打印

GD32F303之快速傅里叶变换

[复制链接]
3003|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、变换目标
x=2*sin(2*pi*50*t); 采样率为1000;
二、测试函数
#include "dsp_fft.h"

float32_t test_out[1024];
float32_t test_in[2048];

void fft_test(void)
{
        u16 i;

       
        for(i=0;i<1024;i++)
        {
                test_in[i*2+1]=0;
                test_in[i*2]=arm_sin_f32(2*3.1415926*50*i/1000);
        }
        arm_cfft_f32(&arm_cfft_sR_f32_len1024,test_in,0,1);
        arm_cmplx_mag_f32(test_in,test_out,1024);
        for(i=0;i<1024;i++)
        {
                printf("%f\r\n",test_out[i]);
        }
}



三、主函数

/*
    昆明电器科学研究所 张恩寿 2019年5月3日
       
       
*/
#include "bitband.h"
#include "led_config.h"
#include "systick.h"
#include "usart.h"
#include "spi_flash.h"
#include "tft.h"
#include "key_lookup.h"
#include "dsp_fft.h"




int main(void)
{                       
        systick_config(120);
        nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);
        usart0_init(115200);
    led_init();
        fft_test();
        
        while(1)
        {
                led_on();
                delay_nms(600);
                led_off();
                delay_nms(600);
        }
               
}




四、MATLAB函数
stm32=[1.705632
1.707621
1.713326
1.722719
1.735882
1.752857
1.773772
1.798508
1.827277
1.860163
1.897144
1.938122
1.983548
2.033568
2.088088
2.147741
2.212042
2.282177
2.357983
2.439880
2.528092
2.623763
2.726846
2.838429
2.959060
3.089876
3.231769
3.386125
3.554645
3.738804
3.940831
4.163391
4.409548
4.683141
4.989015
5.332843
5.721903
6.166427
6.678069
7.273537
7.975621
8.815111
9.837244
11.108480
12.732266
14.879780
17.852674
22.240526
29.369764
42.978416
79.265205
478.406281
120.296638
53.772808
34.764549
25.759335
20.505369
17.062328
14.631233
12.823098
11.425245
10.312147
9.404791
8.650594
8.014164
7.469474
6.998009
6.586292
6.223259
5.900481
5.611870
5.352154
5.117285
4.903747
4.708768
4.529855
4.365328
4.213433
4.072542
3.941772
3.819881
3.706118
3.599553
3.499597
3.405564
3.316926
3.233330
3.154626
3.079564
3.008623
2.941279
2.877166
2.816226
2.757876
2.702428
2.649343
2.598507
2.549876
2.503153
2.458415
2.415564
2.374239
2.334496
2.296287
2.259437
2.223906
2.189626
2.156370
2.124491
2.093456
2.063578
2.034624
2.006721
1.979478
1.953124
1.927659
1.902704
1.878604
1.855249
1.832461
1.810496
1.788850
1.767703
1.747423
1.727579
1.708428
1.689857
1.671444
1.653469
1.635973
1.618953
1.602362
1.586097
1.570187
1.554554
1.539359
1.524696
1.510090
1.495952
1.482038
1.468630
1.455292
1.442373
1.429402
1.416936
1.404837
1.392874
1.381115
1.369549
1.358197
1.347302
1.336454
1.325581
1.315329
1.304817
1.294665
1.284861
1.275251
1.265608
1.256245
1.247059
1.238021
1.229096
1.220244
1.211625
1.203201
1.195096
1.186803
1.178958
1.171129
1.163197
1.155283
1.147813
1.140400
1.133089
1.126058
1.118900
1.111673
1.105019
1.098120
1.091466
1.085091
1.078551
1.071986
1.065795
1.059625
1.053377
1.047395
1.041494
1.035593
1.029878
1.024193
1.018570
1.013009
1.007612
1.002152
0.996941
0.991575
0.986392
0.981311
0.976263
0.971295
0.966458
0.961598
0.956707
0.951966
0.947264
0.942690
0.938204
0.933678
0.929323
0.924682
0.920126
0.916139
0.911875
0.907646
0.903809
0.899788
0.895552
0.891553
0.887700
0.883872
0.880002
0.875981
0.872332
0.868851
0.865340
0.861670
0.857843
0.854081
0.850627
0.847250
0.843765
0.840376
0.836955
0.833661
0.830501
0.827214
0.823917
0.820735
0.817528
0.814454
0.811420
0.808434
0.805541
0.802449
0.799689
0.796649
0.793619
0.790753
0.788025
0.785206
0.782519
0.779524
0.776883
0.774462
0.771012
0.769007
0.766530
0.763897
0.761283
0.758819
0.756306
0.753913
0.751347
0.748840
0.746699
0.744211
0.741727
0.739418
0.737209
0.735040
0.732558
0.730283
0.728240
0.725993
0.723771
0.721577
0.719450
0.717269
0.715411
0.713178
0.711292
0.709138
0.707122
0.705133
0.703167
0.701193
0.699128
0.697467
0.695514
0.693550
0.691697
0.689743
0.687987
0.686206
0.684359
0.682701
0.680823
0.678866
0.677327
0.675707
0.673972
0.672177
0.670639
0.669043
0.667313
0.665721
0.664093
0.662472
0.661024
0.659392
0.657797
0.656169
0.654634
0.653742
0.651563
0.650713
0.648990
0.647301
0.645788
0.644544
0.643261
0.641753
0.640270
0.638897
0.637779
0.636631
0.635227
0.633571
0.631935
0.630659
0.629513
0.628341
0.627070
0.625723
0.624517
0.623289
0.622184
0.620807
0.619635
0.618524
0.617261
0.616258
0.615209
0.614018
0.612788
0.611625
0.610524
0.609360
0.608311
0.607415
0.606179
0.605185
0.604235
0.603130
0.602274
0.601421
0.601594
0.597894
0.597486
0.596657
0.595789
0.594790
0.593812
0.592877
0.591959
0.591096
0.590282
0.589291
0.588338
0.587446
0.586829
0.585701
0.584922
0.583953
0.583245
0.582365
0.581520
0.580735
0.579857
0.579073
0.578256
0.577496
0.576744
0.575828
0.575108
0.574449
0.573607
0.572776
0.572119
0.571443
0.570637
0.569990
0.569224
0.568439
0.568052
0.567243
0.566562
0.565957
0.564962
0.564719
0.564005
0.563458
0.562361
0.562072
0.561498
0.560724
0.560078
0.559464
0.558953
0.558364
0.557838
0.557270
0.556499
0.556054
0.555684
0.554750
0.554127
0.554070
0.553466
0.552812
0.552444
0.551826
0.551389
0.550832
0.550366
0.549975
0.549426
0.548704
0.548041
0.547540
0.547265
0.547165
0.546898
0.546341
0.545814
0.545422
0.545012
0.544678
0.544218
0.543789
0.543685
0.543140
0.542412
0.542347
0.541979
0.541500
0.541217
0.540830
0.540534
0.540150
0.539848
0.539538
0.539094
0.538843
0.538627
0.538177
0.537981
0.537553
0.537185
0.538064
0.537052
0.536660
0.536361
0.536123
0.535908
0.535709
0.535438
0.535166
0.534928
0.534751
0.534503
0.534289
0.534147
0.533761
0.533774
0.533463
0.533187
0.532870
0.533066
0.532658
0.532622
0.532482
0.532273
0.532217
0.531993
0.531831
0.531887
0.531600
0.531534
0.531389
0.531378
0.531215
0.531120
0.531018
0.530859
0.530862
0.530849
0.530626
0.530647
0.530542
0.530367
0.530766
0.530657
0.530118
0.530341
0.530322
0.530254
0.530158
0.530267
0.530247
0.530418
0.530243
0.530267
0.530159
0.530254
0.530319
0.530341
0.530118
0.530657
0.530766
0.530368
0.530544
0.530647
0.530622
0.530849
0.530861
0.530859
0.531019
0.531120
0.531217
0.531376
0.531390
0.531534
0.531599
0.531886
0.531831
0.531994
0.532217
0.532273
0.532487
0.532622
0.532654
0.533066
0.532869
0.533188
0.533459
0.533774
0.533759
0.534147
0.534290
0.534503
0.534754
0.534929
0.535165
0.535437
0.535709
0.535910
0.536121
0.536361
0.536662
0.537051
0.538084
0.537180
0.537554
0.537981
0.538176
0.538626
0.538844
0.539094
0.539539
0.539848
0.540145
0.540534
0.540828
0.541217
0.541501
0.541979
0.542349
0.542412
0.543142
0.543685
0.543789
0.544218
0.544678
0.545012
0.545421
0.545815
0.546338
0.546900
0.547164
0.547265
0.547538
0.548041
0.548707
0.549426
0.549976
0.550367
0.550832
0.551389
0.551827
0.552444
0.552811
0.553465
0.554068
0.554127
0.554749
0.555684
0.556053
0.556499
0.557271
0.557837
0.558364
0.558953
0.559465
0.560078
0.560723
0.561498
0.562072
0.562360
0.563459
0.564005
0.564718
0.564962
0.565958
0.566561
0.567250
0.568052
0.568441
0.569224
0.569989
0.570637
0.571444
0.572119
0.572779
0.573608
0.574452
0.575108
0.575828
0.576744
0.577495
0.578256
0.579073
0.579858
0.580734
0.581520
0.582366
0.583244
0.583952
0.584922
0.585702
0.586829
0.587447
0.588338
0.589290
0.590281
0.591096
0.591958
0.592881
0.593813
0.594789
0.595788
0.596658
0.597486
0.597896
0.601594
0.601422
0.602273
0.603137
0.604234
0.605182
0.606179
0.607414
0.608311
0.609360
0.610525
0.611624
0.612789
0.614020
0.615208
0.616255
0.617261
0.618522
0.619634
0.620813
0.622184
0.623287
0.624517
0.625723
0.627071
0.628335
0.629513
0.630659
0.631935
0.633570
0.635226
0.636632
0.637779
0.638897
0.640271
0.641753
0.643262
0.644545
0.645788
0.647304
0.648990
0.650711
0.651563
0.653743
0.654633
0.656168
0.657796
0.659389
0.661023
0.662470
0.664091
0.665728
0.667311
0.669045
0.670639
0.672178
0.673972
0.675707
0.677327
0.678865
0.680823
0.682700
0.684359
0.686205
0.687987
0.689745
0.691697
0.693555
0.695514
0.697467
0.699128
0.701191
0.703166
0.705136
0.707123
0.709139
0.711292
0.713176
0.715411
0.717268
0.719450
0.721578
0.723770
0.725990
0.728240
0.730280
0.732558
0.735039
0.737210
0.739421
0.741726
0.744214
0.746700
0.748840
0.751348
0.753914
0.756306
0.758819
0.761282
0.763900
0.766530
0.769007
0.771012
0.774464
0.776884
0.779525
0.782519
0.785204
0.788025
0.790752
0.793620
0.796650
0.799689
0.802453
0.805540
0.808432
0.811420
0.814456
0.817528
0.820734
0.823916
0.827211
0.830501
0.833660
0.836955
0.840374
0.843765
0.847249
0.850627
0.854083
0.857843
0.861666
0.865340
0.868847
0.872332
0.875984
0.880002
0.883872
0.887700
0.891552
0.895552
0.899787
0.903809
0.907644
0.911875
0.916138
0.920125
0.924687
0.929322
0.933678
0.938206
0.942694
0.947263
0.951977
0.956706
0.961596
0.966457
0.971296
0.976263
0.981312
0.986391
0.991578
0.996941
1.002149
1.007612
1.013012
1.018570
1.024192
1.029877
1.035598
1.041494
1.047396
1.053377
1.059625
1.065795
1.071985
1.078551
1.085090
1.091463
1.098128
1.105018
1.111673
1.118900
1.126059
1.133089
1.140401
1.147813
1.155287
1.163197
1.171131
1.178958
1.186803
1.195096
1.203205
1.211625
1.220243
1.229096
1.238019
1.247059
1.256249
1.265607
1.275248
1.284861
1.294665
1.304817
1.315328
1.325581
1.336455
1.347302
1.358196
1.369548
1.381121
1.392875
1.404837
1.416936
1.429404
1.442373
1.455292
1.468632
1.482039
1.495952
1.510090
1.524696
1.539361
1.554554
1.570187
1.586097
1.602361
1.618953
1.635972
1.653469
1.671444
1.689857
1.708426
1.727579
1.747422
1.767703
1.788850
1.810496
1.832461
1.855249
1.878604
1.902704
1.927657
1.953124
1.979480
2.006721
2.034626
2.063578
2.093448
2.124491
2.156369
2.189626
2.223907
2.259438
2.296289
2.334496
2.374237
2.415564
2.458418
2.503153
2.549876
2.598506
2.649346
2.702428
2.757876
2.816226
2.877167
2.941279
3.008625
3.079564
3.154626
3.233330
3.316925
3.405563
3.499598
3.599552
3.706121
3.819881
3.941767
4.072544
4.213431
4.365324
4.529853
4.708769
4.903748
5.117286
5.352153
5.611871
5.900481
6.223258
6.586293
6.998009
7.469474
8.014163
8.650593
9.404791
10.312144
11.425244
12.823097
14.631233
17.062326
20.505369
25.759335
34.764549
53.772816
120.296646
478.406219
79.265205
42.978424
29.369764
22.240528
17.852673
14.879777
12.732265
11.108480
9.837243
8.815109
7.975622
7.273535
6.678069
6.166427
5.721903
5.332841
4.989015
4.683140
4.409548
4.163389
3.940831
3.738807
3.554645
3.386127
3.231769
3.089876
2.959060
2.838427
2.726846
2.623765
2.528092
2.439873
2.357983
2.282176
2.212042
2.147743
2.088089
2.033571
1.983547
1.938120
1.897144
1.860163
1.827277
1.798507
1.773772
1.752860
1.735882
1.722718
1.713326
1.707621
];
fs=1000;
N=1024;
n=0:N-1;
t=0:1/fs:1-1/fs;
f=n*fs/N;
x=2*sin(2*pi*50*t);
y=fft(x,N);
subplot(211)
plot(f,abs(y)),title('MATLAB计算结果'),xlabel('频率'),ylabel('幅值'),grid;
subplot(212)
plot(f,stm32),title('GD32F303计算结果'),xlabel('频率'),ylabel('幅值'),grid;




五、结果



使用特权

评论回复
沙发
kkzz| | 2019-9-2 22:46 | 只看该作者
十分简明易懂的FFT      

使用特权

评论回复
板凳
GG_GG| | 2019-9-2 22:47 | 只看该作者
需要做一个单片机音乐频谱分析  

使用特权

评论回复
地板
hudi008| | 2019-9-2 22:47 | 只看该作者
matlab快速傅里叶变换资料

使用特权

评论回复
5
lzmm| | 2019-9-2 22:47 | 只看该作者
快速傅里叶变换的实部和虚部的物理意义是什么?

使用特权

评论回复
6
minzisc| | 2019-9-2 22:48 | 只看该作者
如果采用快速傅里叶变换,要求采样频率是基波频率的2^n倍  

使用特权

评论回复
7
selongli| | 2019-9-2 22:48 | 只看该作者
运算的效率怎么样   

使用特权

评论回复
8
fentianyou| | 2019-9-2 22:48 | 只看该作者
如何用matlab实现对离散数据的快速傅里叶变换  

使用特权

评论回复
9
xiaoyaodz| | 2019-9-2 22:48 | 只看该作者
快速傅里叶变换是如何提高运算速度?

使用特权

评论回复
10
febgxu| | 2019-9-2 22:49 | 只看该作者
C语言 1024点快速傅里叶变换(FFT)程序  

使用特权

评论回复
11
sdlls| | 2019-9-2 22:49 | 只看该作者
谢谢分析的资料了。

使用特权

评论回复
12
sdlls| | 2019-9-2 22:49 | 只看该作者
主要是计算的量太大了。   

使用特权

评论回复
13
febgxu| | 2019-9-2 22:49 | 只看该作者
C语言 1024点快速傅里叶变换(FFT)程序  

使用特权

评论回复
14
kkzz| | 2019-9-2 22:49 | 只看该作者
对离散傅立叶变换的算法进行改进获得的  

使用特权

评论回复
15
xiaoyaodz| | 2019-9-2 22:49 | 只看该作者
快速傅里叶变换(FFT)是做什么用的?  

使用特权

评论回复
16
GG_GG| | 2019-9-2 22:49 | 只看该作者
快速傅里叶变换的算法类型   

使用特权

评论回复
17
fentianyou| | 2019-9-2 22:49 | 只看该作者
如何对一组数据进行快速傅里叶变换  

使用特权

评论回复
18
hudi008| | 2019-9-2 22:49 | 只看该作者
用matlab进行傅里叶变换很简单的  

使用特权

评论回复
19
selongli| | 2019-9-2 22:49 | 只看该作者
怎么做1024的计算呢?      

使用特权

评论回复
20
lzmm| | 2019-9-2 22:49 | 只看该作者
FFT,其实就是对高分辨的图片做了一个傅里叶变换  

使用特权

评论回复
评论
zeshoufx 2019-9-5 11:06 回复TA
顶一个 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

66

主题

1948

帖子

14

粉丝