FIR数字滤波器设计与软件实现
更新时间:2023-12-16 15:40:01 阅读量: 教育文库 文档下载
实验五:FIR数字滤波器设计与软件实现
一、实验目的
(1) 掌握用窗函数法设计FIR数字滤波器的原理和方法。
(2) 掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 (3) 掌握FIR滤波器的快速卷积实现原理。
(4) 学会调用MATLAB函数设计与实现FIR滤波器。 二、实验内容及步骤
(1) 认真复习第7章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理;
(2) 调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示。
(3) 请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1 dB,将噪声频谱衰减60 dB。观察xt的频谱,确定滤波器指标参数。
(4) 根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB函数fir1设计一个FIR低通滤波器。并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。 (5) 重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数 remezord和remez设计FIR数字滤波器。比较两种设计方法设计的滤波器阶数。 提示:
① MATLAB函数fir1和fftfilt的功能及其调用格式请查阅本书7.2.3节和3.4.1节; ② 采样频率Fs=1000 Hz,采样周期T=1/Fs;
③ 根据图10.5.1(b)和实验要求,可选择滤波器指标参数: 通带截止频率fp=120 Hz, 阻带截止频率fs=150 Hz,换算成数字频率,通带截止频率ωp=2πfpT=0.24π,通带最大衰为0.1 dB,阻带截至频率ωs=2πfsT=0.3π,阻带最小衰为60 dB。 三、实验程序框图
实验程序框图如图2所示。
四、相关程序
1、信号产生函数xtg清单
function xt=xtg(N) %信号x(t)产生函数,并显示信号的幅频特性曲线 %xt=xtg产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1khz %载波频率fc=Fs/10=100Hz,调制正弦波频率f0=Fc/10=10Hz N=2000;Fs=1000;T=1/Fs;Tp=N*T; t=0:T:(N-1)*T;
fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=fc/10 mt=cos(2*pi*f0*t); %产生单频正弦波调制信号mt,频率为f0 ct=cos(2*pi*fc*t); %产生载波正弦波信号ct,频率为fc xt=mt.*ct; %相乘产生单频调制信号xt nt=2*rand(1,N)-1; %产生随机噪声nt
%=========设计高通滤波器hn,用于滤除噪声nt中的低频成分,生成高频噪声===== fp=150;fs=200;rp=0.1;rs=70; %滤波器指标
fb=[fp,fs];m=[0,1]; %计算remenzord函数所需参数f,m,dev dev=[10^(-rs/20),(10^(rp/20)-1)/ (10^(rp/20)+1)];
[n,fo,mo,w]=remezord(fb,m,dev,Fs); %确定remenz函数所需参数
hn=remez(n,fo,mo,w); %调用remenz函数进行设计,用于滤除噪声nt中的低频成分 yt=filter(hn,1,10*nt); %滤除随机噪声中低频成分,生成高频噪声yt
%=================================================================== xt=xt+yt; %噪声加信号,注意信号叠加时长度一定要相等 fst=fft(xt,N);k=0:N-1;f=k/Tp; subplot(2,1,1);plot(t,xt);grid; xlabel('t/s');ylabel('x(t)');
axis([0,0.5,min(xt),max(xt)]); title(' (a)信号加噪声波形')
subplot(2,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title(' (b)信号加噪声的频谱') axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度')
实验结果如图所示:
(a)信号加噪声波形105x(t)0-5-1000.050.10.150.250.30.35t/s (b)信号加噪声的频谱0.20.40.450.51幅度0.50050100150200250f/Hz300350400450500
2、实验程序清单 %实验五程序exp5.m
%FIR数字滤波器设计与软件实现 clear all;close all;
%=====调用xtg产生信号xt,xt长度N=1000,并显示xt及其频谱=========== N=1000;xt=xtg(N);
fp=120;fs=150;rp=0.2;rs=60; %输入给定指标
Fs=1000; T=1/Fs;Tp=N*T; k=0:N-1;f1=k/Tp; %(1)用窗函数法设计滤波器
wc=(fp+fs)/Fs; %理想低通滤波器截止频率(关于pi归一化) B=2*pi*(fs-fp)/Fs; %过渡带宽度指标 Nb=ceil(11*pi/B); %blackman窗的长度N hn=fir1(Nb-1,wc,blackman(Nb));
ywt=fftfilt(hn,xt,N); f=[f1,zeros(1,length(ywt)-1)]; %调用函数fftfilt对xt滤波 t=0:T:[length(ywt)-1]*T;
subplot(2,1,1);plot(t,ywt); grid;title(' (c)用窗函数法滤除噪声后的信号波形') axis([0,0.5,-1,1]);xlabel('t/s');ylabel('yw(t) ')
%=======(2)用等波纹逼近法设计滤波器======================== fb=[fp,fs];m=[1,0]; %确定remenzord函数所需参数f,m,dev
dev=[(10^(rp/20)-1)/(10^(rp/20)+1),10^(-rs/20)];
[Ne,fo,mo,W]=remezord(fb,m,dev,Fs); %确定remenz函数所需参数 hn=remez(Ne,fo,mo,W); %调用remenz函数进行设计 yet=fftfilt(hn,xt,N); %调用函数fftfilt对xt滤波 f=[f1,zeros(1,length(yet)-1)];
subplot(2,1,2);plot(t,yet); grid;title(' (d)用等波纹逼近法滤除噪声后的信号波形') axis([0,0.5,-1,1]);xlabel('t/s');ylabel('ye(t) ')
实验结果如下图所示:
(c)用窗函数法滤除噪声后的信号波形10.5yw(t) 0-0.5-100.050.250.30.350.4t/s (d)用等波纹逼近法滤除噪声后的信号波形0.10.150.20.450.510.5ye(t) 0-0.5-100.050.10.150.20.25t/s0.30.350.40.450.5
五、思考题:
1、分析两种设计方法的系统阶数有何区别?
2、为什么对相同的技术指标,用等波纹最佳逼近法设计的滤波器阶数低? 六、实验报告要求
(1) 对两种设计FIR滤波器的方法(窗函数法和等波纹最佳逼近法)进行分析比较,简述其优缺点。
(2) 附程序清单, 打印实验内容要求绘图显示的曲线图。 (3) 分析总结实验结果。 (4) 简要回答思考题。
正在阅读:
FIR数字滤波器设计与软件实现12-16
2018年东北三省三校(哈师大附中、东北师大附中、辽宁省实验中学)高考数学三模试卷(文科)09-16
2010年普通高等学校招生全国统一考试数学理试题(重庆卷,解析版03-08
试论当前社区就业指导工作存在的问题及对策03-05
学校重点部位安全管理制度03-13
党员个人小结02-21
描写雪景的优美散文02-08
现代汉语期末考试复习重点05-28
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 滤波器
- 实现
- 数字
- 设计
- 软件
- FIR