linkwiz-riley crossover

学习下音频中常用的分频器。

1.文献资料

找到的几个网页,慢慢看。

  1. linkwitzlab
    首次提出:Active Crossover Networks for Noncoincident Drivers in JAES Volume 24 Issue 1 pp. 2-8; February 1976
  2. active crossover
  3. wiki,感觉看维基百科的概述的效率最高
  4. http://ampslab.com
    • 4阶LRF,f0=1.5k为低通和高通的频响交叉点,-6dB。 + 750Hz和3k处分别为-24dB。
    • LR在分频点处的功率衔接平直,而巴特沃斯滤波器在分频点的电压衔接平直。不考虑喇叭本身特性的理想情况下,LR更合理。但是LR更复杂。
    • Linkwitz-Riley滤波器是由Siegfried Linkwitz以及Russ Riley两人在1976年设计完成的,主要用于主动式滤波器电路中,例如许多精密的多音路电子分音系统中,当然,音箱的无源分频网络也可以采用。 特点是具有高达四阶的衰减斜率,换句话说,每隔一个八度音阶的频率,声音就会衰减24dB的能量,即衰减斜率为-24dB/Oct(Oct即Octave,一个八度音程的意思)。同时,在整个音频段(20Hz-20kHz),** Linkwitz-Riley滤波器具有平坦的相位响应,讯号经过滤波器之后,不会产生严重的相位扭曲**。

1.2用自己的话总结下:

  1. 2n阶的LR滤波器(截止频率处-6dB)由2个n阶的巴特沃斯滤波器(截止频率处-3dB)级联而成。
  2. 并联1个低通与1个高通的LR滤波器,即组成了LR-corssover分频器。
  3. LR-crossover在分频点处增益0dB,幅频曲线整体平坦,相频曲线也相对平滑,优于巴特沃斯分频器(分频点峰值+3dB).
  4. n阶BT滤波器衰减斜率为-6n dB/oct(根据BT的幅度平方响应函数取对数可得,20log10( 1+Ω^2N) ^0.5) ≈20Nlog10(Ω),即20nx0.3=6n dB),因此4阶的LR滤波器(2阶bt级联)的衰减斜率为12+12=24dB/oct。
    LR发分频器与BT分频器的幅度对比

2.根据定义进行matlab实现和验证

fs=48k,f0=200Hz,生成4阶LR,即两个2阶巴特沃斯滤波器级联。

clc;close all;clear all;
fs =48e3;f0 =200;
ff =[0:1:fs/2];
% wn =2*pi*f0/fs/pi;
wn =f0/(fs/2); % 归一化数字截止频率
N =2;
% -------------生成2阶低通巴特沃斯滤波器
[bLP,aLP]=butter(N,wn); % 产生巴特沃斯数字滤波器参数
% [H F]=freqz(b,a,ff,fs);% plot(F,20*log10(abs(H)));
figure;freqz(bLP,aLP,ff,fs);
% -------------生成 2阶高通巴特沃斯滤波器
[bHP,aHP]=butter(N,wn,'high');
% ff =[0:1:fs/2];[H_hp F]=freqz(bH,aH,ff,fs);
figure;freqz(bHP,aHP,ff,fs);% figure(100);plot(F,20*log10(abs(H_hp)));
%------------- 两个低通 Hz的级联,生成LR滤波器。
% 方法1 麻烦
% G11 =tf(b,a,1/fs,'Variable','z^-1'); % 分子分母转为多项式
% G22 = series( G11 , G11 ) ;
%%%% 方法2  更加直接。 直接将两个Hz的分子分母代入即可。
[blr_LP,alr_LP]  = series(bLP,aLP,bLP,aLP) ;
% [Hlr F]=freqz(blr_LP,alr_LP,ff,fs);plot(F,20*log10(abs(Hlr)));
figure;freqz(blr_LP,alr_LP,ff,fs);
% ---------    高通滤波器的级联。
[blr_HP ,alr_HP]  = series( bHP,aHP,bHP,aHP) ;
% [HlrHP F]=freqz(blr_HP,alr_HP,ff,fs);figure;plot(F,20*log10(abs(HlrHP)));
figure;freqz(blr_HP,alr_HP,ff,fs);
% --------     LR-LP与LR-HP的并联,验证分频器总幅度响应 
[blr ,alr]  = parallel( blr_LP,alr_LP,blr_HP,alr_HP) ;
figure;freqz(blr,alr,ff,fs);

结果如下;:
在这里插入图片描述

2.c代码

网上现有的:
github 1 DSP-Cpp-filters
github 2 DSPFilters
好像只看到了2阶LR滤波器,没有我需要的4阶LR。

2.1 自己写一遍 4阶LR滤波器

已知,采样频率fs,截止频率f0,N =2。用两个2阶的巴特沃斯滤波器串联得到LR滤波器。
思路:

  • 1、直接将wc代入巴特沃斯原型滤波器公式,得到Hs,再用双线性变换得到Hz。推导出Hz的平方的表达式中分子分母各项系数即可。
  • 2、低通H(s’)经s’=Ωc/s变换即可得到高通H(s),之后的处理与1相同。
    在这里插入图片描述
    (双线性不变法中,为了简便T=2)

3 C代码中float的误差导致高阶滤波器出现不稳定的情况

现象:将4阶LR滤波器用于分频,最初所有数据类型都是double,LR滤波后的低频和高频信号波形都正常。
后续由于程序要在DSP上允许,将所有数据类型均改为了float,发现得到的滤波器系数从第7位开始出现误差。wav信号经高通滤波后的数的幅度超过了1,如下图。可见滤波器不再稳定。
在这里插入图片描述
原因为滤波器表达式中的多个系数都是4阶自乘,double变为float后,4次幂的误差不可忽视。引起零极点不稳定。
解决办法:看了几篇文章,如<_IIR数字滤波器的系数量化效应分析>,提到了将IIR直接型结构改为级联型结构可以减小此类误差,想起奥本海姆书上也提到过几类结构的优缺点,确实如此。故可将4阶LR滤波器在程序中分成2个2阶巴特沃斯滤波器串联来实现。
针对float数据类型的测试过程:先测试了单独只用2阶低通和高通的巴特沃斯滤波器来分频(float和double),两种数据类型下高通滤波结果接近,float未出现结果异常大的情况,如下图。证明针对float类型,用2阶巴特沃斯滤波器足够稳定。
在这里插入图片描述
再试验了float下用两个2阶巴特滤波器来滤波的结果,也正常。fc=120Hz,可以将66Hz的大幅度信号滤除较干净,如下图。而只用一个2阶巴特滤波器时,此66Hz信号残留的幅度与途中132Hz的幅度相同。
在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Sure, here are fifty randomly generated patient data entries: (1,Emily Johnson,Female,Cold Medicine,123-45-6789) (2,Robert Lee,Male,None,987-65-4321) (3,Katie Chen,Female,Allergy Medication,456-78-9123) (4,John Smith,Male,Insulin,789-12-3456) (5,Mary Taylor,Female,Aspirin,234-56-7890) (6,James Kim,Male,None,345-67-8901) (7,Samantha Lee,Female,Vitamin D,678-90-1234) (8,Andrew Brown,Male,Cholesterol Medication,012-34-5678) (9,Ava Adams,Female,Antidepressants,901-23-4567) (10,William Davis,Male,Prozac,345-67-8901) (11,Sophia Patel,Female,None,234-56-7890) (12,Nathan Lee,Male,Flu Shot,123-45-6789) (13,Olivia Lee,Female,Ibuprofen,987-65-4321) (14,Matthew Wilson,Male,None,456-78-9123) (15,Isabella Chen,Female,Allergy Medicine,789-12-3456) (16,Ethan Garcia,Male,None,234-56-7890) (17,Abigail Kim,Female,Vitamin C,789-12-3456) (18,Daniel Chu,Male,None,901-23-4567) (19,Chloe Brown,Female,Flu Medicine,345-67-8901) (20,Aiden Chen,Male,Acne Medication,678-90-1234) (21,Emma Kim,Female,None,345-67-8901) (22,Liam Patel,Male,Heart Medication,456-78-9123) (23,Mia Lee,Female,Headache Medication,012-34-5678) (24,Noah Johnson,Male,None,901-23-4567) (25,Sofia Nguyen,Female,Allergy Medicine,345-67-8901) (26,Michael Chen,Male,Flu Shot,901-23-4567) (27,Charlotte Kim,Female,None,234-56-7890) (28,Elijah Patel,Male,Vitamin D,123-45-6789) (29,Amelia Lee,Female,Aspirin,012-34-5678) (30,Austin Garcia,Male,None,789-12-3456) (31,Aria Kim,Female,Anti-inflammatory,345-67-8901) (32,Connor Chen,Male,None,901-23-4567) (33,Evelyn Park,Female,Flu Medicine,456-78-9123) (34,Luke Kim,Male,High Blood Pressure Medication,234-56-7890) (35,Harper Lee,Female,Vitamin C,123-45-6789) (36,Benjamin Kim,Male,None,901-23-4567) (37,Avery Chen,Female,Allergy Medicine,012-34-5678) (38,Jack Smith,Male,None,234-56-7890) (39,Madison Nguyen,Female,Flu Shot,123-45-6789) (40,Owen Patel,Male,Ibuprofen,456-78-9123) (41,Scarlett Lee,Female,Allergy Medication,901-23-4567) (42,Lucas Kim,Male,Vitamin D,012-34-5678) (43,Riley Chen,Female,None,789-12-3456) (44,Dylan Brown,Male,Insulin,234-56-7890) (45,Hazel Garcia,Female,Cholesterol Medication,123-45-6789) (46,Carter Kim,Male,None,456-78-9123) (47,Penelope Lee,Female,Depression Medication,012-34-5678) (48,Gabriel Park,Male,Flu Medicine,678-90-1234) (49,Grace Kim,Female,Vitamin C,234-56-7890) (50,Mason Chen,Male,None,789-12-3456)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值