基于数字相关的时栅信号处理设计讲解

上传人:我** 文档编号:114325120 上传时间:2019-11-10 格式:DOC 页数:17 大小:8.99MB
返回 下载 相关 举报
基于数字相关的时栅信号处理设计讲解_第1页
第1页 / 共17页
基于数字相关的时栅信号处理设计讲解_第2页
第2页 / 共17页
基于数字相关的时栅信号处理设计讲解_第3页
第3页 / 共17页
基于数字相关的时栅信号处理设计讲解_第4页
第4页 / 共17页
基于数字相关的时栅信号处理设计讲解_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《基于数字相关的时栅信号处理设计讲解》由会员分享,可在线阅读,更多相关《基于数字相关的时栅信号处理设计讲解(17页珍藏版)》请在金锄头文库上搜索。

1、基于数字相关的时栅信号处理设计一、设计原理与要求1.1设计原理时栅传感器是通过两路正交信号(正、余弦)激励传感器的空间正交的激励绕组,通过电磁感应输出包含角度信息的正弦信号。基本原理如下:时栅传感器 (角度为) 通过比较与的相位差,即可检测其角度信息。1.2设计要求设计一个测控系统,按键每按一次,角度变化5度。通过单片机模拟两路正交信号与,再对应乘上和,进行模拟时栅传感器,再通过加法电路进行信号相加,并通过AD采样将该信号再传递给单片机,再在程序中进行数字相关1的相关性分析,通过软件计算出角度,并将其显示在液晶屏上。激励频率400HZ(叠加噪声),带通滤波器中心频率为400HZ,带宽为100H

2、Z。二、系统结构框图系统结构框图如2.1所示。图2.1 系统结构框图3、 硬件电路设计3.1加法器电路加法器采用LM324芯片。将STM32芯片的DAC1双通道分别输出sinwt和coswt频率为400HZ的直流正弦波信号,通过加法器硬件电路后得到相加后的波形sin(wt+)。该路电路若有R2=R3,输入输出的关系是: (3-1)其中,取=2k,=1k,带入式(3-1)中,可得。则实现了输入信号和的相加,且增益为1。 3.2带通滤波器电路根据带通滤波器的设计要求可知,中心频率=400HZ,带宽为B=100HZ,则固有频率为,品质因素Q=4。本次带通滤波器设计采用压控电压二阶滤波器电路。取压控增

3、益3为=23,这样可以防止电路自激震荡,有利于电路性能的稳定4。同时取电压增益=1。因为带通滤波器的中心频率为800HZ,则电容和均取0.1,其他电阻参数计算如下: (3-2) 将、和带入式(3-2)中,可得:=200k,=2.85k,=5.627k。 3.2偏置放大电路由于通过带通滤波电路的信号有负电压,STM32芯片在没有负电压参考信号的情况下无法采集负电压值,因此设计偏置放大电路,用LM324做一个加法器,将带通滤波输出信号与一个直流1V的电压相加,将波形整体拉高,且运放放大倍数为1,从而实现STM32的正确AD采样。 3.3硬件电路图 4、 软件设计在软件中,除了大量的数据计算处理外,

4、还会用到STM32芯片的外部中断、定时中断、内置DAC和ADC等功能。通过程序编写,就可以产生对信号的DAC输出,以及信号的ADC才回,并对采回的数据信号进行相关性计算,得出角度。 开始 程序流程图: 各功能模块初始化 定时器中断 外部中断 DAC输出信号 改变角度设置的值 ang_set ADC采集信号 改变角度设置的值 ang_set LCD显示 结束5、 实物制作及现象7、 测试与分析八、总结此次的课程设计让我们大体上对于数字信号的处理与分析有了进一步的了解,对于信号的硬件放大、滤波,以及软件方面的功能编写都有了明显的提升,通过自主的课程设计,更能让我们的动手实践能力得到显著的提升,同时

5、培养我们对于实物制作的兴趣,在此次课程设计过后,相信我们能够继续学习理论知识并且提高自身的实践动手能力,实现综合素质的全面提高。九、参考文献1基于数字相关的弱信号检测方法的研究.李飞.华中科技大学2智能仪器设计基础/王祁主编.-北京:机械工业出版社,2009.12P77P803测控电路/张国熊主编.-4版,-北京:机械工业出版社,2011.1 P111P119,P127P128.4电子技术基础.模拟部分/康华光主编;-5版.-北京:高等教育出版社,2006.1 P425P4295ARM嵌入式系统基础教程/周立功主编.-2版.-北京:北京航空航天大学出版社,2008.9 P304P310附录程序

6、记录如下main.c#include delay.h#include key.h#include sys.h#include lcd.h#include usart.h#include exti.h#include led.h#include dac.h#include adc.h#include math.h#include stdio.h#include timer.hextern u8 Flag1;extern u8 ang_set;u16 Sin_wt_ang_Sin_wt256;u16 Sin_wt_ang_Cos_wt256;u16 ADC_Sin_wt_ang256;u16 DA

7、C_Sin_wt_Cos_ang256;u16 DAC_Cos_wt_Sin_ang256;u16 DAC_Sin_wt_ang256;u16 DAC_Sin_wt256= /11位 0x3FF,0x418,0x431,0x44A,0x463,0x47C,0x495,0x4AE,0x4C7,0x4DF,0x4F8,0x510,0x528,0x540,0x558,0x56F, 0x587,0x59E,0x5B5,0x5CB,0x5E1,0x5F7,0x60D,0x623,0x638,0x64C,0x661,0x675,0x688,0x69C,0x6AE,0x6C1,(略);u16 DAC_Cos

8、_wt256= /11位 0x7FE,0x7FE,0x7FD,0x7FC,0x7FA,0x7F7,0x7F3,0x7EF,0x7EB,0x7E6,0x7E0,0x7D9,0x7D2,0x7CB,0x7C3,0x7BA,(略); int main(void) u8 x=0; /字幕变色标志变量u16 i,j,k,m,n;float rad;float sin_ang,cos_ang;float JF_x,a,b,c,d;char ang_get4;delay_init(); /延时函数初始化 NVIC_Configuration(); /设置NVIC中断分组2:2位抢占优先级,2位响应优先级LC

9、D_Init();LED_Init();EXTIX_Init();Dac1_Init();/DAC初始化Adc_Init(); /ADC初始化TIM3_Int_Init(9,71);/10Khz的计数频率,计数到23为2.5msLCD_Clear(BLUE);JF_x=2*3.1515926/256; while(1) a=0;b=0;rad=ang_set* 3.1415926 /180;sin_ang=sin(rad);cos_ang=cos(rad);for(i=0;i256;i+)/DAC_Sin_wt_angi=DAC_Sin_wti*cos_ang+DAC_Cos_wti*sin_

10、ang;DAC_Sin_wt_Cos_angi=DAC_Sin_wti*cos_ang;DAC_Cos_wt_Sin_angi=DAC_Cos_wti*sin_ang;for(j=0;j256;j+)Sin_wt_ang_Sin_wtj=(ADC_Sin_wt_angj*3/16)*(DAC_Sin_wtj/16);for(k=0;k256;k+)Sin_wt_ang_Cos_wtk=(ADC_Sin_wt_angk*3/16)*(DAC_Cos_wtk/16);for(m=0;m256;m+) a=a+(Sin_wt_ang_Sin_wtm-5170)*JF_x;for(n=0;n256;n

11、+) b=b+(Sin_wt_ang_Cos_wtn-5170)*JF_x;c=b/a;d=atan(c)*57.29578;sprintf(ang_get,%2.1f,d);switch(x)case 0:LCD_ShowHZ(60,30,BLACK,BLUE,欢迎使用时栅信号处理系);break;case 1:LCD_ShowHZ(60,30,GREEN,BLUE,欢迎使用时栅信号处理系);break;case 2:LCD_ShowHZ(60,30,MAGENTA,BLUE,欢迎使用时栅信号处理系统); LCD_ShowHZ(80,70,YELLOW,BLUE,操作说明:);LCD_Sho

12、wHZ(80,90,YELLOW,BLUE,按键1:角度增加5度);LCD_ShowHZ(80,110,YELLOW,BLUE,按键2:角度减少5度);LCD_ShowHZ(80,130,YELLOW,BLUE,按键3:系统重启);LCD_ShowHZ(80,170,WHITE,BLUE,设置角度: 度);LCD_ShowHZ(80,190,WHITE,BLUE,实测角度: 度); POINT_COLOR=WHITE;LCD_ShowNum(152,170,ang_set,4,16);LCD_ShowString(152,190,200,16,16,ang_get);POINT_COLOR=R

13、ED; LCD_ShowString(260,210,200,16,16,2015.9);x+;if(x=3)x=0; exti.c#include exti.h#include led.h#include key.h#include delay.h#include usart.hu8 ang_set=30; /外部中断0服务程序void EXTIX_Init(void) EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; KEY_Init(); /按键端口初始化 RCC_APB2PeriphClockCmd(RCC_APB2Perip

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号