概述
设计步骤:
(1) 根据对过渡带及阻带衰减的指标要求,选择窗函数的类型,并估计窗口长度N。先按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数。然后根据过渡带宽度估计窗口长度N。待求滤波器的过渡带宽度Bt近似等于窗函数主瓣宽度,且近似与窗口长度N成反比。
(2) 构造希望逼近的频率响应函数Hd(ejω),即 对所谓的“标准窗函数法”,就是选择Hd(ejω)为线性相位理想滤波器(理想低通、理想高通、理想带通、理想带阻)。
(3) 计算hd(n)
如果给出待求滤波器的频响函数为Hd(ejω),那么单位脉冲响应用下式求出:
(如果频响函数比较复杂,或不能用封闭公式表示,该式不能用于求解hd(n))
(4)加窗得到设计结果h(n)=hd(n)w(n)
(2)(3)(4)通过MATLAB的一个命令来实现,即hn=fir1()
例题
% ------要求通带边界频率ωp=pi/2 rad,------%
% ------阻带截止频率ωs=pi/4 rad,通带最大衰减Rp=1dB,阻带最小衰减Rs=40 dB-----%
clc; clear all; close all;
% (1) 滤波器的技术指标
wp=pi/2;
ws=pi/4;
Rp=1;
Rs=40;
Bt=wp-ws; % 计算过渡带宽度
N0=ceil(6.2*pi/Bt);
N=N0+mod(N0+1,2); % 确保h(n)长度N是奇数
wc=(wp+ws)/2/pi; % 计算理想高通滤波器通带截止频率(关于pi归一化)
M=N-1; % 滤波器的阶数
hn=fir1(M,wc,'high',hanning(N)); % 调用fir1计算高通FIR数字滤波器的h(n)
% 绘制单位脉冲响应h(n)的波形
n=0:N-1;
subplot(2,2,1);
stem(n,hn,'.','r');
axis([0,30,-0.5,1]);
xlabel('n');ylabel('h(n)');
% 绘制幅频特性曲线
subplot(2,2,2);
[H,w]=freqz(hn,1); % 如果要画出h(n)的频响特性曲线,freqz(hn)或者freqz(hn,1)都可以,默认频谱是0~pi上的512点
w=w/pi;
plot(w,abs(H));
axis([0,1,-0.1,1.1]);
xlabel('w/pi');ylabel('|Hg(w)|');
% 绘制损耗函数的曲线
subplot(2,2,3);
[H,w]=freqz(hn,1);
w=w/pi;
plot(w,20*log10(abs(H)));
axis([0,1,-80,5]);
xlabel('w/pi');ylabel('20lg|Hg(w)|');
最后
以上就是友好爆米花为你收集整理的数字信号处理——窗函数法设计线性相位高通滤波器的全部内容,希望文章能够帮你解决数字信号处理——窗函数法设计线性相位高通滤波器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复