您的位置:首页 > 房产 > 建筑 > 设计制作活动记录表_微信小程序怎么做自己的店铺_电脑清理软件十大排名_外贸网站建设报价

设计制作活动记录表_微信小程序怎么做自己的店铺_电脑清理软件十大排名_外贸网站建设报价

2024/12/23 14:53:16 来源:https://blog.csdn.net/weixin_45333185/article/details/143221435  浏览:    关键词:设计制作活动记录表_微信小程序怎么做自己的店铺_电脑清理软件十大排名_外贸网站建设报价
设计制作活动记录表_微信小程序怎么做自己的店铺_电脑清理软件十大排名_外贸网站建设报价

文章目录

  • 前言
  • 一、频域均衡器的设计
  • 二、MATLAB源代码
    • 1.firls函数与freqz函数
    • 2.MATLAB仿真源代码
    • 3.代码说明
  • 三、仿真结果画图


前言

利用MATLAB的firls函数,根据所要求的频率向量和频响幅度向量,设计出所需的均衡器,使得包括滤波器在内的系统总的频率特性符合要求。给出完整的MATLAB设计源代码。


一、频域均衡器的设计

均衡器主要是用于作补偿的。所谓的均衡器,就是起补偿作用的滤波器。所谓的均衡器设计,其实就是设计符合要求频响的滤波器(系数)。

频域均衡就是对系统的进行频率特性的补偿。所以,均衡器的设计,就是根据系统的频率特性,设计一个补偿滤波器,使得包括滤波器在内的系统总的频率特性符合要求。具体而言,就是设计一个滤波器,使得其在其各段频率的频响为特定的值。当然,均衡器(也即滤波器)的阶数、形式(type I 或type II)也是设计的内容,不过,最主要的还是频响的设计。

例如,根据对某个音频系统的功率谱的测量,发现在2000Hz~4000Hz频谱范围内其功率谱幅度呈上开口抛物线形状,曲线底部最大衰减6dB,若要求在这个频谱范围内功率谱平坦,则可以设计一个在2000Hz~4000Hz之间的功率谱分量做最大6dB的增益提升,整个补偿频段的频响为下开口的抛物线形,左右对称。则经过均衡,整个系统的功率谱将符合平坦性要求。下面给出这个例子的MATLAB源代码。

二、MATLAB源代码

1.firls函数与freqz函数

在系统的设计与分析中,firls与freqz是两个非常重要的函数。其中,firls函数可以由频响计算得到fir滤波器的系数,而freqz函数用于由滤波器系数计算其频响。
使用freqz函数计算滤波器的频响见:
(47)MATLAB使用freqz画滤波器的频响

2.MATLAB仿真源代码

代码如下:


%% 参数设置
fs = 8e3;                                 % 采样率
f_nyquist = fs/2;                         % Nyquist频率
nTaps = 40;                               % 均衡器的阶数% 设置频率向量,范围:0到fs/2
f1 = 100:100:2000;                        % 频带划分
f2 = 2100:100:fs/2;                       % 频带划分
f = [f1, f2];                             % 频率向量,单位Hz% 设置功率谱增益,dB值
g1 = zeros(1,length(f1));
g2 = [0.8,2.2,2.82,3.89,4.34,5.07,5.35,5.74,5.86,5.91, ...5.86,5.58,5.35,4.73,4.34,3.38,2.82,1.53,0.8,0];
g = [g1, g2];                             % 功率谱增益向量应该和频率向量大小相等
%% 设计均衡器
Amp = 10.^(g/20);                         % 功率谱增益dB值转换为频响幅度线性值
b_eq = firls(nTaps,f/f_nyquist,Amp);      % firls要求频率向量对Nyquist频率归一化
%% 均衡器频响分析
N = 256;                                  % 滤波器频响向量的长度
[Hn,Fn] = freqz(b_eq,1,N);                % Hn:复频响向量;Fn:数字频率向量w
%% 对比画图
figure()
plot(f, g, 'LineWidth',1.5);
hold on
grid on
plot(Fn*fs/2/pi, 20*log10(abs(Hn)), 'r', 'LineWidth',1.5);
legend('期望的', '设计出来的','Location','NorthWest')
% axis([0 4000 -1 6]);
axis([1500 4000 -1 6]);
title('均衡器功率谱频响')
xlabel('频率(Hz)')
ylabel('功率谱幅度(dB)')

3.代码说明

(1)设置频带边沿向量(vector of frequency band edges)时,频带范围0到fs/2。若EQ要求的是在频段2kHz到4kHz之间做补偿,而采样率为16ksps,则频带向量也需要完整列出0Hz到8kHz之间的整个频带范围。

(2)若给出的频响增益是线性值,而非对数值,则不必进行转换,直接应用于firls。因为函数firls要求的入参是线性值,即在哪个频段放大或减小多少倍,而非加减多少dB。

三、仿真结果画图

在这里插入图片描述


版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com