- IIR数字滤波器设计(2学时)
- 要求:
- 产生一复合信号序列,该序列包含幅度相同的28Hz、50Hz、100Hz、150Hz的单音(单频)信号;其中,50Hz及其谐波为工频干扰(注:采样率要满足要求)。
- 试设计一椭圆低通滤波器,将干扰信号滤除。
- 目的:
- 利用学习到的数字信号处理知识解决实际问题,学会将实际问题的数据转化为相应模型指标;
- 熟悉IIR数字滤波器的设计方法。
- 要求:
实验报告:
一、实验内容
i.产生一复合信号序列,该序列包含幅度相同的28Hz、50Hz、100Hz、150Hz的单音(单频)信号;其中,50Hz及其谐波为工频干扰(注:采样率要满足要求)。
ii.试设计一椭圆低通滤波器,将干扰信号滤除。
二、实验目的
i.利用学习到的数字信号处理知识解决实际问题,学会将实际问题的数据转化为相应模型指标;
ii.熟悉IIR数字滤波器的设计方法。
三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况)
Windows系统 Matlab 2022b
四、实验记录
1.原理基础
本实验旨在通过数字信号处理的方法,设计一个椭圆低通滤波器来滤除复合信号中的特定频率干扰(此处为50Hz及其谐波)。复合信号由四个不同频率的单音信号组成:28Hz、50Hz、100Hz和150Hz,其中50Hz及其谐波(如100Hz、150Hz等)被视为工频干扰。
椭圆低通滤波器是一种数字滤波器,其设计目标是在通带和阻带内都具有最小的波纹(即平坦的幅度响应),并且具有陡峭的过渡带。这使得椭圆滤波器在给定滤波器阶数的情况下,能够提供最窄的过渡带。
采样率的选择需要满足采样定理,即采样率应大于信号中最高频率的两倍,以确保信号在采样过程中不会发生混叠。
2 实验流程
- 信号生成:使用编程工具(如MATLAB)生成包含28Hz、50Hz、100Hz和150Hz的复合信号,所有单音信号的幅度相同。
- 设计椭圆低通滤波器:使用MATLAB的滤波器设计工具(如ellipord和ellip函数)设计一个椭圆低通滤波器,滤除50Hz及其谐波。滤波器的设计参数(如通带截止频率、阻带截止频率、通带最大衰减和阻带最小衰减)需要根据实际需求进行设定。
- 滤波器应用:将设计的椭圆低通滤波器应用于复合信号,得到滤波后的信号。
- 结果分析:对比原始信号和滤波后信号的时域和频域特性,评估滤波器的性能。
3源程序代码
%IIR 低通滤波器:1.设置参数 +生成复合信号+绘制时域和频域 2.设计低通滤波器 3.应用滤波器并绘制时域频域
%编辑人:贾雯爽
%目的:掌握模拟低通滤波器设计流程及影响参数
%最后更新时间:2024/06/05
clear;
clc;
close all
%1.1 参数设置
Fs = 1000; % 采样率
t = 0:1/Fs:1-1/Fs; % 时间向量
f1 = 28; % 频率1
f2 = 50; % 频率2(及其谐波将被滤除)
f3 = 100; % 频率3(50Hz的谐波)
f4 = 150; % 频率4(50Hz的谐波)
A = 1; % 所有信号的幅度
% 1.2生成复合信号
x = A * (sin(2*pi*f1*t) + sin(2*pi*f2*t) + sin(2*pi*f3*t) + sin(2*pi*f4*t));
% 1.3绘制原始复合信号
figure;
subplot(2,1,1);
plot(t, x);
title('原始复合信号');
xlabel('时间 (s)');
ylabel('幅度');
subplot(2,1,2);
y = fft(x);
plot(t, y);
title('原始复合信号');
xlabel('频率 (Hz)');
ylabel('幅度');
%1.4绘制复合信号频域
% 2设计椭圆低通滤波器
% 2,1选择截止频率和滤波器阶数
fc = 45; % 截止频率,小于50Hz
N = 8; % 滤波器阶数
Rp = 0.5; % 通带波纹(单位dB)
Rs = 30; % 阻带衰减(单位dB)
% 2.2设计椭圆滤波器
[b, a] = ellip(N, Rp, Rs, fc/(Fs/2));
% 2.3绘制滤波器频率响应
[H, w] = freqz(b, a, 1024, Fs);
figure;
plot(w/pi*Fs, abs(H));
title('椭圆低通滤波器频率响应');
xlabel('频率 (Hz)');
ylabel('|H(f)|');
grid on;
% 3应用滤波器到复合信号
y = filter(b, a, x);
% 3.1绘制滤波后的信号
figure;
subplot(2,1,1);
plot(t, x);
title('原始复合信号');
xlabel('时间 (s)');
ylabel('幅度');
subplot(2,1,2);
plot(t, y);
title('滤波后的信号');
xlabel('时间 (s)');
ylabel('幅度');
4 实验结果
5 实验结果分析
通过对滤波后信号的频谱图进行分析,可以评估椭圆低通滤波器的性能。如果滤波后信号的频谱中50Hz及其谐波的幅度显著减小,且28Hz信号的幅度变化不大,则说明滤波器设计成功,达到了预期的效果。
五、实验总结
通过本次实验,我成功地将所学的数字信号处理知识应用于实际问题中,即设计一个椭圆低通滤波器来滤除复合信号中的特定频率干扰。在实验过程中,我首先根据实验要求生成了一个包含28Hz、50Hz、100Hz和150Hz单音信号的复合信号。接着,我利用MATLAB的滤
在设计滤波器时,我根据滤波器的性能指标(如通带截止频率、阻带截止频率、通带最大衰减和阻带最小衰减)进行了参数设置。通过ellipord函数确定了滤波器的阶数和归一化的截止频率,然后使用ellip函数计算了滤波器的系数。
将设计好的椭圆低通滤波器应用于复合信号后,我得到了滤波后的信号。通过对比原始信号和滤波后信号的时域和频域特性,我观察到50Hz及其谐波在滤波后信号的频谱中被显著抑制,而28Hz信号则得以保留。这证明了椭圆低通滤波器在滤除特定频率干扰方面的有效性。
在实验过程中,我也遇到了一些挑战。例如,在选择滤波器参数时需要权衡通带和阻带的性能,以及滤波器的阶数对过渡带陡峭程度的影响。通过不断尝试和调整参数,我最终找到了一个满足实验要求的滤波器设计方案。
通过本次实验,我不仅加深了对数字信号处理知识的理解,还学会了将实际问题的数据转化为相应模型指标的方法。同时,我也熟悉了IIR数字滤波器的设计流程和方法,为今后的学习和研究打下了坚实的基础。
原创文章内容,学术不精恐有错漏之处,恳请各位批评指正。如有Matlab代码源文件或其他沟通需要,可通过邮箱(2642610289@qq.com)联系我,特情注意,学业繁忙难以及时回复,敬请理解。