基于FFT的音频信号分析仪报告
用FFT对信号做频谱分析报告

备注:按照要求独立完成实验容。
实验五 用FFT 对信号做频谱分析一、实验目的学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT 。
二、实验原理用FFT 对信号作频分析是学习数字信号处理的重要容,经常需要进行分析的信号是模拟信号的时域离散信号。
对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。
频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是2π/N ,因此要求2π/N 小于等于D 。
可以根据此式选择FFT 的变换区间N 。
误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时,离散谱的包络才能逼近连续谱,因此N 要适当选择大一些。
三、实验容(包括代码与产生的图形及分析讨论)1. 对以下序列进行谱分析:14()()x n R n =选择FFT的变换区间N为8和16 两种情况进行频谱分析。
分别打印其幅频特性曲线, 并进行对比、分析和讨论。
function mstem(Xk)%mstem(Xk)绘制频域采样序列向量Xk的幅频特性图M=length(Xk);k=0:M-1;wk=2*k/M;%产生M点DFT对应的采样点频率(关于pi归一化值)stem(wk,abs(Xk),'.');box on;%绘制M点DFT的幅频特性图xlabel('w/\pi');ylabel('幅度');axis([0,2,0,1.2*max(abs(Xk))]);x1n=[ones(1,4)]; %产生序列向量x1(n)=R4(n)X1k8=fft(x1n,8); %计算x1n的8点DFTX1k16=fft(x1n,16); %计算x1n的16点DFT%以下绘制幅频特性曲线subplot(3,2,1);mstem(X1k8); %绘制8点DFT的幅频特性图title('(1a) 8点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');subplot(3,2,2);mstem(X1k16); %绘制16点DFT的幅频特性图title('(1b)16点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');axis([0,2,0,1.2*max(abs(X1k16))])x2n=[1 2 3 4 4 3 2 1 zeros(1,50)]; %产生序列向量x1(n)=R4(n) X2k8=fft(x2n,8); %计算x1n的8点DFTX2k16=fft(x2n,16); %计算x1n的16点DFT%以下绘制幅频特性曲线subplot(3,2,3);mstem(X2k8); %绘制8点DFT的幅频特性图title('(2a) 8点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度');axis([0,2,0,1.2*max(abs(X2k8))])subplot(3,2,4);mstem(X2k16); %绘制16点DFT的幅频特性图title('(2b)16点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度');axis([0,2,0,1.2*max(abs(X2k16))])x3n=[4 3 2 1 1 2 3 4 zeros(1,50)]; %产生序列向量x1(n)=R4(n) X3k8=fft(x3n,8); %计算x1n的8点DFTX3k16=fft(x3n,16); %计算x1n的16点DFT%以下绘制幅频特性曲线subplot(3,2,5);mstem(X3k8); %绘制8点DFT的幅频特性图title('(3a) 8点DFT[x_3(n)]');xlabel('ω/π');ylabel('幅度');subplot(3,2,6);mstem(X3k16); %绘制16点DFT的幅频特性图title('(3b)16点DFT[x_3(n)]');xlabel('ω/π');ylabel('幅度');axis([0,2,0,1.2*max(abs(X3k16))])分析:图(1a)和(1b)说明x1(n)=R4(n)的8点DFT和16点DFT分别是x1(n)的频谱函数的8点和16点采样因为x3(n)=x2((n+3))8R8(n),所以,x3(n)与x2(n)的8点DFT的模相等,如图(2a)和(2b ),但是当N=16时,x2(n )与 x3(n )不满足循环移位关系,模值不相等。
fft实验分析实验报告

fft实验分析实验报告FFT实验分析实验报告一、引言傅里叶变换(Fourier Transform)是一种重要的信号分析工具,它能够将一个信号分解成不同频率的成分。
快速傅里叶变换(Fast Fourier Transform,FFT)是一种高效的计算傅里叶变换的算法。
本实验旨在通过实际操作,探究FFT在信号分析中的应用。
二、实验设备与方法1. 实验设备:本实验使用的设备包括示波器、信号发生器和计算机。
2. 实验方法:(1)将信号发生器的输出接入示波器的输入端。
(2)调节信号发生器的参数,如频率、振幅等,产生不同的信号。
(3)通过示波器观察信号的波形,并记录相关数据。
(4)将示波器与计算机通过USB接口连接,将示波器上的数据传输到计算机上。
(5)使用计算机上的软件进行FFT分析,得到信号的频谱信息。
三、实验结果与分析1. 实验一:正弦波信号的FFT分析(1)设置信号发生器的频率为1000Hz,振幅为5V,产生一段正弦波信号。
(2)通过示波器观察信号的波形,并记录相关数据。
(3)将示波器上的数据传输到计算机上,进行FFT分析。
实验结果显示,正弦波信号的频谱图呈现出单个峰值,且峰值位于1000Hz处。
这说明FFT能够准确地分析出信号的频率成分,并将其可视化展示。
2. 实验二:方波信号的FFT分析(1)设置信号发生器的频率为500Hz,振幅为5V,产生一段方波信号。
(2)通过示波器观察信号的波形,并记录相关数据。
(3)将示波器上的数据传输到计算机上,进行FFT分析。
实验结果显示,方波信号的频谱图呈现出多个峰值,且峰值位于500Hz的倍数处。
这说明方波信号由多个频率成分叠加而成,FFT能够将其分解出来,并显示出各个频率成分的强度。
3. 实验三:复杂信号的FFT分析(1)设置信号发生器的频率为100Hz和200Hz,振幅分别为3V和5V,产生一段复杂信号。
(2)通过示波器观察信号的波形,并记录相关数据。
(3)将示波器上的数据传输到计算机上,进行FFT分析。
实验二 用FFT分析语音信号的频谱

实验二用FFT分析语音信号的频谱
一、实验目的
1、分析实际工程中一个语音信号的频谱。
2、掌握FFT反变换的意义。
二、实验内容
1、实际中通过一个语音信号进行采样,获得数字信号对频谱信号进行FFT进行
分析。
2、去除频谱中幅值小于1的系数进行反变换,重构原来语音进行对比分析。
3、
三、实验用设备仪器及材料
P4计算机MATLAB软件
四、实验原理
实验程序如下:
[x,f,n,o]=wavread(‘bird.wav’);
subplot(2,2,1);plot(x);title(‘原始语音信号’);
y=fft(x);subplot(2,2,2);plot(abs(y));title(‘FFT变换’);
y(abs(y)<1)=0;x=ifft(y);
subplot(2,2,3);plot(abs(y));title(‘去掉幅值小于1的FFT变换值’);
subplot(2,2,4);plot(real(x));title(‘重构语音信号’);
wavwrite(x,f,’bird1.wav’);
五、实验步骤和及方法
1、对一个语音进行FFT,画出其频谱。
2、去掉幅值小于1的系数,进行傅立叶变换。
3、给出一个语音信号,用MATLAB进行FFT分析。
六、实验报告要求
1、对FFT变换及IFFT有一定的认识。
2、了解数据压缩的意义。
3、画出语音信号时频图、及重构语音图。
基于FFT算法的音频频谱仪设计

基于FFT算法的音频频谱仪设计音频频谱仪是一种用于分析音频信号频谱特征的工具,能够显示音频信号在频域上的能量分布情况。
其中,FFT(快速傅立叶变换)算法是一种用于对连续时间域信号进行频谱分析的算法,通过将时域信号转换为频域信号,能够高效地进行频谱分析。
一、基本原理FFT算法的基本原理是将N点的离散时间序列转换为N/2个频率序列,从而实现时域信号到频域信号的转换。
其核心思想是将连续信号进行离散化处理,然后通过计算傅立叶系数来得到频域信号的能量分布情况。
具体而言,FFT算法将时域信号表示为由N个采样点组成的离散序列,然后将序列进行重排列、分解为偶数序列和奇数序列,并通过递归地进行分解和求解傅立叶系数,最终得到频域信号的能量分布。
二、设计要点1.采集音频信号:通过音频输入设备(如麦克风)采集音频信号,并将其转换为数字信号。
2.分帧:将连续的音频信号分成多个帧,每帧包含若干个采样点。
常用的帧长度为1024、2048等。
3.加窗:对每帧采样点进行加窗处理,常用的窗函数有汉宁窗、汉明窗等。
窗函数的作用是减小边界效应,使得频谱分析更加准确。
4. 快速傅立叶变换:对加窗后的每帧信号应用FFT算法进行频谱分析,得到每帧的频域信号。
常用的FFT算法有Cooley-Tukey算法等。
5.平滑处理:对每帧的频谱信号进行平滑处理,以减小噪声对频谱分析的影响。
常用的平滑算法有加权平均法、中值滤波法等。
6.显示频谱:将每帧的频谱信号按照频率进行展示,通常使用图表或图像显示方式。
横轴表示频率,纵轴表示能量。
三、设计步骤1.初始化:初始化音频输入设备,并设置采样率、帧长度等参数。
2.采集音频信号:使用音频输入设备采集音频信号,并将其转换为数字信号。
3.分帧:将采集到的音频信号分成多个帧,每帧包含若干个采样点。
4.加窗:对每帧信号进行加窗处理,选择合适的窗函数。
5.快速傅立叶变换:对加窗后的每帧信号应用FFT算法进行频谱分析,得到每帧的频域信号。
实验三用FFT对信号作频谱分析_实验报告

实验三用FFT对信号作频谱分析_实验报告一、实验目的1.学习使用FFT(快速傅里叶变换)对信号进行频谱分析;2.掌握频谱分析的基本原理和方法;3.熟悉使用MATLAB进行频谱分析的操作。
二、实验原理FFT是一种基于傅里叶变换的算法,可以将时域信号转换为频域信号,并将信号的频谱特征展示出来。
在频谱分析中,我们通过分析信号的频谱可以获得信号的频率、幅值等信息,从而对信号的性质和特征进行研究。
对于一个连续信号,我们可以通过采样的方式将其转换为离散信号,再利用FFT算法对离散信号进行频谱分析。
FFT算法可以将信号从时域转换到频域,得到离散的频谱,其中包含了信号的频率分量以及对应的幅值。
MATLAB中提供了fft函数,可以方便地对信号进行FFT分析。
通过对信号进行FFT操作,可以得到信号的频谱图,并从中提取出感兴趣的频率信息。
三、实验步骤1.准备工作:(2)建立新的MATLAB脚本文件。
2.生成信号:在脚本中,我们可以通过定义一个信号的频率、幅值和时间长度来生成一个信号的波形。
例如,我们可以生成一个频率为1000Hz,幅值为1的正弦波信号,并设置信号的时间长度为1秒。
3.对信号进行FFT分析:调用MATLAB中的fft函数,对信号进行FFT分析。
通过设置采样频率和FFT长度,可以得到信号的频谱。
其中,采样频率是指在单位时间内连续采样的次数,FFT长度是指离散信号的样本点数。
4.绘制频谱图:调用MATLAB中的plot函数,并设置x轴为频率,y轴为幅值,可以绘制出信号的频谱图。
频谱图上横坐标表示信号的频率,纵坐标表示信号的幅值,通过观察可以得到信号的频率分布情况。
四、实验结果在实验过程中,我们生成了一个频率为1000Hz,幅值为1的正弦波信号,并对其进行FFT分析。
通过绘制频谱图,我们发现信号在1000Hz处有最大幅值,说明信号主要由这一频率成分组成。
五、实验总结本实验通过使用FFT对信号进行频谱分析,我们可以方便地从信号的波形中提取出频率分量的信息,并绘制出频谱图进行观察。
基于FFT算法的音频信号分析仪

邓晓平,张贤,谭书伟,尹朝亮武汉大学电子信息学院,武汉(430079)E-mail:dxp190000@摘要:系统基于快速傅立叶变换(FFT)算法,以单片机和FPGA为控制与数据处理核心,实现对频率范围在20Hz~10KHz音频信号频率成分的分析。
系统由控制与运算核心、程控放大器、滤波和采样等模块组成。
通过对程控放大器增益的调整将系统可测电压(峰-峰值)的动态范围扩展到10mV~8V;通过改变模数转换器的采样频率,系统能实现频率分辨力100Hz、20Hz 两挡可调;频谱分析结果可按序存储,并使用点阵式液晶屏实时显示;通过对频谱数据特征的提取判断信号的周期性,并实现对信号的失真度分析。
另外,可通过点阵式液晶屏以图形方式显示信号各频率分量及其相对大小。
关键词:频域分析 FFT PGA 失真度1.引言音频信号的分析是语音通信、语音识别、语音合成、语音增强等技术的前提与基础。
只有将语音信号分析成表示其特性的参数,才可能利用这些参数进行高效的语音通信,才可能建立用于语音合成的语音库和用于语音识别的模版或知识库[5]。
而且,语音合成音质的好坏、语音识别率的高低,都取决于对语音信号分析的正确性与准确性。
音频信号分析可分为时域、频域、倒谱域等方法。
时域分析方法简单、运算量小、物理意义明确;但为有效的方法是在频域的分析。
傅立叶变换在信号处理中具有十分重要的作用,它可使信号的某些特性变得很明显,而在原始信号中这些特性可能不明显。
本文利用了频域分析方法的优点,实现对一般语音信号幅度、基音频率等特征信息的实时提取。
2.方案设计与论证2.1 控制与运算核心的选择方案一:单片机作为控制与运算核心。
方案二:FPGA作为控制与运算核心。
方案三:单片机与FPGA联合作为运算与控制核心。
单片机具有控制灵活简单的优点,但逻辑资源少,运行速度不能做得很高;FPGA相对于单片机在逻辑资源和速度上有绝对的优势,但不便于调试。
若将两者联合起来,可以充分发挥各自的优势,有可补充对方的缺点。
用FFT对信号进行频谱分析报告

——————————————————————————装 订 线 ————————————————————————————————
报告份数:
西安邮电大学 通信与信息工程学院 科研训练报告
专业班级: 学生姓名: 学号(班内序号): 2T对信号进行频谱分析
摘 要: 快速傅氏变换(FFT),是离散傅氏变换的快速算法,它是根据离 散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行 改进获得的。它对傅氏变换的理论并没有新的发现,但是对于在计算 机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大 步。 傅里叶变换的理论与方法在“数理方程”、“线性系统分 析”、“信号处理、仿真”等很多学科领域都有着广泛应用,由于计算 机只能处理有限长度的离散的序列,所以真正在计算机上运算的是一种 离散傅里叶变换. 虽然傅里叶运算在各方面计算中有着重要的作用, 但是它的计算过于复杂,大量的计算对于系统的运算负担过于庞大, 使得一些对于耗电量少,运算速度慢的系统对其敬而远之,然而,快 速傅里叶变换的产生,使得傅里叶变换大为简化,在不牺牲耗电量的 条件下提高了系统的运算速度,增强了系统的综合能力,提高了运算 速度,因此快速傅里叶变换在生产和生活中都有着非常重要的作用, 对于学习掌握都有着非常大的意义。 关键词 快速傅氏变换;信号频谱分析;离散傅里叶变换
三、实验原理
数字信号的傅里叶变换,通常采用离散傅里叶变换(DFT)方法。DFT 存在的不足是计算量太大,很难进行实时处理。计算一个N 点的DFT ,一 般需要次复数乘法和N(N-1)次复数加法运算.因此,当N较大或要求对信 号进行实时处理时,往往难以实现所需的运算速度。1965年,J.W.Cooly
for some Less power consumption, the slow speed of operation of its system at arm's length, however, have the fast Fourier transform, Fourier transform greatly simplifying the making, not in power at the expense of the conditions to increase the speed of computing systems, and enhance the system The comprehensive ability to improve the speed of operation, the Fast Fourier Transform in the production and life have a very important role in learning to master all have great significance. Key words: Fast Fourier Transform; Signal spectrum analysis Discrete Fourier Transform 引言: 1965年,库利(J.W.Cooley)和图基(J.W.Tukey)在《计算数 学》杂志上发表了“机器计算傅立叶级数的一种算法”的文章,这是一 篇关于计算DFT的一种快速有效的计算方法的文章。它的思路建立在对 DFT运算内在规律的认识之上。这篇文章的发表使DFT的计算量大大减 少,并导致了许多计算方法的发现。这些算法统称为快速傅立叶变换 (Fast Fourier Transform),简称FFT,1984年,法国的杜哈梅尔 (P.Dohamel)和霍尔曼(H.Hollmann)提出的分裂基快速算法[2][6] 使运算效率进一步提高。FFT即为快速傅氏变换,是离散傅氏变换的快 速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立 叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现, 但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说 是进了一大步。随着科学的进步,FFT算法的重要意义已经远远超过傅 里叶分析本身的应用。FFT算法之所以快速,其根本原因在于原始变化 矩阵的多余行,此特性也适用于傅里叶变换外的其他一些正交变换,例 如,快速沃尔什变换、数论变换等等。在FFT的影响下,人们对于广义 的快速正交变换进行了深入研究,使各种快速变换在数字信号处理中占 据了重要地位。因此说FFT对数字信号处理技术的发展起了重大推动作 用。
应用FFT对信号进行频谱分析实验报告

title('p=13,q=8 信号序列');
subplot(3,1,3);stem(x3);
title('p=14,q=8 信号序列');
figure(2)
subplot(3,1,1);stem(abs(fft(x1)))
title('p=8,q=8 幅频特性');
(1)利用8点FFT分析三角波和反三角波的时域和频域幅频特性,如图2.8,图2.9所示:
图2.8
图2.9
从图2.8和图2.9 可以看出,三角波和反三角波序列恰好相反,且其频谱是一样的。
(1)利用16点FFT分析三角波和反三角波的时域和频域幅频特性,如图2.10,图2.11所示:
图2.10
图2.11
对比图2.10和图2.11可以看出,对于16点时,三角波和反三角波的频谱明显不一样。和前面8点时的相比,其频谱也出现了较大出入,而正三角波的频谱变化不明显。
subplot(3,1,2);stem(abs(fft(x2)));
title('p=13,q=8 幅频特性');
subplot(3,1,3);stem(abs(fft(x3)));
title('p=14,q=8 幅频特性');
clc;
clearall;
n=0:50;%定义序列的长度是15
a=0.1; f=0.5625;x=exp(-a*n).*sin(2*pi*f*n);
(2-1)
如果对信号进行理想采样,可以得到离散傅里叶变换:
(2-2)
在各种信号序列中,有限长序列在数字信号处理中占有很重要的。无限长的序列往往可以用有限长序列来逼近。对于有限长的序列我们可以使用离散傅里叶变换(DFT),这一序列可以很好的反应序列的频域特性,并且容易利用快速算法在计算机上实现当序列的长度是N时,我们定义离散傅里叶变换为:
用FFT对信号作频谱分析实验报告

实验一报告、用FFT 对信号作频谱分析一、实验目的学习用FFT 对连续信号和时域离散信号进行频谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT 。
二、实验内容1.对以下序列进行频谱分析:()()()()4231038470n 4033470nx n R n n n x n nn n n x n n n =+≤≤⎧⎪=-≤≤⎨⎪⎩-≤≤⎧⎪=-≤≤⎨⎪⎩其它其它 选择FFT 的变换区间N 为8和16两种情况进行频谱分析。
分别打印其幅频特性曲线,并进行对比,分析和讨论。
2.对以下周期序列进行频谱分析:()()45cos4coscos48x n n x n n nπππ==+选择FFT 的变换区间N 为8和16两种情况分别对以上序列进行频谱分析。
分别打印其幅频特性曲线,并进行对比、分析和讨论。
3.对模拟信号进行频谱分析:()8cos8cos16cos20x t t t t πππ=++选择采样频率64s F Hz =,对变换区间N=16,32,64 三种情况进行频谱分析。
分别打印其幅频特性,并进行分析和讨论。
三、实验程序1.对非周期序列进行频谱分析代码:close all;clear all;x1n=[ones(1,4)];M=8;xa=1:(M/2);xb=(M/2):-1:1;x2n=[xa,xb];x3n=[xb,xa];X1k8=fft(x1n,8);X1k16=fft(x1n,16);X2k8=fft(x2n,8);X2k16=fft(x2n,16);X3k8=fft(x3n,8);X3k16=fft(x3n,16);subplot(3,2,1);mstem=(X1k8);title('(1a)8点DFT[x_1(n)]');subplot(3,2,2);mstem=(X1k16);title('(1b)16点DFT[x_1(n)]');subplot(3,2,3);mstem=(X2k8);title('(2a)8点DFT[x_2(n)]');subplot(3,2,4);mstem=(X2k16);title('(2b)16点DFT[x_2(n)]');subplot(3,2,5);mstem=(X3k8);title('(3a)8点DFT[x_3(n)]');subplot(3,2,6);mstem=(X3k16);title('(3b)16点DFT[x_3(n)]');2.对周期序列进行频谱分析代码:N=8;n=0:N-1;x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4k8=fft(x4n);X5k8=fft(x5n);N=16;n=0:N-1;x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4k16=fft(x4n);X5k16=fft(x5n);figure(2)subplot(2,2,1);mstem(X4k8);title('(4a)8点 DFT[x_4(n)]');subplot(2,2,2);mstem(X4k16);title('(4b)16点DFT[x_4(n)]');subplot(2,2,3);mstem(X5k8);title('(5a)8点DFT[x_5(n)]');subplot(2,2,4);mstem(X5k16);title('(5a)16点DFT[x_5(n)]') 3.模拟周期信号谱分析figure(3)Fs=64;T=1/Fs;N=16;n=0:N-1;x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);X6k16=fft(x6nT);X6k16=fftshift(X6k16);Tp=N*T;F=1/Tp;k=-N/2:N/2-1;fk=k*F;subplot(3,1,1);stem(fk,abs(X6k16),'.');box ontitle('(6a)16µãDFT[x_6(nT)]');xlabel('f(Hz)');ylabel('·ù¶È');axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k16))]);N=32;n=0:N-1; %FFTµÄ±ä»»Çø¼äN=32x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);X6k32=fft(x6nT);X6k32=fftshift(X6k32);Tp=N*T;F=1/Tp;k=-N/2:N/2-1;fk=k*F;subplot(3,1,2);stem(fk,abs(X6k32),'.');box ontitle('(6b)32µãDFT[x_6(nT)]');xlabel('f(Hz)');ylabel('·ù¶È');axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k32))]);N=64;n=0:N-1; %FFTµÄ±ä»»Çø¼äN=64x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);X6k64=fft(x6nT);X6k64=fftshift(X6k64);Tp=N*T;F=1/Tp;k=-N/2:N/2-1;fk=k*F;subplot(3,1,3);stem(fk,abs(X6k64),'.');box ontitle('(6c)64µãDFT[x_6(nT)]');xlabel('f(Hz)');ylabel('·ù¶È');axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k64))]);四、实验结果与分析分析:图(1a)和图(1b)说明X1(n)=R4(n)的8点和16点DFT分别是X1(n)的频谱函数的8点和16点采样;因X3(n)=X2((n-3))8R8(n),故X3(n)与X2(n)的8点DFT的模相等,如图(2a)和图(3a)所示。
音频信号分析仪实验报告

音频信号分析仪实验报告音频信号分析仪(课程设计)组员:唐中源 1128401074黄君君 1128401104施以鹏 1128401105 指导老师:邓晶专业:通信工程完成时间: 2014年6月16日目录摘要 (4)一、方案比较论证 (5)1.1控制器选择 (5)1.2放大器设计方案 (5)1.3主控芯片的选择 (6)1.4 FFT计算方式选择 (6)二、硬件设计 (6)2.1 总体设计 (6)2.2 模块单元设计 (7)2.2.1 电压跟随 (7)2.2.2 放大模块 (8)2.2.3 峰值检测电路 (11)2.2.4 滤波模块 (12)2.2.5 电压抬高模块 (13)2.2.6 模拟开关、比较器模块 (14)三、软件设计 (14)3.1ADC采样程序设计 (15)3.2快速傅里叶变换程序设 (16)四、硬件调试及系统测试 (17)4.1 分模块焊接仿真 (17)4.2 模块组合联调 (19)五、总结 (21)参考文献 (22)附录 (22)摘要本文主要论述了基于STM32单片机的音频信号分析仪的具体实现。
设计的关键部分是快速傅里叶变换(Fast Fourier Transform, FFT) 。
通过使用定点运算及FFT算法,该仪器每秒可完成115次1024点32位精度的FFT运算,可满足信号带宽20 Hz~10KHz、频率分辨力20 Hz的要求。
结果通过触屏LCD显示,显示出时域和频域波形并能进行两者切换,调整波形位置、大小,可以显示出测量的峰峰值、周期,可以判断输入是否为周期信号。
系统采用程控放大器PGA202KP,通过STM32内部的ADC检测输人信号幅度控制放大器放大倍数,实现了自动检测放大输入信号; 采用两种频率控制ADC交替采样完成信号幅和频率的准确测量。
AbstractThis article mainly elaborated based on the STM32 monolithic integrated circuit tonic train signaling analyzer concrete realization. This analyzer uses the FFT fast algorithmic analysis tonic 12 train signaling,the resultthrough the oscilloscope demonstration frequency spectrum and the LCD demonstration. And joins the adjustment function. System use program control amplifier PGA202, through the ADC examination input signal scope control amplifier enlargement factor, realizes the entire automatic detection enlargement input signal system also to use two kind of frequency controls ADC sampling to complete the signal scope and the frequency accurate survey in turn.关键字STM32 PGA202 频域分析FFT 失真度一、方案比较论证1.1控制器选择在数字信号处理中,常用的控制器有FPGA、DSP及STM32。
实验三:用FFT对信号作频谱分析_实验报告

实验三:用FFT对信号作频谱分析_实验报告一、实验目的:掌握用FFT对信号作频谱分析的方法。
二、实验仪器:1、计算机;2、MATLAB软件。
三、实验原理:FFT即快速傅里叶变换,是一种用来处理数字信号的算法,其将一个信号从时域(即时间域)中转换到了频域中。
傅里叶变换可以将时域上的信号转换到频域上,分析其中的各频率分量,以及各分量的大小、相位等。
由于实验过程较为简单,这里就不展开讲解。
四、实验内容:假设现在有一个包含了多种频率成分的信号,要求对其进行频谱分析。
五、实验步骤:(1)生成信号,此处生成的信号包含了2种频率成分。
```Fs=2000; %采样率T=1/Fs; %采样周期N=1024; %采样点数t=(0:N-1)*T; %时域采样点f1=150; %第一个频率成分f2=600; %第二个频率成分x=sin(2*pi*f1*t)+0.3*sin(2*pi*f2*t); %合成信号```(2)做傅里叶变换,将信号转换到频域。
```Y=fft(x); %做傅里叶变换P2=abs(Y/N); %取模P1=P2(1:N/2+1); %取单边谱P1(2:end-1)=2*P1(2:end-1); %翻倍f=Fs*(0:(N/2))/N; %频率点```(3)画出频谱图并分析。
```figuresubplot(2,1,1);plot(t,x);title('时域波形');xlabel('时间/s');ylabel('幅值/V');subplot(2,1,2);plot(f,P1,'r');title('频域谱图');xlabel('频率/Hz');ylabel('幅值/V');```六、实验结果分析:根据实验结果,可以看出原信号中包含的频率成分明显,且经过傅里叶变换后的频域谱图也反映出了信号中各个频率成分的大小和出现的频率位置。
音频信号分析仪报告

音频信号分析仪设计报告摘要:本文主要介绍了音频信号分析仪的原理及其设计;主要讨论利用NE5532,OP27等完成跟随,滤波和检测峰值的原理及功能,还有可变增益放大器的设计方案原理及其比较,并且还介绍了以STM32为核心的FFT变换的软件编程来实现对采集到的信号进行频谱的分析,实现了频率从20hz到10khz,幅度在100mv到5v峰峰值变化的输入信号的频谱分析,利用液晶模块显示频谱结果;除此之外还介绍了各种指标的测试方案及测量结果等。
关键字:可变增益放大滤波器STM32 FFTAbstract: This article mainly introduced the principles and design of the audio signal analyzer, Mainly discussing how we finished to design filter and how to detected the peak and how to completed the design of amplifier with variable gain according to it's design principles and comparison,using NE5532 and OP27 etc. and also introduces the STM32 as the core of the FFT transform software programming to achieve collection to the analysis of the spectrum and realized the frequency range from 20 hz to 10 khz and the amplitude range from 100 mv to 5 v of the input signal spectrum analysis and the use of liquid crystal display module spectrum results; In addition ,we also introduces various index test plans and measurements ", etc.Key words: Variable gain amplifier filter STM32 FFT目录:一.系统方案论证与比较 (3)1.1. 总体设计方案比较 (3)1.2. 前端信号处理 (3)1.3. 可变增益放大器 (3)1.4. 滤波器 (4)1.5. AD转换模块 (5)1.6. FFT计算方式 (5)二. 系统设计 (5)2.1. 总体设计 (5)2.2. 模块单元设计 (6)2.2.1滤波模块 (6)2.2.2电压跟随模块 (7)2.2.3峰值检测模块 (7)2.2.4放大电路模块 (8)三.软件设计 (9)四.系统调试 (10)五.系统参数指标测试 (10)六.设计总结 (11)七.参考文献 (12)八.附录 (12)一.系统方案论证与比较1.1. 总体设计方案比较与选择方案一:以模拟滤波器为基础的模拟式频谱分析仪。
用FFT对信号作频谱分析实验报告

用FFT对信号作频谱分析实验报告实验目的:利用FFT对信号进行频谱分析,掌握FFT算法的原理及实现方法,并获取信号的频谱特征。
实验仪器与设备:1.信号发生器2.示波器3.声卡4.计算机实验步骤:1.将信号发生器与示波器连接,调节信号发生器的输出频率为待测信号频率,并将示波器设置为XY模式。
2.将示波器的输出接口连接至声卡的输入接口。
3.打开计算机,运行频谱分析软件,并将声卡的输入接口设置为当前输入源。
4.通过软件选择频谱分析方法为FFT,并设置采样率为合适的数值。
5.通过软件开始进行频谱分析,记录并保存频谱图像和数据。
实验原理:FFT(快速傅里叶变换)是一种计算机算法,用于将时域信号转换为频域信号。
它通过将一个信号分解成多个不同频率的正弦波或余弦波的合成,并计算每个频率分量的幅度和相位信息。
实验结果与分析:通过对待测信号进行FFT频谱分析,我们可以得到信号在频域上的频谱特征。
频谱图像可以展示出信号中不同频率成分的能量分布情况,可以帮助我们了解信号的频率构成及其相对重要程度。
在实验中,我们可以调节信号发生器的输出频率,观察频谱图像的变化。
当信号频率与采样率相等时,我们可以得到一个峰值,表示信号的主频率。
同时,我们还可以观察到其他频率分量的存在,其幅度与信号频率的差距越小,幅度越低。
通过对不同信号进行频谱分析,我们可以了解信号的频率成分及其分布情况。
这对于信号处理、通信等领域具有重要意义。
实验结论:通过FFT频谱分析,我们可以获得信号在频域上的频谱特征,可以清晰地观察到信号的主频率以及其他频率分量的存在。
这为信号处理及相关应用提供了有价值的信息。
实验中,我们使用了信号发生器、示波器、声卡和计算机等设备,通过连接和软件进行了频谱分析实验。
通过实验,我们掌握了FFT算法的原理及实现方法,并且获取到了信号的频谱特征。
然而,需要注意的是,频谱分析仅能得到信号在其中一时刻或一段时间内的频率成分,不能得到信号的时域信息。
基于FFT算法的音频频谱分析

基于FFT 算法的音频频谱分析一、实验目的1、 了解FFT 算法的原理。
2、 学会使用DSP 实现快速FFT 变换。
傅立叶变换是一种将信号从时域到频域的变换形式,是声学、语音、电信和信号处理等领域中的一种重要分析工具。
离散傅立叶变换(DFT )是连续傅立叶变换在离散系统中的表现形式,由于DFT 的计算量很大,因此在很长时间内其应用受到很大的限制。
快速傅立叶变换(FFT )是离散傅立叶变换的一种高效运算方法。
FFT 使DFT 的运算大大简化,运算时间一般可以缩短一至两个数量级,FFT 的出现大大提高了DFT 的运算速度,从而使DFT 在实际应用中得到广泛的应用。
在数字信号处理系统中,FFT 作为一个非常重要的工具经常使用,它甚至成为DSP 运算能力的一个考核因素。
DSP 芯片的出现使FFT 的实现方法变得更为方便。
由于多数DSP 芯片都能在一个指令周期内完成一次乘法和一次加法运算,而且提供专门的FFT 指令,使得FFT 算法在DSP 芯片上实现的速度更快。
本实验的目的在于学习FFT 算法,及其在TMS320C54X 上的实现,并通过编程掌握C54X 的存储器管理、辅助寄存器的使用、位倒序寻址方式等技巧。
二、使用设备计算机、C54XX 、ICETEK-AIC23 背板、双头音频线、音箱三、实验原理快速傅里叶变换FFT 离散傅里叶变换的一种快速算法。
其基本算法可以分成两大类:即时间抽选和按频率抽选。
FFT 算法可以分为按时间抽取FFT 和按频率抽取FFT 两大类,输入也有和复数之分,一般情况下,都假定输入序列为复数。
FFT 算法利用旋转因子的对称性和周期性,加快了运算速度。
用定点DSP 芯片实现FFT 程序时,一个比较重要的问题是防止中间结果的溢出,防止中间结果的溢出的方法是对中间数值归一化。
为了避免对每级都进行归一化会降低运算速度,最好的方法是只对可能溢出的进行归一化,而不可能溢出的则不进行归一化。
fft实验分析实验报告

fft实验分析实验报告
实验报告主要包括实验目的、实验原理、实验步骤、实验结果分析和结论等内容。
以下是一个关于FFT实验分析的实验报告示例:
实验报告
实验目的:
1. 了解傅里叶变换(FFT)的基本原理和应用;
2. 学会使用FFT算法对信号进行频谱分析。
实验设备和材料:
1. 计算机;
2. 音频文件或实时采集的音频信号。
实验原理:
傅里叶变换是一种将时域信号转换为频域信号的数学变换方法,可以将信号表示为不同频率的复指数函数的叠加。
而FFT(快速傅里叶变换)是一种高效的傅里叶变换算法,可以快速计算信号的频谱。
实验步骤:
1. 准备音频文件或实时采集的音频信号;
2. 将音频信号输入计算机中的FFT算法进行处理,得到信号的频谱;
3. 对频谱进行可视化表示,如绘制频谱图;
4. 根据频谱图分析信号的频率分布和能量分布等特征。
实验结果分析:
通过实验,我们得到了音频信号的频谱图。
根据频谱图可以得到信号的频率分布情况,即哪些频率的分量相对强,哪些频率的分量相对弱。
频谱图还可以展示信号的能量分
布情况,能量较高的频率分量对应着声音的主要特征。
结论:
通过本次实验,我们学习了傅里叶变换(FFT)的基本原理和应用,并掌握了使用FFT 算法进行信号频谱分析的方法。
频谱分析是一种常用的信号处理方法,可以帮助我们
了解信号的频率特征和能量分布情况,对于音频、图像等领域的信号处理具有重要的
应用价值。
音频信号分析仪设计报告

音频信号分析仪设计报告学院:电子信息学院班级:12电子信息工程指导老师:***小组成员:122840112x 程博雅前言音频信号是带有语音、音乐和音效的有规律的声波的频率、幅度变化信息载体。
根据声波的特征,可把音频信息分类为规则音频和不规则声音。
其中规则音频又可以分为语音、音乐和音效。
规则音频是一种连续变化的模拟信号,可用一条连续的曲线来表示,称为声波。
声音的三个要素是音调、音强和音色。
声波或正弦波有三个重要参数:频率ω0、幅度A n 和相位ψn ,这也就决定了音频信号的特征。
音频分析仪器是指既能够测量话筒、音频功放、扬声器等各类单一音频设备的各种电声参数,也能测试组合音响、调音台等组合音频设备的整体性能的分析类仪器。
目前市场上已经出现了可用于测量音频设备的各类分析仪器,例如失真度分析器、音频分析仪、频率计数器、交流电压表、直流电压表、音频示波器等。
这些基于各种功能电路的机架式硬件仪器使用简便、测量精度较高,目前己经获得了广泛的应用。
一般说来,一台功能较为齐全的音频分析仪器应能测量信号交直流电压、信号频率、谐波失真、信噪比等参数。
功能强大的音频分析仪器提供频谱分析、倍频程分析、声压级测量等功能。
早期专业的音频分析仪种类很少,在做音频测量时一般是利用万用电表、频率计、示波器及频谱仪等组合成一套音频测试系统。
这种测试系统中间环节多,各环节之间接口匹配较为困难,使用起来比较麻烦,测量结果往往也不精确。
近年来出现的音频分析仪器也与仪器的主流发展趋势一致,朝着高度集成化、智能化的方向发展,这些仪器集成了复杂音频信号发生装置、功率放大装置等,具备了一些初步的图形化分析功能,使用户很容易组建音频测量系统。
目录前言 (2)目录 (3)摘要 (5)第1章设计方案论证 (5)1.1语音信号采集模块 (5)1.2主控芯片的选择 (2)1.3程控放大器模块 (5)1.4抗混叠滤波器模块 (6)1.5模数转换模块 (6)1.6功率测量模块 (6)第2章系统设计 (7)2.1总体方案设计 (7)2.2硬件电路设计 (7)2.2.1驻极体放大电路模块 (7)2.2.2电压跟随电路模块 (8)2.2.3程控增益放大模块 (8)2.2.4电压抬升电路模块 (9)2.2.5抗混叠滤波模块 (10)2.3软件设计 (11)2.3.1 程序流程图 (12)2.3.2 ADC采样程序设计 (12)2.3.3 快速傅里叶变换模块设计 (13)2.3.4 功率、失真度计算 (13)2.3.5 周期性判断 (14)2.3.6 频谱显示 (15)2.3.7 按键控制模块 (15)第3章系统测试 (16)3.1硬件电路测试 (16)3.1.1驻极体放大电路模块 (16)3.1.2电压跟随电路模块 (16)3.1.3程控增益放大模块 (17)3.1.4电压抬升电路模块 (17)3.1.5抗混叠滤波模块 (18)3.2系统功能测试 (19)3.2.1确知信号测试 (19)3.2.2麦克风输入信号测试 (20)第4章总结 (21)参考文献 (21)附录 (21)附录1 元器件明细表附录2 仪器设备清单附录3 测试实物图附录4 程序主函数摘要:本系统基于快速傅立叶变换(FFT)算法,以单片机STM32F103ZE为控制与数据处理核心,结合必要的外围电路,实现对频率范围在20Hz~10KHz音频信号频率成分的分析。
基于FFT的音频信号频率和失真度分析仪

音频信号频率和失真度分析仪摘要音频信号频率和失真度分析仪利用频谱分析原理来分析被测信号的频率、频谱及波形。
经常使用的频谱分析方式有:扫频法、数字滤波法、FFT法。
那个地址采纳一种基于FFT方式的音频信号频率和失真度分析仪设计方案,通过快速傅里叶变换(FFT)把被测的音频信号由时域信号转换为频域信号,将其分解成份立的频率分量,在此基础上对其进行各类分析。
本设计基于Altera Cyclone II 系列FPGA嵌入高性能的嵌入式IP核(Nios)处置器软核,代替传统DSP芯片或高性能单片机,实现了基于FFT的音频信号分析。
系统由操纵与运算核心、程控放大器、滤波和采样等模块组成。
并在频域对信号的总功率,各频率分量功率,信号周期性和失真度进行了计算。
并在FPGA中嵌入了数字低通滤波器,代替传统有源模拟滤波器实现了性能优良的音频滤波。
关键词:频谱分析;时域分析;频域分析;数字滤波;信号失真Audio Signal Frequency And Distortion AnalyzerAbstractAudio signal frequency and distortion analyzer to analyze the theory using the measured spectrum of the signal frequency, spectrum and waveform. Spectral analysis methods commonly used: sweep algorithm, digital filtering, FFT method. Here use a method based on FFT audio signal frequency and distortion analyzer program, through the fast Fourier transform (FFT) to the audio signal from the measured time domain signal into frequency domain signal, established its decomposition components frequency component, in this based on their various analysis.The design is based on Altera Cyclone II family of embedded high-performance FPGA embedded IP core (Nios) soft core processor instead of the traditional high-performance DSP chip or microcontroller to realize FFT-based audio signal analysis. System control and operation by the core, programmable amplifiers, filtering, and sampling and other modules. And the total frequency domain signal power, the power at each frequency, the signal periodicity and the distortion is calculated. FPGA embedded in a digital low pass filter, instead of the traditional active analog filters to achieve a high performance audio filter.Key words: spectrum analysis; time domain; frequency domain; digital filter;Signal distortion目录1 绪论.................................................................................................................. 错误!未定义书签。
fft谱分析实验报告

FFT谱分析实验报告1. 引言谱分析是一种常见的信号处理技术,用于将一个信号分解为不同频率的成分。
FFT(快速傅里叶变换)是一种高效的算法,用于计算离散傅里叶变换,广泛应用于谱分析中。
本实验旨在探究FFT在信号处理中的应用,并通过实验验证其有效性。
2. 实验目的本实验旨在: - 理解FFT算法的原理和实现方法; - 学习如何使用FFT对信号进行频谱分析; - 验证FFT算法的准确性和有效性。
3. 实验步骤3.1 准备实验材料和工具为了进行谱分析实验,我们需要准备以下材料和工具: - 信号源(例如音频文件、信号发生器等) - 电脑(用于运行信号处理软件) - 信号处理软件(例如MATLAB、Python等)3.2 选择信号源在本实验中,我们选择了一个音频文件作为信号源。
音频文件包含了不同频率的声音信号,适合用于谱分析。
3.3 导入信号源使用信号处理软件,将选择的音频文件导入到程序中。
3.4 实施FFT算法根据FFT算法的原理,我们可以使用信号处理软件实施FFT算法。
以下是实施FFT算法的步骤: 1. 对导入的音频信号进行采样。
2. 将采样后的信号进行傅里叶变换,得到信号的频域表示。
3. 可选地,对频域表示进行滤波或其他信号处理操作。
4. 将处理后的信号进行逆傅里叶变换,得到恢复后的信号。
3.5 分析结果通过实施FFT算法,我们得到了信号的频域表示。
可以通过绘制频谱图来直观地观察信号的频率成分。
频谱图通常以频率为横轴,幅度为纵轴。
通过观察频谱图,我们可以分析信号中存在的频率成分及其强度。
3.6 结果验证为了验证FFT算法的有效性,我们可以选择一些已知频率的信号作为测试样本。
通过对测试样本进行FFT分析,并与已知频率进行比较,可以评估FFT算法的准确性。
4. 结果与讨论通过实验,我们成功使用FFT算法对音频信号进行了谱分析。
通过观察频谱图,我们可以清楚地看到信号中存在的频率成分。
在结果验证部分,我们与已知频率进行了比较,结果表明FFT算法具有较高的准确性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
音频信号分析仪设计实践报告摘要系统基于快速傅立叶变换(FFT)算法,以FPGA和NIOS软核为数据处理与控制核心,实现对频率范围在100Hz~10KHz,电压范围(峰-峰值)在1mV~2.5V的音频信号频率成分的分析。
系统由音频信号采集、FFT处理、FIFO数据缓存、NIOS软核控制和LABVIEW 上位机显示等模块组成,硬件采用Cyclone III系列FPGA芯片EP3C25F324C8为核心,采用高性能的立体音频Codec芯片TLV320实现音频处理,对输出具有可编程增益调节,然后在Quartus环境下采用FFT IP核完成离散信号的FFT处理,采用DC_FIFO对FFT变换后的数据进行缓存处理,实现与高时钟NIOS核的通讯,在IDE环境下通过C语言编程实现FIFO 和软核CPU的控制,最终在LABVIEW显示音频信号主要频率成分的信息,实现对音频信号的分析和显示。
关键词:音频分析 FFT FPGA NIOS软核 FIFO目录音频信号分析仪设计实践报告 (1)摘要 (1)一、设计任务及要求 (3)1)任务 (3)2)要求 (3)二、系统设计方案 (3)2.1 设计方案的选择 (3)2.2 总体设计思路 (4)三、模块电路与程序设计 (5)3.1 TLV320控制电路 (5)3.2 FFT控制电路 (5)3.3 FIFO控制电路 (7)3.4 NIOS软核 (8)3.5 LABVIEW显示 (8)3.6 程序说明 (8)四. 测试方案与测试结果 (9)4.1 测试方案 (9)4.2 测试结果 (9)五.遇到问题及解决办法 (10)六. 组员分工.................................................................................................. 错误!未定义书签。
七. 总结与感想.............................................................................................. 错误!未定义书签。
八.参考文献 (12)附录 ................................................................................................................ 错误!未定义书签。
一、设计任务及要求1)任务设计、制作一个可分析音频信号频率成分,并可测量正弦信号失真度的仪器。
2)要求1.基本要求(1)输入阻抗:50Ω(2)输入信号电压范围(峰-峰值):100mV~5V(3)输入信号包含的频率成分范围:200Hz~10kHz(4)频率分辨力:100Hz(可正确测量被测信号中,频差不小于100Hz的频率分量的功率值。
)(5)检测输入信号的总功率和各频率分量的频率和功率,检测出的各频率分量的功率之和不小于总功率值的95%;各频率分量功率测量的相对误差的绝对值小于10%,总功率测量的相对误差的绝对值小于5%。
(6)分析时间:5秒。
应以5秒周期刷新分析数据,信号各频率分量应按功率大小依次存储并可回放显示,同时实时显示信号总功率和至少前两个频率分量的频率值和功率值,并设暂停键保持显示的数据。
2.发挥部分(1)扩大输入信号动态范围,提高灵敏度。
(2)输入信号包含的频率成分范围:20Hz~10kHz。
(3)增加频率分辨力20Hz档。
(4)判断输入信号的周期性,并测量其周期。
(5)测量被测正弦信号的失真度。
(6)其他。
二、系统设计方案2.1 设计方案的选择系统设计采用的硬件构架是以EP3C25F324C8为核心的FPGA开发板,板子包含TLV320音频信号处理电路模块,通过音频线外接PC机,PC机产生测试音频信号或采用数字信号发生器代替音频信号,完成整体硬件搭建。
而对FPGA的硬件配置编程和对NIOS软核的控制编程则主要通过在PC机上编写程序来实现。
系统整体分为五部分,分别为:音频信号采集、FFT处理、数据传输、NIOS软核控制以及LABVIEW面板显示,音频信号采集部分采用IIC总线方式控制TLV320对音频信号进行采集和AD转换。
根据我们查找的资料,FFT的实现方式比较多,可以通过在C语言编程实现,也可以通过VHDL语言硬件编程实现,同样可以通过MA TLAB编写算法来实现,我们最终采用的方案是在Quartus环境下使用ALTERA元件库里的FFT IP核来实现,与整体硬件设计相辅相成。
由于FFT工作时钟与NIOS CPU工作时钟不一致,数据传输需要使用FIFO做缓存,DC FIFO为双时钟工作模式,可以实现读和取的单独控制,可以十分方便地实现不同时钟模块的数据通讯。
在Quartus环境下设置好的硬件需要通过NIOS软核编程实现控制,SOPC Builder可以通过Avalon总线挂接需要使用的模块,生成软核CPU,然后在IDE环境下编写C程序实现CPU对各硬件电路或信号的处理以及控制。
通过串口把需要显示的信息以字符串形式发送至上位机端,LABVIEW读取串口数据,并经行相应处理和计算,最终显示出来。
2.2 总体设计思路系统设计原理框图如图2-1所示,输入音频信号首先进行信号调理,然后是16位的TLV320对音频信号的采样和AD转换(内部DAC模块可选择性使用),接着是FFT模块对离散信号进行1024点FFT变换,FFT处理之后的数据通过FIFO缓存,然后CPU读入数据,并对数据进行频谱分析,计算出主要频率成分的频率与幅值,并把信息发送至串口,最后LABVIEW进行功率运算,显示主要频率成分的信息。
图 2-1三、模块电路与程序设计3.1 TLV320控制电路TLV320AIC23是TI推出的一款高性能的立体声音频Codec芯片,内置耳机输出放大器,支持MIC和LINE IN两种输入方式(二选一),且对输入和输出都具有可编程增益调节。
AIC23的模数转换(ADCs)和数模转换(DACs)部件高度集成在芯片内部,采用了先进的Sigma-delta过采样技术,可以在8K到96K的频率范围内提供16bit、20bit、24bit和32bit 的采样,ADC和DAC的输出信噪比分别可以达到90dB和100dB。
与此同时,AIC23还具有很低的能耗,回放模式下功率仅为23mW,省电模式下更是小于15uW。
本系统设计时采用96KHZ采样时钟,直接使用ADC之后的数字数据进行后面的处理,而没有直接使用DAC模块。
NIOS软核驱动和访问TLV320是通过IIC总线方式实现的,IIC 工作时序如图3-1所示。
(VHDL硬件连接见附录)图 3-1编写VHDL程序,生成相应控制模块,通过地址数据的操作,改变TLV320采样时钟。
音频端口输入单一频率的正弦波,经过TLV320 AD处理之后,逻辑分析仪显示效果如图3-2所示,输入频率范围为100HZ----10KHZ。
图 3-23.2 FFT控制电路FFT是DFT的一种高效算法,称为快速傅立叶变换(fast Fourier transform),作用是用于将一个有限长数字信号从时间域转换到频率域,FFT算法可分为按时间抽取算法和按频率抽取算法。
利用DFT中的周期性和对称性,使整个DFT的计算变成一系列迭代运算,可大幅度提高运算过程和运算量。
系统采用96KHZ驱动时钟,对离散ADC值进行1024点FFT变换,以8点FFT频域抽取的基2算法为例,算法过程如图3-3所示:图 3-3编写并加入控制模块ctl_fft来控制FFT转换,电路如图3—4所示:图 3-4由于进行FFT变换之后,离散数据变为了频域的复数形式,要想得到输入音频信号直观的幅频曲线,还必须对FFT变换之后输出的实部和虚部的数据进行求模处理,这就需要添加相应的求模运算模块,我们通过MA TLAB仿真生成了求模运算模块,导出之后,在工程中添加应用,很好地实现了求模运算,MA TLAB仿真原理如图3—5所示。
图 3-53.3 FIFO控制电路FIFO的作用就是不同时钟域间的数据缓存,只是一种BUF作用。
比如不同速率模块间的数据传输,用FIFO做缓存,这时候FIFO的容限,也就是深度需要根据两者速率计算得到。
FIFO有两种工作模式:(1)SCFIFO指读写用一个时钟进行同步,可以支持同时读写的功能。
(2)DCFIFO指读写使用不同的时钟进行同步,这在设计多时钟系统中相当有用,可用于不同时钟同步信号之间的同步调整。
本系统数据的存入并不是一直不断的,而是间隔存储的,我们通过NIOS软核编程控制FIFO的读和写操作。
设计使用的是DCFIFO,数据深度与FFT点数一致为1024,数据的存储和读取采用不同的工作时钟,写入时采用96KHZ时钟,而读取数据时是通过CPU的IO 管脚模拟产生的时钟,读取得到的数据,并存入数组。
对FIFO操作的关键是时钟的处理,我们将wrfull和valid(fft数据有效标志位)在SOPC builder分配IO时设置为上升沿触发的中断模式,当valid触发中断时,写操作有效同时屏蔽中断,FIFO写入数据,中断最后使能wrfull 的中断,当wrfull触发中断时,读取FIFO数据,读完1024组数据之后,再使能valid中断。
这样,数据的存和取就实现了CPU控制的反复操作,同时不会出现读数据的时候被写入数据中断打乱,每次数据操作均按照先写后读,读完才允许写入的模式进行。
FIFO工作时序(写操作为例)如图3—6所示:图3-6FIFO在Quartus环境里配置连接如图3-7所示:图3-73.4 NIOS软核Altera的SOPC Builder自动系统开发工具为设计人员提供了强大的开发平台,可构成包括处理器、外设和存储器接口等常用系统组成的总线系统。
在FPGA器件上使用SOPC Builder创建软硬件开发的基础平台, 也就是用SOPC Builder创建软核CPU和参数化的接口总线Avalon。
在此基础上, 可以很快地将硬件系统与常规软件集成在单一可编程芯片中。
Nios II 嵌入式处理器是Altera公司推出的采用哈佛结构、具有32位指令集的第二代片上可编程的软核处理器, 其最大特点是模块化的硬件结构, 具有很强的灵活性和可裁减性。
NIOS软核的使用既包括在Quartus环境下SOPC builder的外设配置,还包括对该软核的编程控制部分。
系统设计时,在SOPC builder中,配置使用的UART串口、SDRAM、Flash、IIC总线以及部分PIO来实现系统控制的硬件搭建,特别是分配管脚控制FIFO的部分是NIOS核软编程的主要部分,CPU工作时钟为PLL提供的50MHZ,软件部分主要包括中断处理FIFO和读取FIFO数据并发送至串口,具体连接和程序代码详见见附录。