我做了一些研究,但我找不到我正在寻找的东西。目前,我必须通过com端口发送通道值。
例如:
文件freqs.ini
low=0-xx khz; mid=xx-yy khz; high=yy-zz khz;
然后我将按百分比获得值
期望值
lowPercent = 10;
midPercent = 77;
highPercent = 53;
所以,我将能够通过rs232发送这些值,我的房间将变成俱乐部:)
(我使用此代码照亮LED灯条)。我找到了一些频谱分析仪项目,但它们都有9个通道,即从低 - 低到高 - 高的3 * 3组合。
我知道如何与com端口通信,但我怎么能获得我之前设置的3个频率范围的整数值?
答案 0 :(得分:0)
我不知道你是否仍然需要那个......但
你想知道如何获得声音的实时光谱分析吗?
1.实现队列以获取音频样本的缓冲区
2.使用缓冲区的产品和由程序计算为浮点数组的正确window function(tipming,Hamming或Hann)
3.do yelded数组的FFT:每种语言都有可能的算法....找到最合适的一个,使用它并从每个输出系数中取出square模块(Real_part ^ 2 + Imaginary_part ^ 2 ,如果FFT返回系数的代数表示)
你频段的总和系数:知道哪个系数与你刚知道第k个系数在(SampFrequency / BufferLength)* k Hz的频率有关.....所以很容易找到乐队边界
如果你需要在[0,1]间隔内进行标准化,你必须做什么,除了将3个yelded band值中的每一个划分为3之间的最大值
按Shift< = BufferLength并再次启动的Shift值弹出缓冲区队列
来自FFT alg的系数数等于BufferLength(这是离散傅里叶变换定义)因此,当您选择长缓冲区时,频率分辨率会更好,但程序会变慢。在BufferLength音频帧之后,光强度不会变化,在Shift音频帧之后的buf ......以及高比率beetwen BufferLength会让你慢慢变化....所以你必须选择符合你需求的参数,记住你有打开&一些光......让你的阿尔格快速和低保真!
最后要做的是从你的调音台的eq旋钮发现freqeuncy乐队......我不记得这些信息是否在混音器手册上