采用SPCE061A单片机对输入的20Hz~100KHz的音频信号通过A/ D采样,获得各点电压值。用快速傅立叶(FFT)技术对A/D采得的数字量进行8次蝶形运算,获得各点幅值。使得频率分辨力小于100Hz,可测得频差小于100Hz的频率分量的功率值。分别由电压值和各点幅值求出输入信号的总功率和各频率分量的功率和,发现各频率分量的功率和与输入信号的总功率间的误差小于5%。根据各频率分量的幅值,我们可以找出输入信号的分率成分。同时由LCD显示信号总功率及前两个频率分量的频率值和功率值。分析频率时用到的FFT技术,同时又可移植到波形失真度测量领域,对失真度进行精确计算。
关键词:SPCE061A、A/D采样、FFT处理、频率分析、功率计算、周期判断
一、系统方案论证与比较
1、系统要求
设计、制作一个可分析音频信号(200Hz~10KHz,100mV~5V)频率成分,并可测量正弦信号失真度的输入阻抗为50Ω的仪器。基本要求频率分辨力100Hz,检测输入信号的总功率和各频率分量功率和,分析时间5S。发挥部分要求增加频率分辨力,并能判断输入信号周期,以及分析正弦波失真度。
2、方案比较
2.1输入预处理部分
对输入音频信号进行采样,要求输入信号的电压范围不能有负值,并保证被转换电压的幅值范围在A/D处理范围内。现输入音频信号的电压峰-峰值范围为(0~5V),要保证输入信号的幅值为正,必须进行预处理,抬高电压。
方案1:外加直流电源,串、并联电阻抬高电压。要精确抬高输入信号的电压,则必须精密计算串、并联电阻的阻值。而且选择的电阻要精密,对材料要求高。外接电阻,将消耗输入信号的功率,对题目要求的测量输入音频信号的功率有影响。
方案2:利用集成运放,外接直流电压,进行加法、除法处理信号电压。用运放将输入信号与直流信号进行加法操作,不改变输入信号的频率,不影响后面对频率分量的分析。做除法运算,只是改变了信号各点的电压值,保证了A/D工作范围。
方案 3:在电压抬高的基础上,进行反混叠滤波处理。采样频率大于20KHz信号频率时,会产生混叠。为避免混叠,要么提高采样频率,要么采用滤波电路。前者加大了对A/D的要求,增大了单片机控制的难度。后者可对大于10KHz的信号产生抑制作用,减少干扰。
综合考虑,我们选择采用集成运放抬高电压,反混叠滤波器对输入信号进行预处理。
2.2、信号采样
方案1:由单片机自带A/D进行采样。如SPCE061A,芯片内部集成了10位的A/D转换,其最大采样频率可达到96KHz。完全可对10KHz的音频信号采样,并保证分辨力小于100Hz的要求。同时可以不用考虑A/D与单片机兼容的问题。
方案2:外接A/D转换。如8位的A/DTLC5510,虽然转换速度可以达到2M/S,但是其精度不高。基本部分要求计算输入信号功率和各频率分量功率和,并计算二者误差,而8位A/D采得的精度不够,必增大误差。外接A/D,将增大引入干扰的可能。不利于系统的稳定。
方案3:对于基础部分和发挥部分别用A/D转换,基础本分用高位的A/D保证精度,发挥部分用高速A/D保证采样速率。
结合实际,SPCE061A已能满足要求,既能达到精度要求,又能达到采样速率的要求,所以采用方案1。
3、综合描述
系统框架如图(1)所示。图中输入信号的电压范围(峰-峰值)为100mV~5V,包含的频率成分范围为200Hz~10KHz。外部处理即对输入信号进行低通滤波,保证测量的信号频率是小
输入
信号
外部
处理
SPCE061A
A/D采样与FFT处理
LCD显示
键盘
(1)系统框架结构
于10KHz的信号。由于SPCE061A电压的直接测量范围为0~3.3V,所以对于宽范围的电压信号,必须进行压值处理,使其在测量范围内。SPCE061A单片机本身有A/D转换功能,所以在芯片内部就可完成采样。再由单片机完成FFT数据处理。LCD用于显示频率与功率。键盘用于切换功率与频率回放显示、实现暂停等功能。
二、理论分析与计算
1、放大器设计
由于输入音频信号的电压范围(峰-峰值)为100mV~5V。音频信号无法预计其幅值,当信号的峰-峰值为100mV时,幅值小,受外界信号干扰大,容易引起测量不准。所以要采用放大电路。系统采用2个OP07先抬高输入信号,再对信号衰减。
图(2)放大器设计
如图(2)所示:电压V1为信号的输入电压,V2为外接直流电压(V2=5V),V3是提升后的电压。首先将输入信号V1与直流分量V2进行求和,得V3与输入信号V1相位相反。再经过一次反向除法运算,得到一个与输入信号相位相同的衰减信号VO 。
因为 ,即 ;则有 ;
当 为小信号,即 的峰值为100mV:对应的最小 V;相对以前的10mV,增大了100倍,避免了干扰。
又因为 ;则有
由上述计算知道:已在SPCE061A的测量范围(0~3.3V)。
2、功率谱测量方法
输入音频信号的频率范围为200Hz~10KHz,要求频率的分辨力为100Hz。则需要对音频信号采样,由A/D转换,经FFT处理,获得各点的幅值,经过运算可以得到各频率分量的功率。
首先确定采样频率fs,由于音频信号的频率范围为200Hz~10KHz,根据采样定理,必须保证fs≥20KHz,结合分辨力100Hz的要求,我们确定fs =25.6KHz。
频率分辨力ΔF= fs/N。现确定fs =25.6KHz,要保证频率分辨力为100Hz,则应取N= 25.6K/100=256点。则第n点的频率fK=100nHz。对音频信号采样后的各点值,需用FFT原理处理,得各点的正弦信号的幅值Un。则各频率分量的功率为 。
3、周期性判断方法
音频信号可看成是N次谐波的叠加,则音频信号里必有一个最大的频率分量,我们可近似的将输入音频信号的周期看成是最大频率分量的周期。最大的频率分量可以在做频谱分析时通过各分量的相互比较得出,设最大频率分量的频率为fmax。那么音频信号的周期T=1/fmax 。
4、失真度测算
失真度计算公式: 为第n点谐波功率, 为基波功率。将测得的各频率分量的功率代入上式计算,可得失真度K。
三、电路与程序设计
1、电路设计
1.1、反混叠滤波电路
图(3)反混叠滤波电路
在应用FFT变换时需要对连续的时间信号进行采样,当采样频率fs>2*fh时,采样后的频谱中将有一部分重叠,导致采样后的信号x(n)的频谱与原始信号的频谱不一致,因此需要加一反混叠滤波器。如图(3)低通滤波器,图示二阶低通VCVS 滤波器的截止频率为10KHz,将抑制高于10KHz的音频信号输入。
1.2、SRAM扩展电路
进行频谱分析时,要对音频信号采集的数字量进行FFT处理。单片机计算时要用到两个256个浮点型值的正、余弦表。总共占用RAM 4*256*2=2048=2K。而SPCE061A的RAM只有2K,故在计算时RAM资源并不充分,需要扩展。我们采用SPR4096进行扩展。SPR4096具有4K×8bit的RAM,512K×8bit的flash。扩展电路连接如图(4)SPR4096与SPCE061A连接图。
图(4)SPR4096与SPCE061A连接图
2、程序设计
LH=N/2
J=LH
N1=N-2
I=1,N1
I≥J
T=X(I)
A(I)=X(J)
A(J)=T
K=LH
J
J=J+K
J=J-K
K=K/2
Y
Y
N
N
图(5)倒位序流图
如右图(5)所示为FFT蝶形运算处理的一个倒位序流程图。FFT算法在实现时就是3个嵌套循环,而倒位序的实现可以通过查表和算法实现。自制倒位序查询表,将占用较多的RAM资源,不利较多取样点的计算。通过函数自己还原倒位序,将留出更多的RAM空间利于采集更多的点,增大分辨力,提高功率计算的准确性。
Y
FFT算法:
N
;
for L=1:M ;
;
for J=0:B ;
;
for K=J: :N ;
;
;
end
end
图(5)倒位序流图
end
四、指标测试
1、测试方案
测试仪器:
直流稳压电源、交流毫伏表、四位半数字万用表
(1)输入阻抗测试
外接直流电压U,测输入电流I。则RIN=U/I。
(2)功率测量
外接标准的正弦信号,调节信号的频率与幅值,根据 (U为信号的峰值),分别测量各信号的功率。
(3)其它指标
经压值处理电路,知电压UO(0~2.5V),在系统的处理电压(0~3.3V)范围内。设定的单片机采样率为25.6KHz,大于10KHz,能完成题目要求分析的信号范围。5S刷新一次,实时显示信号总功率和前两个频率分量都可在LCD上观察。
输入信号的周期T可近似看作其最大频率分量的周期TMAX ,最大频率分量的频率为fMAX。则:T=TMAX=1/fMAX 。
2、测试结果
(1)输入阻抗测试数据
测得R=49.5Ω。
(2)功率测量结果
电压峰-峰值 |
频率 |
测量功率 |
实际功率 |
误差 |
2V |
100Hz |
0.03994W |
0.04W |
0.15% |
2V |
500Hz |
0.03912W |
0.04W |
2.2% |
2V |
1KHz |
0.03887W |
0.04W |
2.8% |
2V |
10KHz |
0.03812W |
0.04W |
4.7% |
1V |
800Hz |
0.00965W |
0.01W |
3.5% |
3V |
800Hz |
0.08976W |
0.09W |
0.3% |
3、结果分析
由表(1)知系统在频率较低,电压值大时时测量的准确度高。题目要求的基础部分都完全达到要求。
发挥部分,频率分辨力的大小直接影响信号分析的灵敏度。频率分辨力越小,信号的动态测量范围越大,输入信号周期T越精确。
评论