关于第二类线性相位滤波器问题分析

调谐/滤波

26人已加入

描述

  线性相位滤波器是移动相位与频率成比例的滤波器,因此不改变波形而引入一常数延迟。线性相位滤波器是一个混合相位的滤波器,它按照与频率成正比地对频率分量作时移。因而在通常频带内相位移与频率的关系图是线性的,截距一定是2π倍,结果每个分量相等地延迟。也叫做延迟滤波器。这样的滤波器不产生相位畸变。如果截距是π的奇数倍,它会把子波反相。

  第二类线性相位滤波器问题

  7.25* MATLAB分别设计第一类和第二类线性相位FIRDF

  用窗函数法设计一个线性相位低通FIRDF,要求通带截止频率为0.3π, 阻带截止频率为0.5π,阻带最小衰减为40dB。选择合适的窗函数及其长度, 求出并显示所设计的单位脉冲响应h(n)的数据,并画出损耗函数曲线和相频 特性曲线,请检验设计结果。试不用fir1函数,直接按照窗函数设计法编程设计。做完后把题目修改为设计高通滤波器,为第二类线性相位,画出h(n) 1.第一类线性相位

  滤波器

  滤波器

  MATLAB Code:

  clear all; close all; clc;

  %--------------------- 第一类线性相位低通 ---------------------------

  wp=0.3*pi;ws=0.5*pi; DB=ws-wp;

  N=ceil(6.2*pi/DB); % 阻带最小衰减为40dB,所以选择汉宁窗

  % 第二类线性相位低通h(n)长度N可为奇数或偶数 tau=(N-1)/2; wc=(wp+ws)/2; n=0:N-1;

  hd=sin(wc*(n-tau))。/(pi*(n-tau));

  if tau==ceil(tau) % 判断τ如果是整数

  hd(tau+1)=wc/pi; % n=τ时分母为0,要替换这一项值 end

  w=0.5*(1-cos(2*pi*n/(N-1))); h=hd.*w;

  %------画图------ M=1024; Hk=fft(h,M); subplot(2,2,[1 2]); stem(n,h,‘。’);grid on; axis([0,30,-0.6,0.6]); xlabel(‘n’);ylabel(‘h(n)’); subplot(2,2,3); k=1:M/2;

  w=2*pi*(0:M/2-1)/M;

  plot(w/pi,20*log10(abs(Hk(k))));grid on;

  xlabel(‘\omega/\pi’);ylabel(‘20lg|H_g(\omega)|’); subplot(2,2,4);

  plot(w/pi,unwrap(angle(Hk(k))));grid on; xlabel(‘\omega/\pi’);ylabel(‘Ïàλ’)

  滤波器

  从图上看到截止频率为0.5π衰减为39.07dB,距离40dB指标还差点,可以增加h(n)长度N来提高衰减。

  第二类线性相位

  滤波器

  滤波器

  滤波器

  MATLAB Code:

  %--------------------第二类线性相位高通 ----------------------- wp=0.5*pi;ws=0.3*pi; DB=wp-ws;

  N0=ceil(6.2*pi/DB); % 阻带最小衰减为40dB,所以选择汉宁窗 N=N0+mod(N0,2); % 第二类线性相位高通N为偶数 tau=(N-1)/2; wc=(wp+ws)/2; n=0:N-1;

  hd=-(cos(pi*(n-tau))-cos(wc*(n-tau)))。/(pi*(n-tau));% θ=-π/2+ωτ % hd=(cos(pi*(n-tau))-cos(wc*(n-tau)))。/(pi*(n-tau));% θ=π/2+ωτ w=0.5*(1-cos(2*pi*n/(N-1))); h=hd.*w;

  %------画图------ M=1024; Hk=fft(h,M); figure;

  subplot(2,2,[1 2]); stem(n,h,‘。’);grid on; axis([0 30 -0.6 0.6]); xlabel(‘n’);ylabel(‘h(n)’); subplot(2,2,3); k=1:M/2;

  w=2*pi*(0:M/2-1)/M;

  plot(w/pi,20*log10(abs(Hk(k))));grid on;

  xlabel(‘\omega/\pi’);ylabel(‘20lg|H_g(\omega)|’); subplot(2,2,4);

  plot(w/pi,unwrap(angle(Hk(k))));grid on; xlabel(‘\omega/\pi’);ylabel(‘Ïàλ’)

  采用hd=-(cos(pi*(n-tau))-cos(wc*(n-tau)))。/(pi*(n-tau));% θ=-π/2+ωτ :得到下图

  滤波器

  采用hd=(cos(pi*(n-tau))-cos(wc*(n-tau)))。/(pi*(n-tau));% θ=π/2+ωτ :得到下图

  滤波器

  可以看出相移不同,h(n)图像不同!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分