資料介紹
前言
本文目的是演示如何使用STM32F30x 內部的DSP 進行浮點快速傅立葉變換(FFT),為聯系實際應用,使用ADC 對波形發生器進行ADC 采樣,然后對ADC 采樣結果進行FFT, 與 Matlab 仿真結果進行比較察看最終結果的準確性。會使用到ARMDSP 庫文件,以及STM32F30x 的浮點運算單元以及DSP指令等。
模擬ADC采樣數據實現FFT
使用Matlab生成AM調制波形
波形公式為:AM_50= sin(2πfc)*(1 50%*sin(2πfm)), 其中fc 為載波頻率,fm 為調制波頻率,調制比50%。為了使用ADC 采樣,將波形進行偏移處理,疊加1.5V 電壓,最終波形展開公式如下:
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 wave
figure;
plot(t,y);
z1 =y.*(1 m1*x) 1.5; % AM wave with 50% depth
figure; %figure 1
plot(t,z1);
xlabel('Time');
ylabel('Amplitude');
title('AM with50% depth');
Z1 =z1*4096/3.3; % 12-bit ADC Value
產生波形如下:
圖【一】
生成模擬ADC數據,使用STM32F30x進行FFT運算
生成數據存于AM_50_ADC_Data[]數組中,實數轉換為復數,進行CFFT 的運算,調用arm_cfft_f32 庫函數,1024 點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 for
calculating the magnitude ateach bin */
arm_cmplx_mag_f32(testInput_f32_10khz,testOutput, fftSize);
結果打印并和Matlab計算結果進行比較
為方便顯示只取整數部分比較:圖【二】為Matlab 輸出,圖【三】為經過STM32F30x計算后的結果.
圖【二】
圖【三】
從數據上看Matlab 仿真以及STM32F30x的FFT 兩者非常吻合,數據可以直接使用。基于時間數據轉換到頻域上,理論上直流分量,頻率fc處,以及頻率fc-fm,fc fm 處都會有波峰出現,實際看FFT 波形如下:
實際ADC采樣并進行FFT操作
使用波形發生器產生50% 調幅波,載波10KHz,調制波1KHz,調制比50%,偏移1.5V。
使用STM32F30x進行ADC 采樣,采樣結果存于數組,數據導入到Matlab 顯示波形如下:
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 使用STM32F30x/31x PWM剎車特性進行電機控制和數字電源轉換功率因數校正
- AN4277_使用STM32F30x、31x的PWM關斷功能進行電機控制和數字電源轉換
- 使用STM32_的DSP庫進行FFT變換 0次下載
- STM32F30x禁止ADC已關閉情況下再次關閉ADC
- STM32F30x 的ADC 采樣的傅立葉變換
- 浮點DSP運算效率不高 10次下載
- STM32F30X禁止 ADC 已關閉情況下再次 關閉 ADC資料下載
- 如何使用STM32提供的DSP庫進行FFT資料下載
- STM32F4的DSP和標準外設庫資料合集免費下載 101次下載
- 如何利用TMS320DSP平臺實現實值序列的快速傅立葉變換算法的詳細概述 5次下載
- F240X系列DSP內部資源介紹 21次下載
- STM32F30x 的ADC 采樣的傅立葉變換 58次下載
- STM32F30x 的ADC 采樣的傅立葉變換 0次下載
- 浮點 DSP 運算效率不高 0次下載
- 傅立葉變換.ppt 0次下載
- 【GD32 MCU 移植教程】9、從 STM32F10x 系列移植到 GD32F30x 系列 895次閱讀
- CKS32F4xx系列DSP功能介紹 1593次閱讀
- RT-thread源碼移植到STM32F10x和STM32F4xx 2662次閱讀
- 使用傅里葉變換進行圖像邊緣檢測 662次閱讀
- STM32啟動文件startup_stm32f10x_hd.s的代碼講解 4663次閱讀
- 一文快速教會你傅立葉算法 3437次閱讀
- 關于STM32啟動文件startup_stm32f10x_hd.s的代碼 4216次閱讀
- 信號時域和頻域及快速傅立葉變換與加窗信號的詳細講解 1.1w次閱讀
- Altera FPGA硬核浮點DSP模塊解決方案提高運算性能 3646次閱讀
- 基于TI TMS320C6748定點/浮點DSP C674x處理器 3209次閱讀
- 可用于嵌入式系統的傅立葉變換的C語言實現方法 1574次閱讀
- STM32F405xx系列芯片的特點性能介紹 2.4w次閱讀
- STM32F767XX微控制器的功能及特性分析 2.3w次閱讀
- ST公司STM32F334x4/6/8系列MCU開發方案 9924次閱讀
- 進行傅立葉變換的原因、定義、物理意義簡述 2.3w次閱讀
下載排行
本周
- 1DC電源插座圖紙
- 0.67 MB | 2次下載 | 免費
- 2AN158 GD32VW553 Wi-Fi開發指南
- 1.51MB | 2次下載 | 免費
- 3AN148 GD32VW553射頻硬件開發指南
- 2.07MB | 1次下載 | 免費
- 4AN111-LTC3219用戶指南
- 84.32KB | 次下載 | 免費
- 5AN153-用于電源系統管理的Linduino
- 1.38MB | 次下載 | 免費
- 6AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下載 | 免費
- 7SM2018E 支持可控硅調光線性恒流控制芯片
- 402.24 KB | 次下載 | 免費
- 8AN-1308: 電流檢測放大器共模階躍響應
- 545.42KB | 次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 138次下載 | 1 積分
- 3基于STM32單片機智能手環心率計步器體溫顯示設計
- 0.10 MB | 130次下載 | 免費
- 4使用單片機實現七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 53314A函數發生器維修手冊
- 16.30 MB | 31次下載 | 免費
- 6美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 7如何正確測試電源的紋波
- 0.36 MB | 17次下載 | 免費
- 8感應筆電路圖
- 0.06 MB | 10次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論