![电子综合实验报告数字化失真度测量仪的设计(有完整程序)_第1页](http://file1.renrendoc.com/fileroot_temp2/2021-1/24/e70b92c3-f8f8-40d9-9b18-23b44b77487c/e70b92c3-f8f8-40d9-9b18-23b44b77487c1.gif)
![电子综合实验报告数字化失真度测量仪的设计(有完整程序)_第2页](http://file1.renrendoc.com/fileroot_temp2/2021-1/24/e70b92c3-f8f8-40d9-9b18-23b44b77487c/e70b92c3-f8f8-40d9-9b18-23b44b77487c2.gif)
![电子综合实验报告数字化失真度测量仪的设计(有完整程序)_第3页](http://file1.renrendoc.com/fileroot_temp2/2021-1/24/e70b92c3-f8f8-40d9-9b18-23b44b77487c/e70b92c3-f8f8-40d9-9b18-23b44b77487c3.gif)
![电子综合实验报告数字化失真度测量仪的设计(有完整程序)_第4页](http://file1.renrendoc.com/fileroot_temp2/2021-1/24/e70b92c3-f8f8-40d9-9b18-23b44b77487c/e70b92c3-f8f8-40d9-9b18-23b44b77487c4.gif)
![电子综合实验报告数字化失真度测量仪的设计(有完整程序)_第5页](http://file1.renrendoc.com/fileroot_temp2/2021-1/24/e70b92c3-f8f8-40d9-9b18-23b44b77487c/e70b92c3-f8f8-40d9-9b18-23b44b77487c5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子综合实验报告数字化失真度测量仪的设计(有完整程序) 南京理工大学 电类综合实验报告 数字化失真度测量仪的设计 作者: 学院(系): 指导老师: 学 号: 电光学院 刘光祖老师 实验日期:20150510-20150515 1 摘要: . 3 一、实验目的 . 3 二、实验内容 . 3 1、AD采样 . 4 2、信号加窗 . 4 3、加窗后的信号做FFT . 4 4、FFT求模 . 5 5、寻找最大模值对应的索引 . 5 6、计算基波功率和总功率 . 5 7、计算失真度 . 5 8、显示失真度 . 5 9、数字化失真度测量仪的测试步骤 . 5 三、设计要求 . 6 四、方案论证 . 6 五、
2、功能模块设计 . 8 1、AD采样 . 8 2、信号加窗 . 8 3、加窗后的信号做FFT . 8 4、FFT求模 . 8 5、寻找最大模值对应的索引 . 9 6、计算基波功率和总功率 . 10 7、计算失真度 . 10 8、显示失真度 . 11 六、仿真与调试 . 14 七、实测结果 . 15 八、思考题. 16 九、收获与感想 . 16 参考文献. 16 2 摘要: 失真度表征一个信号偏离纯正弦信号的程度,是无线电信号的一个重要参数。在无线电计量测试中,许多参数的准确测量都涉及失真度测量问题。例如:在检定电压表、功率表和交流数字式电压表时,为了减小不同检波式仪表的波形误差、提高检定的准确度
3、,就必须减小信号源的失真。 基于FPGA开发板(DE2-115)和AD/DA板(THDB-ADA),采用加三角窗的FFT法,在QUARTUS ii 环境下实现了数字化失真度测量仪的设计和仿真工作。对正弦信号、方波信号、三角波信号的实测结果具有较高的精度,并能在LCD上显示失真度。 一、实验目的 1. 熟练掌握一种硬件描述语言,能用硬件描述语言实现较为复杂的时序逻辑电路; 2. 掌握失真度测量的原理,了解模拟法和数字化方法的优缺点,基于FPGA设计数字化失真度测量仪; 3. 掌握EDA电路设计软化和电路仿真软件的使用,能够熟练运用FPGA的IP核来设计电路,增强时序电路的稳定性,提高设计效率。
4、二、实验内容 本实验基于FPGA开发板(DE2-115)和AD/DA板(THDB-ADA)设计数字化失真度测量仪,实现方法上采用加窗的FFT法,其基本信号处理流程如图1所示。 3 图1 数字化失真度测量仪的流程图 1、AD采样 DE2-115提供三个50MHz时钟,利用任意一个时钟,通过PLL可以产生任意频率时钟提供给ADC作为采样时钟,AD采样得到14位偏移码,将高位取反即可得到信号的补码形式。 2、信号加窗 选用汉宁窗或三角窗对AD采样信号做加权处理。 3、加窗后的信号做FFT Altera提供FFT的核,该核为串行输入串行输出,设置输入输出为自然数顺序。以做1024点FFT为例,首先需要
5、设置控制信号sink_valid,sink_sop,sink_eop,sink_valid为高1024个时钟,sink_sop第一个时钟为1其他为0,sink_eop第1024个时钟为1其余为0,可以设计一个计数器来实现。通过改变着sink_valid有效 4 的频率,可以控制出结果的频率,例如1s测试一次,计数器记到50e6(50MHz时钟)清零。 4、FFT求模 复数乘法器(real+j*imag)*(real-j*imag),注意乘法器有延迟。 5、寻找最大模值对应的索引 例如用寄存器count_max记录出现最大值的索引,从复数乘法器输出有效信号开始,后一个数与前一个数比较,若大于前者
6、,将此最大值的索引赋给count_max,经过1024个时钟后比较结束,得到最终的count_max。 6、计算基波功率和总功率 基波功率是窗函数主瓣宽度内所有频率分量的总功率,因此,将最大模值邻近的N点累加作为基波功率,其中,N的值取决于主瓣宽度。总功率是所有谱线的幅度累加。 7、计算失真度 按照式(1)计算失真度。 ? P?P1?P1?Pn?2?nP1(1) 8、显示失真度 在LCD屏上显示失真度,或者将失真度通过串口上传至PC机显示。 9、数字化失真度测量仪的测试步骤 9.1. 设置函数/任意波形发生器,使其输出频率为1MHz,直流电平为0V,峰峰值为1V的正弦波,用数字示波器测量该信号
7、,确认信号的个参数与设定值相同后,将函数/任意波形发生器的输出信号接入HTDB-ADA板的某一个ADC通道; 5 9.2. 连续记录10次数字化失真度测量仪的测量结果,统计测量结果的平均值和方差; 9.3. 设置函数/任意波形发生器,使其输出频率为1MHz,直流电平为0V,峰峰值为1V的方波,用数字示波器测量该信号,确认信号的个参数与设定值相同后,将函数/任意波形发生器的输出信号接入HTDB-ADA板的某一个ADC通道; 9.4. 连续记录10次数字化失真度测量仪的测量结果,统计测量结果的平均值和方差; 9.5. 设置函数/任意波形发生器,使其输出频率为1MHz,直流电平为0V,峰峰值为1V的
8、三角波,用数字示波器测量该信号,确认信号的个参数与设定值相同后,将函数/任意波形发生器的输出信号接入HTDB-ADA板的某一个ADC通道; 9.6. 连续记录10次数字化失真度测量仪的测量结果,统计测量结果的平均值和方差; 三、设计要求 设计要求包括基本要求和提高要求两部分,基本要求如下: 1. AD采样频率为50MHz,输入信号频率大于1MHz,输入信号幅度1Vp-p; 2. 失真度测量范围050%; 3. 测量精度优于5%; 4. 在LCD上显示失真度。 提高要求如下: 1. 能够测量并显示被测信号频率; 2. 失真度测量精度优于1%; 3. 将失真度测量结果上传至PC机显示; 4. 其他
9、设计创意。 四、方案论证 1、失真度的定义与测量方法论证 失真度表征一个信号偏离纯(正弦)信号的程度,是无线电信号的一个重要参数。失真度的技术术语为总谐波失真(Total Harmonic Distortion,THD),其定义为信号中全部谐波分量的功率与基波功率之比的平方根值,即 6 ?P?P1?P1?Pn?2?nP1(1) 式中,?为失真度,P为信号总功率,P1为基波信号的功率,Pn为第n次谐波的功率。 如果负载与信号频率无关,则信号的失真度也可以定义为全部谐波电压的有效值与基波电压的有效值之比并以百分数表示,即 222?U32?Un?U1?Un?2?2nU1?100%(2) 式中,?为失
10、真度,P为信号总功率,P1为基波信号的功率,U1为基波电压的有效值,U2Un为谐波电压有效值。由式(2)可见,失真度仅与信号中所含的基波及各次谐波的电压有效值相关,而与他们之间的相位无关。失真度是一个无量纲的比例系数,常用百分数或者分贝数表示。 2、FFT法的论证 数字化方法是指首先通过数据采集卡将被测信号量化,再对测量数据处理,最后计算出失真度的测量方法,如图2所示。根据失真度的计算方法可分为曲线拟合法和FFT法。在本实验中,我们采用的是FFT法。 图2数字化失真度测试仪的原理框图 采用FFT对量化后的被测信号处理,获得基波和各次谐波的电压,从而计算出失真度。由于在实际的数据采集很难做到整周
11、期采样,由此导致FFT分析泄漏引入方法误差。频谱泄漏引入的误差是影响FFT法失真度测量精度的主要因素。当前,一般通过加窗方法减小频率泄漏。 频谱泄漏与窗函数频谱的两侧旁瓣有关,对于窗函数的选用总的原则是,要从保持最大信息和消除旁瓣的综合效果出发来考虑问题,要使窗函数频谱的主瓣宽度尽可能窄,以获得较陡的过渡带;使旁瓣衰减尽量大,以提高阻带的衰减。通常,这两个要求是相互矛盾的,不能同时得到满足。信号的加窗处理,重要的问题是要根据被测信号的性质和研究目的来选用窗函数。对于失真度测量仪来说,其输入是窄带信号,应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等。在本实验中,我们选择三角窗。 7 五、功能模块设
12、计 1、AD采样 DE2-115提供三个50MHz时钟,利用任意一个时钟,通过PLL可以产生任意频率时钟提供给ADC作为采样时钟,AD采样得到14位偏移码,将高位取反即可得到信号的补码形式。 2、信号加窗 选用三角窗对AD采样信号做加权处理。 wire 22:0 q_window; windowing windowing_inst ( ); 3、加窗后的信号做FFT 做1024点的FFT。 4、FFT求模 复数乘法器(real+j*imag)*(real-j*imag)。 wire sink_sop, sink_eop, sink_valid, sink_ready; ( .clk(clk)
13、, / input clk_sig .sop(wrfull) , / input sop_sig .data_in(q) , / input 13:0 data_in_sig .data_out(q_window) / output 22:0 data_out_sig wire source_error, source_sop, source_eop, source_valid, source_exp; wire 23:0 source_real, source_imag; FFT FFT_inst .clk(clk) , / input clk_sig 8 .reset_n(1b1) , /
14、 input reset_n_sig .inverse(1b0) , / input inverse_sig .sink_valid(sink_valid) , / input sink_valid_sig .sink_sop(sink_sop) , / input sink_sop_sig .sink_eop(sink_eop) , / input sink_eop_sig .sink_real(q_window22,q_window) , / input 23:0 sink_real_sig .sink_imag(24d0) , / input 23:0 sink_imag_sig .si
15、nk_error(2b00) , / input 1:0 sink_error_sig .source_ready(1b1) , / input source_ready_sig .sink_ready(sink_ready) , / output sink_ready_sig .source_error(source_error) , / output 1:0 source_error_sig .source_sop(source_sop) , .source_eop(source_eop) , .source_exp(source_exp) , .source_real(source_re
16、al) , / output source_sop_sig / output source_eop_sig / output 5:0 source_exp_sig / output 23:0 source_real_sig .source_valid(source_valid) , / output source_valid_sig .source_imag(source_imag) / output 23:0 source_imag_sig 5、寻找最大模值对应的索引 用寄存器data_max记录出现最大值的索引,从复数乘法器输出有效信号开始,后一个数与前一个数比较,若大于前者,将此最大值的
17、索引赋给data_max,经过1024个时钟后比较结束,得到最终的data_max。 reg 2:0 con1; reg 44:0 data1,data2,data3,data4,data_max; always (posedge clk) begin case(con1) 3d0: begin data1 = q_out44:0; end 3d1: begin data2 = q_out44:0; end 3d2: begin data_max = q_out44:0; end 3d3: begin data3 = q_out44:0; end 3d4: begin data4 = q_ou
18、t44:0; end endcase end 9 6、计算基波功率和总功率 基波功率是窗函数主瓣宽度内所有频率分量的总功率,因此,将最大模值邻近的N点累加作为基波功率,其中,N的值取决于主瓣宽度。总功率是所有谱线的幅度累加。 assign power_funda = (data2 > data3) ? data1 + data2 +data_max + data3 : data2+data_max+data3 + data4; assign power_harmo = power - power_funda; 7、计算失真度 CONVERT1 CONVERT1_power_harmo (
19、 .clock ( clk ), .dataa ( power_funda ), .result ( result_power_funda ) ); DIVIDE_ALTFP .clock ( clk ), .dataa ( result_power_harmo ), .datab ( result_power_funda ), .result ( result_divide ) ); SQRT_ATLFP SQRT_ATLFP_inst ( .clock ( clk ), .data ( result_divide ), .result ( result_sqrt ) ); MULT_ALT
20、FP MULT_ALTFP_inst ( .clock ( clk ), .dataa ( result_sqrt ), .datab ( 64h408f400000000000 ), / multiply 1000 .result ( result_mult ) 10 DIVIDE_ALTFP_inst ( ); CONVERT2 CONVERT2_inst ( .clock ( clk ), .dataa ( result_mult ), .result ( result_final ) ); reg result_final_valid; always (posedge clk) beg
21、in if (con3 > 10d582) begin result_final_valid <= 1b1; end else begin result_final_valid <= 1b0; end end 8、显示失真度 在LCD屏上显示失真度 output 7:0 LCD_DATA; output LCD_RW,LCD_EN,LCD_RS; output LCD_BLON,LCD_ON; reg rst_first; always (posedge clk) begin if (!ena) begin rst_first <= 1b0; end if (con3
22、= 10d800) begin rst_first <= 1b1; end 11 end reg 9:0 result_display; always (posedge result_final_valid) begin if (!rst_first) begin result_display <= result_final9:0; end end / just display first result wire 3:0 n1,n2,n3; wire 9:0 q1,q2,q3; wire 3:0 d1,d2,d3,d4; wire 13:0 p1,p2,p3,p4; DIVIDE_
23、TEN DIVIDE_TEN_inst ( .denom ( 4d10 ), .numer ( result_display ), .quotient ( q1 ), .remain ( n1 ) ); DIVIDE_TEN DIVIDE_TEN_inst1 ( .denom ( 4d10 ), .numer ( q1 ), .quotient ( q2 ), .remain ( n2 ) ); DIVIDE_TEN DIVIDE_TEN_inst2 ( .denom ( 4d10 ), .numer ( q2 ), .quotient ( q3 ), .remain ( n3 ) ); DI
24、VIDE_TEN_14 DIVIDE_TEN_inst3 ( .denom ( 4d10 ), .numer ( frequency ), .quotient ( p1 ), .remain ( d1 ) 12 ( ); ); DIVIDE_TEN_14 DIVIDE_TEN_inst4 ( .denom ( 4d10 ), .numer ( p1 ), .quotient ( p2 ), .remain ( d2 ) ); DIVIDE_TEN_14 DIVIDE_TEN_inst5 ( .denom ( 4d10 ), .numer ( p2 ), .quotient ( p3 ), .r
25、emain ( d3 ) ); DIVIDE_TEN_14 DIVIDE_TEN_inst6 ( .denom ( 4d10 ), .numer ( p3 ), .quotient ( p4 ), .remain ( d4 ) ); lcd_main lcd_main_inst .CLOCK_50(clk) , / input CLOCK_50_sig .RST_N(ena) , / input RST_N_sig .LCD_BLON(LCD_BLON) , / output LCD_BLON_sig .LCD_DATA(LCD_DATA) , / output 7:0 LCD_DATA_sig .LCD_RW(LCD_RW) , / output LCD_RW_sig .LCD_EN(LCD_EN) , / output LCD_EN_sig .LCD_RS(LCD_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年节能高效果汁浓缩设备项目申请报告模板
- 2025年个体之间土地转让策划合同样本
- 2025年仓储租赁安全条款协议示范
- 2025年买卖双方货物运输合同书
- 2025年专卖店装潢工程合同
- 2025年会员费用结算示例协议
- 2025年公寓楼建筑项目合同示例
- 2025年企业员工租赁住房协议模版
- 2025年个人担保契约协议书
- 2025年保安人员租赁合作协议
- 慢性胰腺炎课件
- 北京理工大学应用光学课件第四章
- 阴道镜幻灯课件
- 2022年山东司法警官职业学院单招语文试题及答案解析
- PCB行业安全生产常见隐患及防范措施课件
- 2023版北京协和医院重症医学科诊疗常规
- DB32∕T 186-2015 建筑消防设施检测技术规程
- 2022年福建泉州中考英语真题【含答案】
- 汽车座椅骨架的焊接夹具毕业设计说明书(共23页)
- 露天矿山职业危害预先危险分析表
- 浅谈固定资产的审计
评论
0/150
提交评论