我是靠谱客的博主 友好爆米花,最近开发中收集的这篇文章主要介绍数字信号处理——窗函数法设计线性相位高通滤波器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

设计步骤:

(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)|'); 

 

最后

以上就是友好爆米花为你收集整理的数字信号处理——窗函数法设计线性相位高通滤波器的全部内容,希望文章能够帮你解决数字信号处理——窗函数法设计线性相位高通滤波器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部