1、在这道题目里,需要检测各频率分量及其功率,并且要测量正弦信号的失真度,这就要求在对小信号进行放大时,要尽可能少的引入信号的放大失真。正弦信号的理论计算失真度为零,对引入的信号失真非常灵敏,所以对信号的放大,运放的选择是个重点。我们选择的运放是TI公司的低噪声、低失真的仪表放大器INA217,其失真度在频率为1KHz,增益为20dB(100倍放大)时仅为0.004%,其内部原理图如图2-2所示。图2-2 INA217内部原理图其中放大器A1的输出电压计算公式为OUT1=1+(R1/RG)*VIN+同理, OUT2=1+(R2/RG)*VIN-R3、R4、R5、R6及A3构成减法器,最后得到输出公
2、式VOUT=(VIN2-VIN1)*1+(R1+R2)/RGR1=R2=5K,取RG=526,从而放大倍数为20。2.2 AD转换及控制模块电路设计图2-3 AD转换及控制模块电路设计采用12位AD转换器ADS7819进行转换,将转换的数据送32位控制器进行处理。2.3 功率谱测量功率谱测量主要通过对音频信号进行离散化处理,通过FFT运算,求出信号各个离散频率点的功率值,然后得到离散化的功率谱。由于题目要求频率分辨力为100Hz和20Hz两个档,这说明在进行FFT运算前必须通过调整采样频率(fK)和采样的点数(N),使其基波频率f为100Hz和20Hz。根据频率分辨率与采样频率和采样点数的关系
3、:f=fk/N;可以得知, fk=N*f;又根据采样定理,采样频率fk必须不小于信号频率fm的2倍,即: fk=2fm;题目要求的最大频率为10KHz,所以采样频率必须大于20KHz,考虑到FFT运算在2的次数的点数时的效率较高,所以我们在20Hz档时选择40.96KHz采样率,采集2048个点,而在100档时我们选择51.2KHz采样率,采集512个点。通过FFT 分析出不同的频率点对应的功率后,就可以画出其功率谱,并可以在频域计算其总功率。3 软件设计主控制芯片为LPC2148,测量周期为Atmega16实现,由于处理器速度较快,所以采用c语言编程方便简单.软件流程图如下: 主流程图 周期
4、性分析和测量流程图图3-1 程序流程图4 系统测试4.1 总功率测量(室温条件下)表4-1 总功率测量结果(室温条件下) 输入信号 频率 幅度 测量时域总功率(w)测量频域总功率(w) 理论值估算误差 正弦波 100Hz 1 Vpp0.127 0.129 0.125 1.2% 1KH 0.1260.129 1.3%音频信号 20Hz-10KHz20mVpp-5Vpp 0.783 0.761 X 5% 1.803 1.777 X 结果分析: 由于实验室提供的能够模仿音频信号的且能方便测量的信号只有正弦信号,所以我们用一款比较差点的信号发生器产生信号,然后进行测量,发现误差不达,在+-5%以内。我
5、们以音频信号进行测量,由于其实际值无法测量,所以我们只能根据时域和频域以及估计其误差,都在5%以内。4.2单个频率分量测量(室温条件下)表4-2 单个频率分量测量结果(室温条件下)频率幅度最大功率频点最大功率频点功率次大功率频点次大功率频点功率正弦波500Hz100mVpp 500Hz1.20mw 520Hz0.04mW5KHz1Vpp 5KHz 120mw 5.02KHz3.56mw20Hz-10K 880Hz 23mw 600Hz 4.3mw结果分析:我们首先以理论上单一频率的正弦波为输入信号,在理想状况下,其频谱只在正弦波频率上有值,而由于有干扰,所以在其他频点也有很小的功率。音频信号由
6、于有多个频点,所以没有一定的规律性。由于音频信号波动较大,没有一定的规律,且实验室没有专门配置测量仪器,所以我们只好以正弦波和三角波作为信号进行定量分析测量,以及对音频信号进行定性的分析和测量。我们发现其数字和用电脑模拟的结果符合得很近。5 结论由于系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标。参考文献:1 ALAN V.OPPENHEIM信号与系统西安:西安交通大学出版社,1997年2 元秋奇数字图像处理学北京:电子工业出版社,2000年3 吴运昌模拟电子线路基础广州:华南理工大学出版社,2004年4 阎石数字电子技术基础北京:高等教育出版社,199
7、7年5 张晓丽等数据结构与算法北京:机械工业出版社,2002年6 马忠梅等 ARM&Linux嵌入式系统教程北京:北京航空航天大学出版社,2004年7 李建忠单片机原理及应用西安:西安电子科技大学,2002年附录:附1:元器件明细表:1、LPC2148 2、ATMEGA163、AD6204、ADS78195、液晶320*240附2:仪器设备清单1、低频信号发生器 2、数字万用表 3、失真度测量仪4、数字示波器5、稳压电源附3:电路图图纸 电源系统 前级放大和AD转换Atmega16控制板附4:程序清单/*/ FFT转换函数,dataR:实部,datai:虚部,/*/void FFT(float
8、 *dataR,float *dataI,int n)int i,L,j,k,b,p,xx,qq;int x11=0;float TR,TI,temp;float QQ;/位倒置/for(i=0;icountn;i+) xx=0; for(j=0;jn;j+) xj=0; xj=(i/countj)&0x01; xx=xx+xj*countn-j-1; dataIxx=dataRi; dataRi=dataIi; dataIi=0;/蝶形运算/for(L=1;L0) b=b*2; i-; for(j=0;=b-1;j+) p=1; i=n-L; p=p*2;p=p*j;for(k=j;k0)
9、page-; delay_nms(8000000); /上翻页 if(key=1) page+;if(page=SampleNum/4) page=0; /下翻页/失真度计算/void distortion(void)LCD_ClearScreen();LCD_WriteChineseString(font6,3,10,20);unsigned int key;int fr;while(1)/获取频率/log_2_N=11;SampleNum=SampleTablog_2_N;reset_timer(0);init_timer0(40960);New_Flag=0;enable_timer(0
10、);/等待采样完成/while(!FFT_Flag);disable_timer(0); /关定时器0/FFT运算/FFT(Re,Im,log_2_N);/频域功率/for(i=1;SampleNum/2;i+) Rei=Rei*Rei;Rei=Rei/2;/总功率/Fp=0;i+) Fp+=Rei;sort(&Re1,&Im1,SampleNum/2-1);fr=1000000/fre;if(Tflag) LCD_WriteChineseString(font7,1,50,20);LCD_WriteEnglishString( ,0,38);print3510(fr,10,38);US,58
11、,38);else LCD_WriteEnglishString(LCD_WriteChineseString(font8,1,50,20);/按键扫描/if(key=1) SystemState=fft_mode;mode=20;break;if(key=2) SystemState=fft_mode;mode=100;/按键扫描/unsigned char getkey(void) if(IO1PIN_bit.P1_21=0) delay_nms(200000); if(IO1PIN_bit.P1_21=0) return 1; if(IO1PIN_bit.P1_22=0) delay_n
12、ms(2000000); if(IO1PIN_bit.P1_22=0) return 2; if(IO1PIN_bit.P1_23=0) if(IO1PIN_bit.P1_23=0) return 3; if(IO1PIN_bit.P1_24=0) if(IO1PIN_bit.P1_24=0) return 4;return 0xFF;/排序处理/void sort(float *a,float *b,int n) /a为待排序的量,b为起位置int i,j,temp;i+) bi=i+1;=n-1;for (i=0;n-j;i+) if (aiai+1) temp=ai;ai=ai+1;ai+1=temp;temp=bi;bi=bi+1;bi+1=temp;/显示/void p3510(int v,int x,int y)int x0;x0=v*157;x0=x0/100000000;LCD_WriteEnglishChar(x0+0,x,y);x0=x0/100;x0+=1000000;print3510(x0,x+6,y);LCD_WriteEnglishChar(.,x+6,y);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1