当前位置: 首页 > 面试题库 >

如何实现均衡器

翟柏
2023-03-14
问题内容

我知道关于均衡器有很多问题,但是我没有得到我一直在寻找的东西。我想要做的是一个均衡器,用于以如下方式修改音频样本:

equalizer.eqAudio(audiosamples, band, gain)

我不确定这是否是我想要的确切接口,因为我对DSP的实现知之甚少(我使用了滤波器,限幅器,压缩器,但没有制造出来)。

因此,在Google搜索上我读到我必须对采样进行FFT,以便获取每个频率范围的数据而不是幅度,按照我想要的方式进行处理,然后对FFT求逆,以便再次在音频采样中获取结果。我寻找了此FFT的实现,并找到了Java的JTransform。该库具有与FFT相关的算法的实现,该算法称为离散余弦变换(DCT)。

我的问题是:

  • 好吧,我是对的吗?
  • 由于FFT为我提供了有关频率的数据,因此我应该将一部分样本传递给FFT算法。这个块必须有多大?
  • 有没有关于DSP编程的好书,它解释了均衡器?

谢谢!


问题答案:

获得均衡器的方法有很多种,正如Shannon解释的那样,IIR /
FIR滤波器就是其中之一。但是,如果您的目标是快速启动并运行均衡器,则由于存在大量参考实现,因此采用FFT的方法可能对您而言更容易。

关于FFT大小的问题,这取决于您希望均衡器具有的频率分辨率。如果选择大小16,则将在频域中获得9(8个复数+ 1个实数)通道,这些通道的等距范围为0到fs
/ 2。第一个以0Hz为中心,第九个以fs / 2 Hz为中心。请注意,某些实现返回16个通道,其中上半部分是下半部分的镜像和复共轭版本。

关于均衡器功能的实现,请将每个通道乘以所需的增益。如果频谱具有镜像部分,则也要镜像增益。如果不这样做,则后续IFFT的结果将不是实值信号。乘法后,应用IFFT。

关于基于FFT的均衡器与基于滤波器的均衡器之间的区别,请记住,FFT只是计算一组以脉冲为正弦,严格采样(通过滤波器长度向下采样)和中心频率均匀分布的FIR滤波器的快速方法。

问候



 类似资料:
  • 目前,我有一个EC2实例(2个CPU、8GB RAM、Linux),上面有: NodeJS Express服务器(后端) NodeJS“微服务”Express服务器(与API等通信) PostgreSQL数据库 Redis(作为我的服务器(1)和我的微服务服务器(2)之间的消息代理 与服务器(1)通信的ReactJS应用程序(前端) 现在,这在低流量下工作得很好,但是随着流量的增加(每分钟/小时1

  • 本文向大家介绍nginx+iis实现简单的负载均衡,包括了nginx+iis实现简单的负载均衡的使用技巧和注意事项,需要的朋友参考一下 最近在研究分布式系统架构方面的知识,包括负载均衡,数据库读写分离,分布式缓存redis等。本篇先从负载均衡服务架构入手,关于负载均衡百度百科的定义如下:负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服

  • 本文向大家介绍Spring Cloud 负载均衡器 Ribbon原理及实现,包括了Spring Cloud 负载均衡器 Ribbon原理及实现的使用技巧和注意事项,需要的朋友参考一下 Ribbon简介 分布式系统中,各个微服务会部署多个实例,如何将服务消费者均匀分摊到多个服务提供者实例上,就要使用到负载均衡器 Ribbon 是负载均衡器 ,它提供了很多负载均衡算法,例如轮询、随即等,在配置服务提供

  • 本文向大家介绍Nginx如何配置负载均衡,包括了Nginx如何配置负载均衡的使用技巧和注意事项,需要的朋友参考一下 Nginx配置负载均衡 使用nginx来配置负载均衡也是比较简单的 首先在http块中配置虚拟域名所对应的地址 然后在server块中配置监听 这样在使用9000端口访问服务器的时候就会进行8080和8082的负载调用 Nginx 负载均衡策略 轮询(默认) 按照时间顺序逐一的分配到

  • 本文向大家介绍使用Nginx实现负载均衡的策略,包括了使用Nginx实现负载均衡的策略的使用技巧和注意事项,需要的朋友参考一下 一、nginx简介 nginx是一个高性能的HTTP服务器和反向代理服务器。它起初是俄罗斯人Igor Sysoev开发的,至今支撑者俄罗斯的很多大型的网站。 二、nginx支持的三种负载均衡策略 轮询:将请求依次轮询发给每个服务器。 最少链接:将请求发送给持有最少活动链接

  • 本文向大家介绍python负载均衡的简单实现方法,包括了python负载均衡的简单实现方法的使用技巧和注意事项,需要的朋友参考一下 提到分发请求,相信大多数人首先会想到Nginx,Nginx作为一种多功能服务器,不仅提供了反向代理隐藏主机ip的能力,还拥有简单的缓存加速功能。当然Nginx最强大的功能还是分发请求,不仅提供了哈希,一致性哈希,负载均衡等多种请求分发模式,还保证了自己服务的轻量和稳定