文件

复杂带通滤波器设计

此示例显示了如何设计复杂的带通滤波器。复杂的带通滤波器用于许多应用中,如果将数字向上转换器转换为模拟和数字电视广播的痕迹边带调制方案。设计复杂带通滤波器的一种简单方法是以低通式原型开头并应用复换频变换。在此示例中,我们审查了从单级单速率FIR滤波器到多级多速率FIR滤波器到IIR过滤器的几个案例。

单级单速率冷杉设计

在单倍速率的FIR设计的情况下,我们只是通过(AKA'SUITODENE与')复杂指数乘以每组系数。在下一个示例中,我们通过归一化频率旋转低通奈奎斯特滤波器原型的零.6。

HLP = Design(fdesign.nyquist(8));%lowpass原型n =长度(hlp.numerator)-1;Fc = .6;%期望频移j =复数(0,1);HBP = COPY(HLP);hbp.numerator = hbp.numerator。* exp(j * fc * pi *(0:n));hfvt = fvtool(HLP,HBP,'颜色''白色的');传奇(HFVT,'低通原型''复杂的带通''地点''西北'

相同的技术也适用于单阶段的多速率滤波器。

多型多级FIL设计

在多型多级FIR滤波器的情况下,我们需要考虑每个过滤器操作的不同的相对频率。在多级的情况下抽取器,所需的频移仅适用于第一的阶段。随后的阶段还必须通过各自的累积抽取因子缩放所需的频移。

f = fdesign.decimator(16,'奈奎斯特'16,'tw,ist',.01,75);高清=设计(f,'多级');n1 =长度(hd.stage(1).numerator)-1;n2 =长度(hd.stage(2).numerator)-1;n3 =长度(HD.stage(3).numerator)-1;m12 = hd.stage(1).decimationFactor;阶段1和2之间的百分比抽取因子m23 = hd.stage(2).decimationFactor;阶段2和3之间的百分比抽取因子FC = -.2;%期望频移FC1 = FC;应用于第一阶段的%频移FC2 = FC * M12;施加到第二阶段的%频移FC3 = FC * M12 * M23;施加到第三阶段的%频移HDBP = COPY(HD);hdbp.stage(1).numerator = hdbp.stage(1).numerator。* exp(j * fc1 * pi *(0:n1));hdbp.stage(2).numerator = hdbp.stage(2).numerator。* exp(j * fc2 * pi *(0:n2));hdbp.stage(3).numerator = hdbp.stage(3).numerator。* exp(J * FC3 * PI *(0:N3));hfvt.filters = [HD,HDBP];传奇(HFVT,'低通原型''复杂的带通''地点''西北'

同样,在多级的情况下插值者,所需的频移仅适用于最后的阶段。以前的阶段还必须通过各自的累积插值因子来扩展所需的频移。

f = fdesign.interpolator(16,'奈奎斯特'16,'tw,ist',.01,75);嗨=设计(f,'多级');n1 =长度(hi.stage(1).numerator)-1;n2 =长度(hi.stage(2).numerator)-1;n3 =长度(hi.stage(3).numerator)-1;l12 = hi.stage(2).InterpolationFactor;%插值因子阶段1和2之间的%l23 = hi.stage(3).InterpolationFactor;%插值因子阶段2和3之间的%Fc = .4;%期望频移fc3 = fc;施加到第三阶段的%频移fc2 = fc * l23;施加到第二阶段的%频移FC1 = FC * L12 * L23;应用于第一阶段的%频移hibp = copy(hi);hibp.stage(1).numerator = hibp.stage(1).numerator。* exp(j * fc1 * pi *(0:n1));hibp.stage(2).numerator = hibp.stage(2).numerator。* exp(j * fc2 * pi *(0:n2));hibp.stage(3).numerator = hibp.stage(3).numerator。* exp(J * Fc3 * Pi *(0:n3));hfvt.filters = [hi,hibp];传奇(HFVT,'低通原型''复杂的带通''地点''西北'

单速率IIR设计

最后在单速率IIR设计的情况下,我们可以使用复杂的换档频率变换或低通转换到复杂的带通IIR转换。在后一种情况下,也可以修改带通滤波器的带宽。

FP = .2;HIIRLP = DESIGN(FDESIGN.LOWPASS(FP,.25,4.5,80),'椭圆');Fc = .6;%期望频移hiircbp = ciirxform(hiirlp,......%移位频率变换'zpkshiftc',0,fc);%DC转移到FChiircbp2 = IIRLP2BPC(HIIRLP,......%低通对复杂的带通频。FP,[FC-FP,FC + FP]);%Lowpass通带频率映射%到带通通带频率hfvt.filters = [HiLlp,Hiircbp,Hiircbp2];传奇(HFVT,'低通原型''复杂的带通#1'......'复杂的带通#2''地点''西北'

这个主题有用吗?