音频信号分析仪(2)

更新时间:2023-12-26 01:08:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2013年全国大学生电子设计竞赛

音频信号分析仪 【XX组】

参赛人员:邓文彬

刘迪 刘宇

2013年8月8日

摘 要

本音频信号分析仪由FPGA为主控制器,通过AD转换,对音频信号进行采样,把连续信号离散化,然后通过FFT快速傅氏变换运算,在时域和频域对音频信号各个频率分量以及功率等指标进行分析和处理,然后通过高分辨率的LCD对信号的频

谱进行显示。前置可调放大器分为四级:倍、10倍、100倍、1000倍。该

系统能够精确测量的音频信号频率范围为20Hz-10KHz,其幅度范围为1mVpp-5Vpp。测量功率精确度高达1%,并且能够准确的测量周期信号的周期,是理想的音频信号分析仪的解决方案。

关键词:FFT FPGA频谱功率

1

目录

1 方案论证与比较................................................................................................................................... 1 1.1采样方法方案论证..................................................................................................................... 1 1.2 处理器的选择方案论证..................................................................................................... .............. 1 1.3 周期性判别与测量方法方案论证.................................................................................... ............... 2 2 系统设计................................................................................................................................................2 2.1 总体设计..................................................................................................................... ......................2 2.2 单元电路设计...................................................................................................................................3 2.2.1 前级阻抗匹配和放大电路设计.................................................................................................. .3 2.2.2 AD转换及控制模块电路设计................................................................... ....................................4 2.2.3功率谱测量单元电路设计..............................................................................................................4 3 软件设计............................................................................................................................................5 4 系统测试............................................................................................................................................5 5 结论....................................................................................................................................................6 附录:......................................................................................................................................................7 附1:元器件明细表:.......................................................................................................................9 附2:仪器设备清单...........................................................................................................................9 附3:电路图图纸.............................................................................................................................10 附4:程序清单.................................................................................................................................11

2

1 方案论证与比较

1.1 采样方法比较与选择

方案一、用DDS芯片配合FIFO对信号进行采集,通过DDS集成芯片产生一个频率稳定度和精度相当高的信号作为FIFO的时钟,然后由FIFO对A/D转换的结果进行采集和存储,最后送FPGA处理。

方案二、直接由FPGA的时钟模块对TCL5510控制进行信号的采集,然后对信号分析。利用fpga采样的有点是采样速率可以较快,采样的结果较易送入fpga进行存储,并且使用方便, 经过分析判断,我们选着方案二。

1.2 处理器的比较与选择

系统方案一:基于ARMST710的专用芯片的体统方案。基于ARM ST710音频频谱分析仪系统原理图如下:

输入信号LCDADCDACLCD接口SRAMMCUARMSTTIOFLASHSDCardSDCard接口USB接口

该方案采用DSP专用芯片ARM ST710进行控制和FFT计算,速度快,且具有波形存储和处理后的波形可以重放功能。还配有输出接口与示波器销量。可以从时域和频域观察波形,非常直观、实用。

系统方案二:基于单片机C8051F060+FPGA构成信号分析仪,该系统原理方框图如图所示。单片机C8051F060独立完成4096点FFT运算和信号的失真度分析。虽然这种方案在速度上不及采用专用DPS芯片快,但采用优化的FFT,并将优化后的FFT再单片机内做实验,利用外扩的128KB RAM运算4096点FFT计算幅度谱,利用FPGA进行测频和控制。其运算时间也不超过4S。能够达到设计要求。

128KB RAMDMAC8051F060输入信号PC 键盘信号预处理ADC0点阵液晶字符液晶测频电整形信号FPGA 1

系统方案三:基于单片机TLC5510+FPGA构成信号分析仪,该系统原理框图如图所示。利用TCL5510对音频信号进行8位采样,FPGA对采样信号存储并按时序送到生成的FFT模块进行运算,最后将运算后的数据送到LCD1602进行显示。该方案可以利用fpga强大的性能,进行计算前数字滤波处理,然后在利用fpga宏模块进行fft数字信号处理,其特点是运算速度快,精度高,还可进行信噪比调动,使其信号进一步处理,并且用fpga与单片机实行通信,较易实现,总体上在fpga上进行处理,利用fpga强大的灵活性和信号处理能力。

音频信号输入可控增益放大器ADCFLASH/RAM显示器FPGAFFT处理

总体设计框架图

综上所述,我们选着方案三。

1.3 周期性判别与测量方法比较与选择

对于普通的音频信号,频率分量一般较多,它不具有周期性。测量周期可以在时域测量也可以在频域测量,但是由于频域测量周期性要求某些频率点具有由规律的零点或接近零点出现,所以对于较为复杂的,频率分量较多且功率分布较均匀且低信号就无法正确的分析其周期性。

而在时域分析信号,我们可以先对信号进行处理,然后假定具有周期性,然后测出频率,把采样的信号进行周期均值法和定点分析法的分析后即可以判别出其周期性。

综上,我们选择信号在时域进行周期性分析和周期性测量。对于一般的音频信号,其时域变化是不规则的,所以没有周期性。而对于单频信号或者由多个具有最小公倍数的频率组合的多频信号具有周期性。这样我们可以在频域对信号的频谱进行定量分析,从而得出其周期性。而我们通过先假设信号是周期的,然后算出频率值,然后在用此频率对信号进行采样,采取连续两个周期的信号,对其值进行逐次比较和平均比较,若相差太远,则认为不是周期信号,若相差不远(约5%),则可以认为是周期信号。

2 系统设计

2.1 总体设计

音频信号经过一个由运放和电阻组成的阻抗匹配网络后,经由量程控制模块进行处理,若是一般的0.001V-20V的电压,我们选择将其输入到前置放大器,

2

8位的A/D转换器在2.5V参考电压的条件下的最小分辨力为1mV左右,所以如果选择直通的话其离散化处理的误差将会很大,所以采用继电器进行音频信号电压判断:0.001V-0.024V进行1000倍放大、0.007V-0.099V进行100倍放大、0.007V-1.2V进行10倍放大、0.8V-20V进行1/2倍放大,再进行A/D采样。

经过8位A/D转换器TCL5510转换后的数字信号经由FPGA进行FFT变换和处理,分析其频谱特性和各个频率点的功率值,利用fpga宏模块进行运算,再接一个fpga与单片机匹配口的连接模块,然后将这些值送由示波器进行显示。信号由FPGA分析后判断其周期性,然后进行测量,然后进行数据处理,然后进行显示。

2.2 单元电路设计

2.2.1 前级阻抗匹配和放大电路设计

V10V1000.1uFC110uFC21.5KΩ100ΩR2R1OP27R475ΩR30.1uFC3OP27104Ω1.0KΩR5110ΩR7OP271.0KΩR8V0GND75ΩR610uFC4R975Ω0.1uFC51.95kΩR10OP2710uFC61.08kΩR11GNDGNDV1/21.5kΩ0.1uFR12C710uFC8GND

输入信号直接送到前置放大,通过继电器控制对信号放大的倍数,放大后再

进行AD转换,共有四个放大倍数:倍、10倍、100倍、1000倍。。

在这道题目里,需要检测各频率分量及其功率,并且要测量正弦信号的失真度,这就要求在对小信号进行放大时,要尽可能少的引入信号的放大失真。正弦

3

信号的理论计算失真度为零,对引入的信号失真非常灵敏,所以对信号的放大,运放的选择是个重点。

我们选择的运放是TI公司的低噪声、低失真的仪表放大器OP27,其失真度在频率为1KHz,增益为20dB(100倍放大)时仅为0.004%.

其中放大器A1的输出电压计算公式为

:OUT1=1+(R11/R10)*VIN

同理有

:OUT2=1+(R2/R1)*VIN

:OUT3=1+(R5/R4)*VIN

:OUT4=1+(R8/R7)*VIN

,

,

,

,

,

注:实际使用电阻值与理想值有少许出入,但不影响系统大体指标。

2.2.2 AD转换及控制模块电路设计

采用8位AD转换器TCL5510进行转换,将转换的数据送FPGA控制器进行处理。 控制模块将信号存入模块中,然后进行对fft宏模块的控制,使fft宏模块能够运行,然后将数据导入宏模块,待其算好后,将数据导入到内存上存储。

2.2.3 功率谱测量

功率谱测量主要通过对音频信号进行离散化处理,通过FFT运算,求出信号各个离散频率点的功率值,然后得到离散化的功率谱。

根据频率分辨率与采样频率和采样点数的关系:

f=fk/N;

可以得知,fk=N*f;

又根据采样定理,采样频率fk必须不小于信号频率fm的2倍,即:

fk>=2fm;

题目要求的最大频率为5KHz,所以采样频率必须大于10KHz,考虑到FFT运算在2的次数的点数时的效率较高,所以我们选择40.96KHz采样率,采集2048个点。

4

通过FFT 分析出不同的频率点对应的功率后,就可以画出其功率谱,并可以在频域计算其总功率。

(利用fpga自带逻辑分析仪测量功能,测量显示结果如图)

3 软件设计

主控制芯片为FPGA,测量周期为实现,由于处理器速度较快,所以采用veilog语言编程方便简单.软件流程图如下:

模块初始化音频信号输入继电器0.8V0.07V~20V~1.2V0.007V0.001V~0.099V~0.024V1/2倍10倍1001000倍倍AD采样数据存储FFT运算显示

5

主流程图

4 系统测试

4.1 总功率测量(室温条件下)

输入信号 频率 正弦波 音频信号 测量时域总测量频理论值 功率(w) 域总功率(w) 100Hz 1 Vpp 0.127 0.129 0.125 1KH 1 Vpp 0.126 0.129 0.125 20Hz-10KHz 20mVpp-5Vp0.783 0.761 X p 1.803 1.777 X 频率 幅度 幅度 估算误差 1.2% 1.3% 《5% 《5% 输入信号 最大功率最大功率次大功率次大功率 结果分析:由于实验室提供的能够模仿音频信号的且能方便测量的信号只有正弦信号,所以我们用一款比较差点的信号发生器产生信号,然后进行测量,发现误差不达,在+-5%以内。我们以音频信号进行测量,由于其实际值无法测量,所以我们只能根据时域和频域以及估计其误差,都在5%以内。

4.2 单个频率分量测量(室温条件下)

结果分析:我们首先以理论上单一频率的正弦波为输入信号,在理想状况下,其频谱只在正弦波频率上有值,而由于有干扰,所以在其他频点也有很小的功率。 音频信号由于有多个频点,所以没有一定的规律性。由于音频信号波动较大,没有一定的规律,且实验室没有专门配置测量仪器,所以我们只好以正弦波和三角波作为信号进行定量分析测量,以及对音频信号进行定性的分析和测量。我们发现其数字和用电脑模拟的结果符合得很近。

5 结论

由于系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标。

6

正弦波 正弦波 音频信号 频点 500Hz 100mVpp 500Hz 5KHz 1Vpp 5KHz 20Hz-10K X 880Hz 频点功率 1.20mw 120mw 23mw 频点 520Hz 5.02KHz 600Hz 频点功率 0.04mW 3.56mw 4.3mw

附录:

附1:元器件明细表:

1.LPC2148 2.ATMEGA16 3.AD620 4.ADS7819

5.液晶LCD5510

附2:仪器设备清单

1.低频信号发生器 2.数字万用表

3.失真度测量仪

7

4.数字示波器 5.稳压电源

控制程序如下: module

kd(clk,clk1,sink_ready,source_error,source_sop,source_eop,source_valid,source_real,source_imag,i_digital,

reset,inverse,sink_valid,sink_sop,sink_eop,sink_real,sink_imag,source_ready,oe,source_en); //module

abc(clk,i_digital,oe,clk1,reset,inverse,sink_valid,ssink_sop,sink_eop,sink_real,sink_imag,source_ready); input clk;

input sink_ready;

input [1:0]source_error; input source_sop; input source_eop; input source_valid; input [7:0]source_real; input [7:0]source_imag; input source_en; input [7:0]i_digital;

output oe; output clk1; output reg reset; output inverse; output reg sink_valid; output sink_sop; output reg sink_eop; output reg [7:0]sink_real; output [7:0]sink_imag; output source_ready;

reg [15:0]cnt; reg [15:0]negcnt; reg [7:0]add; reg [7:0]add1; reg [7:0]add2; reg [7:0]add3;

reg [7:0]mem1[255:0]; reg [7:0]mem2[255:0];

8

reg [7:0]mem3[255:0]; reg [7:0]oo_real; reg [7:0]oo_imag;

reg sink_sop;

assign oe=0;

assign source_ready=1; assign sink_imag=8'b0; assign inverse=0; assign clk1=clk;

initial reset=0; initial sink_valid=0; always @(negedge clk) begin

negcnt=negcnt+1;

if(negcnt>=264)begin reset=1;end end

always @(posedge clk) begin

cnt=cnt+1;

if(cnt<=255) begin mem1[add]=i_digital;add=add+1;end

if( cnt==256+3+1+5) begin sink_eop=0; sink_valid=1; sink_sop=1; sink_real=mem1[0];add1=1;end if(cnt>=256+3+1+5+1 & cnt<256+3+1+5+255) begin sink_sop=0; sink_real=mem1[add1];add1=add1+1;end

if(cnt==256+3+1+5+255)begin sink_real=mem1[add1];add1=add1+1;end if(cnt==256+3+1+5+255+1) begin sink_eop=1; cnt=256+3+1+4;add1=0;end end

//assign ssink_sop=sink_sop;

Endmodule

9

接口程序如下:

module zzz(n,c,clk,clk1); input [7:0] n; input clk; input clk1;

output [7:0]c;

reg [15:0] dd; reg [15:0] k;

reg[30:0] add;

reg [7:0] mem[255:0];

initial add=0; initial k=0;

always@(posedge clk) begin

add=add+1; if(add==390) begin

mem[add-390]=n; end end

always@(posedge clk1) begin

dd=mem[k]; k=k+1; begin if(k==255) k=0; end end

assign c=dd;

10

endmodule

11

本文来源:https://www.bwwdw.com/article/2s9x.html

Top