资源简介
程序中以凯瑟窗作为窗口分别设计实现了各类滤波器(低通、带通、高通、带阻、双带通等),其中使用kaiserord函数设计fir滤波器的估算参数、kaiser函数生成凯瑟窗、fir1函数生成滤波器,并绘制出了各种滤波器的频率响应特性。备注对以上函数及涉及的参数进行了说明。
代码片段和文件信息
clearclcclose all
% 加窗的优势:加窗可以有效的减少频谱泄露
% 基于窗函数的FIR滤波器设计;
% (1) 根据对阻带衰减以及过渡带的指标要求,选择窗函数类型(有:矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N。
% 先按照阻带衰减选择窗函数类型。在保证阻带衰减满足要求的情况下,尽量选择主瓣集中的窗函数。
% (2) 构造希望逼近的频率响应函数
% (3) 计算h(n),有限长序列
% (4) 加窗得到设计结果
N=1024; % 采样点数
fsamp = 8000; % 采样频率
%% Kaiser窗口低通滤波器设计
fcuts = [1000 1500]; % 低通,4个参数(结合mags来看):表示(01000)区间内通,(10001500)过度,(1500fs/2)内阻;
mags = [1 0]; % 1/0表示通/阻
devs = [0.05 0.01]; % 表示各区段内纹波的波动;
[nwnbetaftype] = kaiserord(fcutsmagsdevsfsamp); % Kaiser窗口FIR滤波器设计估算参数
window=kaiser(n+1beta); % 时域序列在时域图像上加窗而在频域上就是卷积了;
hh = fir1(nwnftypewindow‘noscale‘); % fir1用来生成滤波器hh表示n阶滤波器多项式的系数noscale表示不归一化滤波器的幅度响应;
[Hf] = freqz(hh11024fsamp);
figureplot(fabs(H))title(sprintf(‘n=%d阶Kaiser窗口低通滤波器的频率响应‘n))xlabel(‘频率/Hz‘)ylabel(‘幅度‘);
grid on;
%% Kaiser窗口带通滤波器设计
fcuts = [1000 1300 2210 2410]; % 带通,7个参数(结合mags来看):表示(01000)区间内阻,(10001300)过度,(13002210)通(22102410)过度(2410fs/2)内阻;
mags = [0 1 0];
devs = [0.01 0.05 0.01];
[nwnbetaftype] = kaiserord(fcutsmagsdevsfsamp);
window=kaiser(n+1beta);
hh = fir1(nwnftypewindow‘noscale‘);
[Hf] = freqz(hh11024fsamp);
figureplot(fabs(H))ti
- 上一篇:电动汽车充电站选址定容matlab程序
- 下一篇:基本的遗传算法MATLAB实现
相关资源
- matlab开发的FIR滤波器附音频-FIR音频滤
- MATLAB图片滑动窗口的程序
- 使用Matlab和CCS设计FIR滤波器
- 分数延迟FIR滤波器Matlab程序
- fir滤波器matlab仿真代码
- 用频率采样法设计FIR滤波器
- matlab的FIR滤波器设计
- dwa动态窗口算法代码
- 基于MATLAB的窗函数法设计FIR数字滤波
- 滑动窗口的一维曲线平滑及降噪
- 基于kaiser窗的双谱线插值FFT谐波分析
- 移动窗口最小二乘多项式平滑(sg s
- NLMeans NLmeans(ima
- xilinx基于分布式算法的FIR滤波器
- 基于MATLAB和QuartusⅡ的FIR滤波器设计与
- 经典基于DSP的FIR滤波器的设计和实现
- Matlab写的DDS和FIR滤波器
- 用matlab实现窗口大小可变中值滤波
评论
共有 条评论