利用stm32f103vct6自带的ADC采样,然后FFT(或者fir,iir)滤波后,dac输出

查看: 14143|回复: 22
STM32F103 中如何使用FFT算法对ADC采样数据进行处理?Waiting for answer。。。
主题帖子精华
新手入门, 积分 42, 距离下一级还需 -22 积分
在线时间0 小时
本人菜鸟一枚,使用STM32遇到了问题,希望技术大牛为我解答,感激不尽!!!
需求:在stm32f103z平台,通过ADC对一交流电压进行采样,使用FFT算法获得该电压信号的频谱
能提供源码文件更好,谢谢
主题帖子精华
金钱122343
在线时间1001 小时
1,先将交流信号转换为STM32的ADC可以采集的信号(分压?+偏移)
2,学会STM32&adc采集。
3,写FFT代码。
4,完成....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
新手入门, 积分 42, 距离下一级还需 -22 积分
在线时间0 小时
首先感谢老大指点,只是本人愚笨,无法写出代码,恳请给出FFT代码或者代码框架,万分感谢!!!
主题帖子精华
新手入门, 积分 42, 距离下一级还需 -22 积分
在线时间0 小时
对了,ST官方是不提供了关于FFT的函数库,但是不知道放在哪一个头文件里,请指点啊。。。在线等
主题帖子精华
金钱122343
在线时间1001 小时
FFT代码,百度下,很多。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
新手入门, 积分 42, 距离下一级还需 -22 积分
在线时间0 小时
我找到了一些代码,但是不清楚FFT算法的使用,给出函数代码,求指点:FFT函数的输入输出参数含义?
#include&math.h&
#define PI 3.1971//定义圆周率值
#define FFT_N 128//定义福利叶变换的点数
struct compx
float real,
};//定义一个复数结构
struct compx s[FFT_N];//FFT输入和输出:从S[1]开始存放,根据大小自己定义
函数原型:struct compx EE(struct compx b1,struct compx b2)
函数功能:对两个复数进行乘法运算,输入参数:两个以联合体定义的复数a,b
输出参数:a和b的乘积,以联合体的形式输出
*********/
struct compx EE(struct compx a,struct compx b)
c.real=a.real*b.real-a.imag*b.
c.imag=a.real*b.imag+a.imag*b.
return(c);
函数原型:void FFT(struct compx *xin,int N)
函数功能:对输入的复数组进行快速傅里叶变换(FFT)
输入参数:*xin复数结构体组的首地址指针,struct型
void FFT(struct compx *xin)
int f,m,nv2,nm1,i,k,l,j=1;
struct compx u,w,t;
nv2=FFT_N/2;//变址运算,即把自然顺序变成倒位序,采用雷德算法
nm1=FFT_N-1;
for(i=0;i&nm1;i++)
if(i&j)//如果i&j,即进行变址
xin[j]=xin;
k=nv2;//求j的下一个倒位序
while(k&=j)//如果k&=j,表示j的最高位为1
j=j-k;//把最高位变成0
k=k/2;//k/2,比较次高位,依次类推,逐个比较,直到某个位为0
j=j+k;//把0改为1
int le,lei,//FFT运算核,使用蝶形运算完成FFT运算
for(l=1;(f=f/2)!=1;l++)//计算l的值,即计算蝶形级数;
for(m=1;m&=l;m++)//控制蝶形结级数
//m表示第m级蝶形,l为蝶形级总数
l=log(2)N le=2&&(m-1);//le蝶形结距离,即第m级蝶形的蝶形结相距le点
lei=le/2;//同一蝶形结中参加运算的两点的距离
u.real=1.0;//u为蝶形结运算系数,初始值为1
u.imag=0.0;
w.real=cos(PI/lei);//w为系数商,即当前系数与前一个系数的商
w.imag=-sin(PI/lei);
for(j=0;j&=lei-1;j++)//控制计算不同种蝶形结,即计算系数不同的蝶形结
for(i=j;i&=FFT_N-1;i=i+le)//控制同一蝶形结运算,即计算系数相同蝶形结
ip=i+//i,ip分别表示参加蝶形运算的两个节点
t=EE(xin[ip],u);//蝶形运算,详见公式
xin[ip].real=xin.real-t.
xin[ip].imag=xin.imag-t.
xin.real=xin.real+t.
xin.imag=xin.imag+t.
u=EE(u,w);//改变系数,进行下一个蝶形运算
/****函数功能:测试FFT变换,演示函数使用方法**************/
void main()
for(i=0;i&FFT_N;i++)//给结构体赋值
s.real=sin(2*3.793*i/FFT_N);//实部为正弦波FFT_N点采样,赋值为1
s.imag=0;//虚部为0
FFT(s);//进行快速福利叶变换
for(i=0;i&FFT_N;i++)//求变换后结果的模值,存入复数的实部部分
s.real=sqrt(s.real*s.real+s.imag*s.imag);
主题帖子精华
中级会员, 积分 212, 距离下一级还需 288 积分
在线时间0 小时
去看看数字信号处理的书,知道FFT(快速傅里叶变换)的原理,然后对照着函数看,就能看懂了。。基二FFT,基四FFT,基八FFT。就是蝶形运算,就是为了减少乘法或者加法的次数。
人需要沐浴阳光,也必将经历风雨
主题帖子精华
新手入门, 积分 42, 距离下一级还需 -22 积分
在线时间0 小时
我想知道怎么使用FFT转换后数据,有什么含义???
主题帖子精华
新手入门, 积分 42, 距离下一级还需 -22 积分
在线时间0 小时
这是用波形发生器产生的正弦波(180Hz Vpp=5 采集512点)
使用ADC采集并转换后得到的电压值随采集点数(或者时间)的波形图,右图为FFT转换后得到的数组的实部和虚部构成的柱状图(实部数据作为X轴,虚部作为Y轴)现在需要从右图中获取频谱信息,不知如何操作,请高人指点!!!
2c979efbb4e01_268.png (0 Bytes, 下载次数: 0)
22:54 上传
194afcbea9a_65.png (0 Bytes, 下载次数: 0)
22:54 上传
主题帖子精华
新手入门, 积分 39, 距离下一级还需 -19 积分
在线时间0 小时
请问楼主这个问题是怎么解决的,如何将AD转换的结果进行FFT???急求啊、、、
主题帖子精华
新手入门, 积分 26, 距离下一级还需 -6 积分
在线时间0 小时
这个FFT的时间得一百多毫秒&&&有没有更快的&&&求推荐
主题帖子精华
金钱122343
在线时间1001 小时
回复【11楼】草枝摆呀草枝摆:
---------------------------------
你移植的有问题吧,多少点啊?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
新手入门, 积分 26, 距离下一级还需 -6 积分
在线时间0 小时
回复【12楼】正点原子:
---------------------------------
1024
主题帖子精华
高级会员, 积分 591, 距离下一级还需 409 积分
在线时间32 小时
用ST官方的DSP库
一介草民……
主题帖子精华
金钱122343
在线时间1001 小时
回复【13楼】草枝摆呀草枝摆:
---------------------------------
如13楼,用官方的DSP库试试.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
新手入门, 积分 26, 距离下一级还需 -6 积分
在线时间0 小时
回复【15楼】正点原子:
---------------------------------
官方的DSP库确实是快。但是我用官方的DSP库算做fft。比如输入5kHz的信号,&经过AD采样,做FFT,&&串口打印信号频率,输出的结果不知道为什么有5KHz也有10KHz&&&。这个10kHz不知道是怎么出来的。输入其它频率信号的时候,也都有这种现象存在
主题帖子精华
高级会员, 积分 600, 距离下一级还需 400 积分
在线时间128 小时
回复【6楼】cancan2013:
---------------------------------
你这个程序有一点问题吧
主题帖子精华
新手入门, 积分 21, 距离下一级还需 -1 积分
在线时间0 小时
请问官方DSP库哪边找呢
主题帖子精华
新手入门, 积分 26, 距离下一级还需 -6 积分
在线时间3 小时
主题帖子精华
初级会员, 积分 102, 距离下一级还需 98 积分
在线时间17 小时
请问楼主问题解决了吗
主题帖子精华
初级会员, 积分 102, 距离下一级还需 98 积分
在线时间17 小时
回复【15楼】正点原子:
---------------------------------
官方的DSP库确实是快。但是我用官方的DSP库算做 ...
STM32F103ZET6可以调用DSP库不
主题帖子精华
初级会员, 积分 102, 距离下一级还需 98 积分
在线时间17 小时
回复【15楼】正点原子:
---------------------------------
官方的DSP库确实是快。但是我用官方的DSP库算做 ...
朋友 可以交流下如何用STM32F103 对ADC采样数据做FFT吗
主题帖子精华
新手入门, 积分 4, 距离下一级还需 16 积分
在线时间0 小时
求楼主分享程序
Powered by利用stm32f103自带的ADC采样,然后FFT(或者fir,iir)滤波后,DAC输出_百度知道
利用stm32f103自带的ADC采样,然后FFT(或者fir,iir)滤波后,DAC输出
如何使用stm32f103RC自带的ADC,DAC做一个数字滤波器。(不是求平均的。最好是能有程序说明)
我有更好的答案
你要多少个点fft
(256,512,1024)
采样率呢?103是没有DAC的,另外滤波特征怎么确定。。。。。。
103rc以上的有dac
采样率192k
类似的程序说明一下
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。>> STM32F103+RTX+I2C+LCD1602源码,调试完成
STM32F103+RTX+I2C+LCD1602源码,调试完成
所属分类:
下载地址:
STM32F103+RTX.zip文件大小:8.49 MB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
mcu采用stm32f103,使用ST的rtx,带键盘扫描,lcd1602使用i2c通讯,主要是ADC验证,FFT处理等。
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
1.92 kB 14:28
125.00 B 14:30
8.19 kB 17:06
796.00 B 16:52
883.00 B 16:15
142.00 B 16:15
Target_1_STM32F103C8_1.0.0.dbgconf6.79 kB 17:06
Target_1_STM32F103R6_1.0.0.dbgconf6.79 kB 17:06
Target_1_STM32F103RB_1.0.0.dbgconf6.79 kB 17:06
1.66 kB 13:04
219.00 B 08:46
1.79 kB 20:35
394.00 B 20:16
990.00 B 20:29
154.00 B 12:11
85.00 B 10:44
1.17 kB 12:12
129.00 B 12:07
14.71 kB 20:22
1.05 kB 16:25
16.87 kB 10:25
83.71 kB 14:59
25.68 kB 12:31
startup_stm32f10x_cl.s15.40 kB 10:52
startup_stm32f10x_hd.s15.14 kB 10:52
startup_stm32f10x_hd_vl.s15.32 kB 10:52
startup_stm32f10x_ld.s12.09 kB 10:52
startup_stm32f10x_ld_vl.s13.34 kB 10:52
startup_stm32f10x_md.s12.47 kB 10:52
startup_stm32f10x_md_vl.s13.74 kB 10:51
startup_stm32f10x_xl.s15.58 kB 10:51
startup_stm32f10x_cl.s12.77 kB 10:52
startup_stm32f10x_hd.s12.85 kB 10:52
startup_stm32f10x_hd_vl.s12.19 kB 10:52
startup_stm32f10x_ld.s9.58 kB 10:52
startup_stm32f10x_ld_vl.s10.31 kB 10:52
startup_stm32f10x_md.s10.03 kB 10:52
startup_stm32f10x_md_vl.s10.80 kB 10:52
startup_stm32f10x_xl.s12.95 kB 10:52
startup_stm32f10x_cl.s16.24 kB 10:53
startup_stm32f10x_hd.s15.85 kB 10:53
startup_stm32f10x_hd_vl.s15.31 kB 10:53
startup_stm32f10x_ld.s12.35 kB 10:53
startup_stm32f10x_ld_vl.s12.65 kB 10:53
startup_stm32f10x_md.s12.61 kB 10:53
startup_stm32f10x_md_vl.s13.28 kB 10:53
startup_stm32f10x_xl.s16.24 kB 10:53
startup_stm32f10x_cl.s12.31 kB 10:54
startup_stm32f10x_hd.s12.30 kB 10:53
startup_stm32f10x_hd_vl.s11.95 kB 10:53
startup_stm32f10x_ld.s9.60 kB 10:53
startup_stm32f10x_ld_vl.s10.03 kB 10:53
startup_stm32f10x_md.s10.03 kB 10:53
startup_stm32f10x_md_vl.s10.50 kB 10:53
startup_stm32f10x_xl.s12.94 kB 10:53
619.08 kB 10:51
35.70 kB 10:51
2.04 kB 10:51
CMSIS9.09 kB 10:25
12.24 kB 11:36
55.67 kB 10:25
License.doc39.00 kB 10:25
2.66 kB 13:56
22.52 kB 13:56
cr4_fft_1024_stm32.s28.09 kB 13:56
cr4_fft_256_stm32.s13.81 kB 13:56
cr4_fft_64_stm32.s10.16 kB 13:56
fir_stm32.s4.90 kB 13:56
iirarma_stm32.s3.74 kB 13:56
PID_stm32.s2.64 kB 13:56
cr4_fft_1024_stm32.s26.84 kB 13:56
cr4_fft_256_stm32.s11.80 kB 13:56
cr4_fft_64_stm32.s7.88 kB 13:56
fir_stm32.s4.52 kB 13:56
iirarma_stm32.s3.32 kB 13:56
PID_stm32.s2.41 kB 13:56
cr4_fft_1024_stm32.s28.51 kB 13:56
cr4_fft_256_stm32.s13.92 kB 13:56
cr4_fft_64_stm32.s10.23 kB 13:56
fir_stm32.s5.10 kB 13:56
iirarma_stm32.s3.74 kB 13:56
PID_stm32.s2.63 kB 13:56
3.11 kB 13:56
2.85 kB 13:56
8.77 kB 10:47
21.18 kB 10:47
7.38 kB 10:47
26.91 kB 10:47
6.42 kB 10:47
2.11 kB 10:47
14.88 kB 10:47
3.73 kB 10:47
20.27 kB 10:47
6.66 kB 10:47
24.85 kB 10:47
26.38 kB 10:47
19.70 kB 10:47
29.33 kB 10:47
3.74 kB 10:47
4.28 kB 10:47
29.74 kB 10:47
3.77 kB 10:47
21.35 kB 10:47
17.31 kB 10:47
51.20 kB 10:47
16.16 kB 10:47
2.90 kB 10:47
28.56 kB 12:31
6.88 kB 10:47
46.09 kB 10:47
8.26 kB 10:47
44.05 kB 10:47
11.38 kB 10:47
3.27 kB 10:47
18.64 kB 10:47
5.03 kB 10:47
28.91 kB 10:47
6.80 kB 10:47
61.08 kB 10:47
34.65 kB 10:47
22.68 kB 17:43
44.71 kB 10:47
4.80 kB 10:47
8.55 kB 10:47
50.07 kB 10:47
8.40 kB 10:47
28.25 kB 10:47
29.52 kB 10:47
106.60 kB 10:47
37.41 kB 10:47
5.60 kB 10:47
cr4_fft_256_stm32.lst46.78 kB 18:05
HeartRate_RTOS.map320.23 kB 20:32
irq_cm3.lst17.05 kB 15:53
startup_stm32f10x_ld.lst40.67 kB 13:50
startup_stm32f10x_md.lst43.06 kB 20:31
12.53 kB 20:41
256.00 B 14:08
7.32 kB 16:32
883.00 B 16:21
cmsis_os1.crf38.39 kB 18:02
cmsis_os1.d584.00 B 18:02
cmsis_os1.o64.14 kB 18:02
common.crf6.69 kB 18:01
common.d191.00 B 18:01
common.o11.20 kB 18:01
cr4_fft_256_stm32.d92.00 B 18:05
cr4_fft_256_stm32.o3.41 kB 18:05
delay.crf292.29 kB 20:13
delay.d1.47 kB 20:13
delay.o321.72 kB 20:13
ExtDll.iex19.00 B 20:44
fft.crf312.22 kB 20:13
fft.d1.67 kB 20:13
fft.o333.06 kB 20:13
filter.crf17.83 kB 20:29
filter.d256.00 B 20:29
filter.o19.45 kB 20:29
HeartRate_RTOS.axf607.63 kB 20:32
5.43 kB 20:32
HeartRate_RTOS.hex43.94 kB 20:32
120.86 kB 20:32
HeartRate_RTOS.lnp1.69 kB 20:32
HeartRate_RTOS.sct651.00 B 19:40
irq_cm3.d95.00 B 15:53
irq_cm3.o2.87 kB 15:53
kalmanfilter.crf18.07 kB 18:01
kalmanfilter.d298.00 B 18:01
kalmanfilter.o19.70 kB 18:01
lcd_display.crf309.20 kB 20:22
lcd_display.d1.79 kB 20:22
lcd_display.o341.21 kB 20:22
main.crf333.67 kB 20:31
main.d2.08 kB 20:31
main.o377.02 kB 20:31
max30102.crf294.83 kB 20:13
max30102.d1.57 kB 20:13
max30102.o325.03 kB 20:13
misc.crf292.69 kB 20:13
misc.d1.53 kB 20:13
misc.o324.12 kB 20:13
os_systick.crf293.36 kB 20:31
os_systick.d1.73 kB 20:31
os_systick.o332.04 kB 20:31
RTOS_Target118.97 kB 20:32
rtx_config.crf31.10 kB 20:31
rtx_config.d556.00 B 20:31
rtx_config.o34.48 kB 20:31
rtx_delay.crf352.71 kB 20:31
rtx_delay.d2.58 kB 20:31
rtx_delay.o355.33 kB 20:31
rtx_evflags.crf359.17 kB 20:31
rtx_evflags.d2.64 kB 20:31
rtx_evflags.o387.68 kB 20:31
rtx_evr.crf65.84 kB 20:31
rtx_evr.d898.00 B 20:31
rtx_evr.o260.46 kB 20:31
rtx_kernel.crf358.62 kB 20:31
rtx_kernel.d2.61 kB 20:31
rtx_kernel.o402.82 kB 20:31
rtx_lib.crf34.02 kB 20:31
rtx_lib.d694.00 B 20:31
rtx_lib.o41.92 kB 20:31
rtx_memory.crf353.47 kB 20:31
rtx_memory.d2.61 kB 20:31
rtx_memory.o353.77 kB 20:31
rtx_mempool.crf359.89 kB 20:31
rtx_mempool.d2.64 kB 20:31
rtx_mempool.o395.37 kB 20:31
rtx_msgqueue.crf363.59 kB 20:31
rtx_msgqueue.d2.67 kB 20:31
rtx_msgqueue.o403.59 kB 20:31
rtx_mutex.crf357.19 kB 20:31
rtx_mutex.d2.58 kB 20:31
rtx_mutex.o377.05 kB 20:31
rtx_semaphore.crf357.29 kB 20:31
rtx_semaphore.d2.70 kB 20:31
rtx_semaphore.o380.41 kB 20:31
rtx_system.crf353.19 kB 20:31
rtx_system.d2.61 kB 20:31
rtx_system.o356.04 kB 20:31
rtx_thread.crf371.90 kB 20:31
rtx_thread.d2.61 kB 20:31
rtx_thread.o468.05 kB 20:31
rtx_timer.crf357.11 kB 20:31
rtx_timer.d2.58 kB 20:31
rtx_timer.o381.43 kB 20:31
startup_stm32f10x_md.d81.00 B 20:31
startup_stm32f10x_md.o5.79 kB 20:31
stm32f10x_adc.crf299.68 kB 20:13
stm32f10x_adc.d1.72 kB 20:13
stm32f10x_adc.o372.61 kB 20:13
stm32f10x_bkp.crf296.07 kB 20:13
stm32f10x_bkp.d1.72 kB 20:13
stm32f10x_bkp.o338.19 kB 20:13
stm32f10x_can.crf310.03 kB 20:13
stm32f10x_can.d1.72 kB 20:13
stm32f10x_can.o366.29 kB 20:13
stm32f10x_cec.crf296.32 kB 20:13
stm32f10x_cec.d1.72 kB 20:13
stm32f10x_cec.o339.98 kB 20:13
stm32f10x_crc.crf292.66 kB 20:13
stm32f10x_crc.d1.72 kB 20:13
stm32f10x_crc.o326.31 kB 20:13
stm32f10x_dac.crf298.07 kB 20:13
stm32f10x_dac.d1.72 kB 20:13
stm32f10x_dac.o340.34 kB 20:13
stm32f10x_dbgmcu.crf293.27 kB 20:13
stm32f10x_dbgmcu.d1.79 kB 20:13
stm32f10x_dbgmcu.o323.47 kB 20:13
stm32f10x_dma.crf295.71 kB 20:13
stm32f10x_dma.d1.72 kB 20:13
stm32f10x_dma.o334.42 kB 20:13
stm32f10x_exti.crf295.10 kB 20:13
stm32f10x_exti.d1.75 kB 20:13
stm32f10x_exti.o331.31 kB 20:13
stm32f10x_flash.crf299.54 kB 20:13
stm32f10x_flash.d1.77 kB 20:13
stm32f10x_flash.o361.10 kB 20:13
stm32f10x_fsmc.crf305.89 kB 20:13
stm32f10x_fsmc.d1.75 kB 20:13
stm32f10x_fsmc.o354.95 kB 20:13
stm32f10x_gpio.crf296.11 kB 20:13
stm32f10x_gpio.d1.75 kB 20:13
stm32f10x_gpio.o345.04 kB 20:13
stm32f10x_i2c.crf298.47 kB 20:13
stm32f10x_i2c.d1.72 kB 20:13
stm32f10x_i2c.o366.63 kB 20:13
stm32f10x_it.crf292.43 kB 20:13
stm32f10x_it.d1.66 kB 20:13
stm32f10x_it.o327.04 kB 20:13
stm32f10x_iwdg.crf293.33 kB 20:13
stm32f10x_iwdg.d1.75 kB 20:13
stm32f10x_iwdg.o327.23 kB 20:13
stm32f10x_pwr.crf294.93 kB 20:13
stm32f10x_pwr.d1.72 kB 20:13
stm32f10x_pwr.o332.39 kB 20:13
stm32f10x_rcc.crf299.60 kB 20:13
stm32f10x_rcc.d1.72 kB 20:13
stm32f10x_rcc.o365.39 kB 20:13
stm32f10x_rtc.crf294.83 kB 20:13
stm32f10x_rtc.d1.72 kB 20:13
stm32f10x_rtc.o338.39 kB 20:13
stm32f10x_sdio.crf304.41 kB 20:13
stm32f10x_sdio.d1.75 kB 20:13
stm32f10x_sdio.o369.95 kB 20:13
stm32f10x_spi.crf296.57 kB 20:13
stm32f10x_spi.d1.72 kB 20:13
stm32f10x_spi.o351.74 kB 20:13
stm32f10x_tim.crf335.90 kB 20:13
stm32f10x_tim.d1.72 kB 20:13
stm32f10x_tim.o474.64 kB 20:13
stm32f10x_usart.crf298.16 kB 20:13
stm32f10x_usart.d1.77 kB 20:13
stm32f10x_usart.o361.26 kB 20:13
stm32f10x_wwdg.crf293.54 kB 20:13
stm32f10x_wwdg.d1.75 kB 20:13
stm32f10x_wwdg.o329.77 kB 20:13
system_stm32f10x.crf293.80 kB 20:31
system_stm32f10x.d1.68 kB 20:31
system_stm32f10x.o323.32 kB 20:31
thread.crf16.75 kB 18:01
thread.d251.00 B 18:01
thread.o18.02 kB 18:01
10.37 kB 15:22
1.90 kB 14:26
RTX_Config.c.00001.90 kB 09:52
11.07 kB 15:21
RTX_Config.h.000011.07 kB 15:21
10.05 kB 14:01
63.48 kB 13:58
startup_stm32f10x_md.s12.47 kB 19:40
35.70 kB 11:18
63.48 kB 13:58
startup_stm32f10x_ld.s12.09 kB 11:18
35.70 kB 11:18
63.47 kB 22:44
startup_stm32f10x_md.s12.47 kB 11:18
4.07 kB 17:30
35.70 kB 11:18
698.00 B 14:34
RTOS.uvguix.MBJ165.06 kB 20:44
RTOS.uvoptx26.55 kB 20:44
RTOS.uvprojx27.34 kB 19:43
2.13 kB 14:24
3.19 kB 14:12
5.03 kB 16:04
2.00 kB 16:46
775.00 B 15:21
2.92 kB 21:03
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
评价成功,多谢!
下载STM32F103+RTX.zip
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:271.918ms - init:0.1;find:0.6;t:1.2;tags:0.3;related:116.8;comment:0.2; 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧据counterpoint发布的数据,2017年全球前六大手机芯片企……
2018年才刚过没多久,区块链概念股一片火热。沉寂已久的……
近日三星电子宣布开发出核心电池技术,其研究机构三星先……
近年来汽车电子的发展迅猛,各种LED大灯、辅助驾驶、主动……
前不久,罗德与施瓦茨公司(R&S)召开新品发布会,推出了一……
演讲人:徐济炜时间: 10:00:00
演讲人:沈剑安时间: 10:00:00
演讲人:孙彬时间: 10:00:00
预算:¥20000预算:¥65000
广东省广东省
基于STM32的高频无线调制信号分析仪的设计与实现
[导读] 摘要:随着无线通信技术的发展,无线调制信号分析仪在无线电监测、科学化管理方面有重要的实用意义。文章基于STM32嵌入式平台,采用二次变频芯片MC13135接收并解调出调制信号,并通过FFT算法分析处理,设计实现了一
&摘要:随着无线通信技术的发展,无线调制信号分析仪在无线电监测、科学化管理方面有重要的实用意义。文章基于嵌入式平台,采用二次变频芯片MC13135接收并解调出调制信号,并通过FFT算法分析处理,设计实现了一套新型的无线监测管理设备。测试结果表明,该信号分析仪能够快速准确的探测无线电管理地域内的无线电信号,并能实时反馈被测信号的通信技术参数、工作特征等信启。本文引用地址:
随着电子技术的快速发展,特别是无线通讯事业的迅猛发展,无线电监管也正在逐步强化。无线电技术是以电磁波的形式传播各种信号,显然单凭人力难以做到对其进行有效地监控。因此无线电监测设备对无线调制信号的监管显得十分重要。在改革开放三十年来,我国各省市无线电管理部门都有不同程度的增加,然而作为无线电管理重要技术手段的无线调制信号分析设备受到价格、技术等因素的限制未能得到广泛的应用。因此,高性价比的无线调制信号监测设备的设计与实现成了无线电监管中一个亟需解决的问题。
本文源于湖南省大学生研究性学习和创新性实验计划专项课题,应用无线电技术和FFT算法理论,借助嵌入式软硬件平台,重点针对高频无线信号的解调、检波及相关频谱分析等方面进行优化设计,实现了无线电监测设备设计的高效性和便携性。
1 系统总体设计
系统总体设计方案如图1所示,本设计利用自动扫频捕获不同的载频信号,信号经由单片调频芯片MC13135解调及预处理后,送至嵌入式处理器进行信号频谱特征提取加以分析识别,并将分析结果显示出来。系统硬件部分包括信号接收与预处理电路、嵌入式硬件平台和人机界面等一些外围电路模块;软件部分包括移植到平台上的FFT算法、系统控制、串口通信等软件模块。
2 预处理电路设计
调制信号在进入系统之前,首先要进行预处理。具体到无线调制信号分析仪系统来说,天线接收的是高频信号,需要下变频得到中频信号,高保真解调信号对于后续的信号识别尤为关键,自动扫频、解调、包络检波等这些都需要在预处理中完成。
2.1 自动扫频的实现
由MC13135工作原理可知,变更第一本振频率便可实现自动扫频功能。本设计中,第一本振由DDS函数发生器产生,通过向DDS集成芯片AD9851配置不同的指令实现第一本振频率的自动更新,继而达到扫频的目的。
2.2 解调及检波电路设计
MC13135是单片调频接收电路,它集成了天线输入至音频输出的二次变频全部电路,音频输出端口便可作为FM及FSK信号的解调输出口,来自二次变频后的信号,经过包络检波网络,最终可从载波中解调出AM及ASK信号。
对于信号识别系统而言,包络检波网络电路的设计关乎到调制信号能否得到准确分析。二极管包络检波器主要由二极管和RC低通滤波电路组成。二极管导通时,输入信号向C充电,充电时常数为RC;二极管截止时,C向R放电。在输入信号作用下,二极管导通和截止不断重复,直到充放电达到平衡后,输出信号跟踪了输入信号的包络。如果参数选择不当,二极管包络检波器会产生惰性失真和负峰切割失真。本系统包络检波网络电路设计,具体如图2所示。
2.2.1 检波电路二极管的选择
检波二极管采用2AP9点接触型二极管,工作频率150MHz以上,极间电容小于1pF,导通门限压为0.2~0.3V,因此在二极管正极加一静态正偏压,抵消其门限电压,导通电阻rd约为100
检波电路负载电阻R28、R30的选择
检波管后级低频电压放大器总输入电阻(此处即本级负载电阻R33)一般为2.5k。因此,为满足避免底部切割失真条件
(R&O为交流负载电阻,R为直流负载电阻),R一般选为5~10k&O。又根据分负载条件式R28=(0.1~0.2)R30,取R30=5.1k&O,即可得:R28=0.133
R30=680 &O,这时交流负载电阻:
系统要求调幅度ma为不小于0.3,由上式可知该负载电阻的选择满足避免底部切割失真的条件。
2.2.3 检波电路负载电容C43、C44的选择
由高频电子线路原理可知,电容C43、C44可由式
来估算,R=R28+R30=0.68k&O+5.1k&O=5.78k&O。系统设定调制信号最大频率为fmax=1.0kHz,故&Omax=2&&1.0&103,求得C小于27.5nF,此处取C43=C44=4700pF。这一取值也足以满足避免惰性失真的条件:
综上所述,该检波网络的设计既防止了解调信号的惰性失真和负峰切割失真,又避免了其频率失真和非线性失真,电路器件参数选择与设计满足系统设计需求。
3 FFT算法与系统软件设计
3.1 FFT算法
FFT变换属于数字信号处理一种常用算法,通过FFT变换将信号由时域变换到频域,在频域实现对信号特征的提取。该分析方法硬件电路简单、应用灵活、精度和稳定度高。FFT算法的基本思想是把长序列的DFT逐次分解为较短序列的DFT。
用FFT对模拟信号进行频谱分析时,首先需要对模拟信号进行AD采样,假设输入模拟信号频率为f,AD采样频率为Fs,对采样得到的数据做FFT变换。在FFT变换中有几个重要参数:最大可分辨频率Fmax、频率分辨率F、采样点数N、抽样长度T。各个参数关系如下:
最大可分辨频点数:M=1+(fh-f1)/F (1)
最低采样频率:fs=2fh (2)
最小采样点数:N=fs/F (3)
最小采样时间:TPmin=1/F (4)
由式(3)可以看出,要想提高FFT的分辨率F,就必须要减小采样率fs或者增加采样点数N。
在嵌入式系统平台下,本设计针对典型的周期信号进行频谱的分析,能够有效地得到典型周期信号的各次谐波分量。
3.2 调制信号波形的识别
取采样频率为输入信号频率的3倍,采集32点,进行FFT变换,得到周期典型信号的频谱图,根据典型周期信号各次谐波分量的差别,可以很方便地分辨出不同的波形。
根据FFT算法的基本原理把长序列的DFT逐次分解为较短序列的DFT。N点DFT变换为
称为旋转因子,周期为N。经FFT后得到各点X(K)序列值,便可描得出信号的频谱图。
方波和正弦波以傅里叶级数展开,其数学模型为:
其中,w=2&/T。从以上模型可以看出,方波的频谱由基波和谐波组成(无偶次谐波),且各谐波幅度依次递减,奇次谐波频率为基波频率的奇数倍时,信号幅度是基波的奇数倍的倒数,而正弦波信号是单一频率的周期信号,因此可解调出信号x(t)。经的内部ADC采样得到x(n),然后在中作FFT得到其频谱x(k),查找出基波和三次谐波。频率存在3倍关系,且幅度存在1/3倍的关系则可以判断是方波,若不满足此关系则是正弦波。调制信号进行预处理,区分出调频或调幅信号后,再根据FFT分析出基带信号为正弦波或方波,便可进一步判断是何种解调方式。
3.3 系统软件流程
系统上电后,执行自动扫频程序,不断调整MC13135的第一本振,直到检测MC13135的第9脚输出的频率为455kHz停止扫频。扫频停止后系统进入信号分析流程。系统软件流程图如图3所示。
4 实验结果及分析
4.1 技术指标
(1)高频信号分析仪能够自动扫描、捕捉、分析和识别通信信号,载波工作频率范围:15~50MHz;
(2)自动测量通信信号的输入信号载波频率和调制信号频率,测量值的准确度优于2%;
(3)自动判别射频信号的调制方式:无调制载波信号、AM、FM、ASK、FSK;
(4)正常识别条件下,接收机灵敏度&100 &V。
4.2 测试结果及分析
用EE1482型合成信号发生器和SU3080函数信号发生器产生一个已调制好的信号(载波幅度&100
&V,调制信号幅度&100mV),利用天线发射出去。通过接收机收到信号进行分析后(天线长度不要大于30cm),通过人机交互界面(触屏)观察并和发射信号进行比对。具体数据见表1。
由表1可知,在一定范围内系统能够精确测量出载波频率以及判别出调制信号类型,且测量频率。
经过实际标测,本系统目前能够识别4种高频调制信号。在现有研究的基础上,下一步工作将着重于优化匹配算法和电路,以期能够解调识别更多复杂的调制信号,增强捕获能力。在本项目的基础上通过改进能应用于无线考试监测系统、短波通信系统、无线寻呼系统等多种场合;在本项目的基础上结合2.5G数据通信,亦可以实现公众安全监控、交通流量监控、城市应急处置;或结合GPS和3G技术,实现城市导航、位置信息等新型服务。
贸泽电子(Mouser Electronics) 开始分销Netduino 3电子平台,能够使商业硬件解决方案和个人电子项目快速上市,同时提供了最大的设计灵活性并降低了风险。最新版本的开源Netduino平台不但具有让先前版本广受欢迎的最佳......关键字:
Arm平台安全架构(PSA)采用高性价比、领先技术全面提升物联网市场的安全技术支持
基于STM32H7系列开发的Arm® Cortex®-M7微控制器整合PSA概念和先进的安全功能服务......关键字:
意法半导体开始量产STM32L45x超低功耗微控制器(MCU),STM32L451、STM32L452和STM32L462产品线集成Sigma-Delta调制器(DFSDM)用数字滤波器,可以在一款价格低廉的微控制器上实现高级音频功能。......关键字:
下面是开发大牛总结的高效编程的14点经验。不管你是编程菜鸟还是资深程序员,或许都能从中得到启发。......关键字:
手机语音助手各家都在布局,但其使用频度依然不高,不过,在一些危难情况下,也许真能大放异彩。......关键字:
现在澳大利亚皇家墨尔本理工大学( RMIT )的教授 Dr Abbas Mohajerani 团队已经找到了一种安全处理烟头的新方法,他们希望把这些烟头用在铺设道路的材料上。......关键字:
不同地方和不同单位(有评定职称资格的大企业,一般是国企央企国家机关什么的)的标准是不一样的。......关键字:
我 要 评 论
热门关键词

我要回帖

更多关于 stm32f103zet6 的文章

 

随机推荐