数字信号处理翻转课堂笔记19—等波纹最佳逼近法设计FIR滤波器及matlab实现&IIR与FIR对比&FilterDesigner应用

数字信号处理翻转课堂笔记19

The Flipped Classroom19 of DSP

对应教材:《数字信号处理(第五版)》西安电子科技大学出版社,丁玉美、高西全著

一、要点

1、等波纹最佳逼近法的基本思想;
2、利用Matlab设计等波纹最佳逼近FIR数字滤波器的函数及其调用格式和调用参数;
3、利用Matlab设计等波纹最佳逼近FIR数字滤波器的实例分析;
4、IIR滤波器和FIR滤波器的比较;
5、MATLAB中的滤波器分析设计工具fdatool(filterDesigner)的应用。

二、问题与解答

1、什么是等波纹最佳逼近FIR数字滤波器?这种滤波器幅频特性的特点与第6章介绍的哪种模拟IIR滤波器比较接近?与窗函数法、频率采样法相比,这种方法设计的滤波器具有什么优势?
2、设计等波纹逼近滤波器时,通带、阻带纹波幅度与滤波器通带最大衰减、阻带最小衰减等技术指标之间如何换算?在其他滤波器指标一定的条件下,设定的“无关区域”的宽度将如何影响等波纹最佳逼近法所设计FIR滤波器的阶次?
3、误差加权函数在等波纹最佳逼近法中的作用是什么?举例说明在相同FIR数字滤波器设计指标和阶次条件下,改变误差加权函数将会如何影响滤波器的幅频特性?
4、 基于MATLAB相关设计函数,利用等波纹逼近法设计一个FIR线性相位带通或者带阻滤波器,技术指标自定,给出设计程序和设计结果(含频率响应曲线)。结合设计程序,说明等波纹逼近法设计FIR滤波器的步骤以及remez函数和remezord函数的用法(这两个函数比较陈旧,较新版本MATLAB已经改为firpm和firpmord函数)。
5、选择一首音乐(歌曲),任选FIR滤波器设计方法(可以采用filterDesigner)和Matlab函数,设计一个线性相位均衡器(可以是任意的滤波特性,不必采用一般的低通、高通等滤波特性),对音乐进行滤波处理,比较滤波前后音乐播放效果的差异。均衡器的频率点数量、均衡器的类型(各频率点的幅度特性)自定,但应该保证音乐通过均衡器前后,听觉效果有明显改变。若是多声道音乐信号,应该同时对各声道信号进行滤波。对音乐的滤波采用重叠相加法实现,音乐信号分段长度取为2倍滤波器长度。音乐信号数据通过读取音乐文件获取,滤波结果保存为另一个音乐文件。MATLAB对音乐文件的读取和保存如何实现,请自行查阅相关资料。
6、总结并综述FIR滤波器和IIR滤波器各自的特点。
7、fdatool(filterDesigner)的应用。利用fdatool滤波器分析设计工具,自行设计所要研究分析的问题,并设计研究分析方案,完成问题研究,总结研究结果,并与预期结果进行比较分析。每个小组完成1~2个问题的研究分析(请各组独立完成,不要拷贝其他组的成果)。研究的内容可以为但不限于:特殊滤波器(如全通滤波器)的设计和性能分析;针对某种应用的需要设计滤波器,并用所设计的滤波器对信号进行滤波,验证其滤波效果;滤波器的不同实现结构及其量化误差的分析;对同一个信号,分别设计技术指标相近的IIR和FIR滤波器进行滤波,比较滤波的结果。
8(选做)、对数字信号的滤波处理,除了可以设计一个IIR或者FIR滤波器、基于时域卷积的方法来滤波之外,也可以采用频率域滤波的方法:先求被处理信号的傅里叶变换(FFT),然后根据需要直接在频域去除其中不需要的频率分量(将这些分量设为0,注意保持频域的共轭对称性),再求傅里叶反变换(IFFT),就得到了滤波后的信号。①请查阅相关资料,结合本课程已学知识,分析频率域滤波方法的优点和缺点。②针对第18次翻转课堂第(7)题所提供的心电图信号,用频率域滤波方法(FFT点数取为给定信号的长度)对其进行滤波,并与FIR滤波器的滤波结果进行比较(含时域和频域波形的比较),对比其特点。③如果在频率域滤波之前,对心电图信号补零一定的长度(比如补零到256点),再求FFT并滤波,对其结果会产生什么影响?请用Matlab编写程序进行验证分析。

1、等波纹最佳逼近FIR数字滤波器

什么是等波纹最佳逼近FIR数字滤波器?这种滤波器幅频特性的特点与第6章介绍的哪种模拟IIR滤波器比较接近?与窗函数法、频率采样法相比,这种方法设计的滤波器具有什么优势?


数字信号处理翻转课堂笔记19—等波纹最佳逼近法设计FIR滤波器及matlab实现&IIR与FIR对比&FilterDesigner应用_第1张图片
切比雪夫滤波器。
优势:最大逼近误差最小,即通带最大衰减最小,阻带最小衰减最大;指标相同时,这种设计使滤波器阶数最低。

2、技术指标

设计等波纹逼近滤波器时,通带、阻带纹波幅度与滤波器通带最大衰减、阻带最小衰减等技术指标之间如何换算?在其他滤波器指标一定的条件下,设定的“无关区域”的宽度将如何影响等波纹最佳逼近法所设计FIR滤波器的阶次?


数字信号处理翻转课堂笔记19—等波纹最佳逼近法设计FIR滤波器及matlab实现&IIR与FIR对比&FilterDesigner应用_第2张图片
(δ为振荡波纹幅度)
FIR滤波器阶次N由“无关区域”宽度决定。“无关区域”宽度越小,所需的阶次越高。

3、误差加权函数

误差加权函数在等波纹最佳逼近法中的作用是什么?举例说明在相同FIR数字滤波器设计指标和阶次条件下,改变误差加权函数将会如何影响滤波器的幅频特性?


误差加权函数用来控制不同频段(一般指通带和阻带)的逼近精度。
误差加权函数取值越大的频段,逼近精度越高。如图所示,(a)(b)©为N相同时,误差加权函数取值对于滤波器幅频特性的影响。
数字信号处理翻转课堂笔记19—等波纹最佳逼近法设计FIR滤波器及matlab实现&IIR与FIR对比&FilterDesigner应用_第3张图片

4、波纹逼近法设计一个FIR线性相位滤波器

基于MATLAB相关设计函数,利用等波纹逼近法设计一个FIR线性相位带通或者带阻滤波器,技术指标自定,给出设计程序和设计结果(含频率响应曲线)。结合设计程序,说明等波纹逼近法设计FIR滤波器的步骤以及remez函数和remezord函数的用法(这两个函数比较陈旧,较新版本MATLAB已经改为firpm和firpmord函数)。


准备设计一个带阻滤波器,逼近通带为[0,0.2π]、[0.8π,π],通带最大衰减为1dB,逼近阻带为[0.35π,0.65π],阻带最小衰减为60dB。

clear;
close all;
fc=1/2;             %技术指标
fs=11/20;
Rp=2;
As=20;
Fs=2;
f=[fc,fs];
m=[1,0];

dev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)];
%dev表示f和m描述的各逼近频段允许的波纹幅度
[N,fo,mo,wo]=remezord(f,m,dev,Fs);
N=N+1;
hn=remez(N,fo,mo,wo);
hw=fft(hn,512);     %快速傅里叶变换
w=0:511;            
w=2*w/512;

figure(1)           %画图
plot(w,abs(hw));
axis([0,max(w)/2,0,1.2]);
xlabel('ω/π');
ylabel('|Hg(ω)|')

数字信号处理翻转课堂笔记19—等波纹最佳逼近法设计FIR滤波器及matlab实现&IIR与FIR对比&FilterDesigner应用_第4张图片

5、设计线性相位均衡器对音乐滤波

选择一首音乐(歌曲),任选FIR滤波器设计方法(可以采用filterDesigner)和Matlab函数,设计一个线性相位均衡器(可以是任意的滤波特性,不必采用一般的低通、高通等滤波特性),对音乐进行滤波处理,比较滤波前后音乐播放效果的差异。均衡器的频率点数量、均衡器的类型(各频率点的幅度特性)自定,但应该保证音乐通过均衡器前后,听觉效果有明显改变。若是多声道音乐信号,应该同时对各声道信号进行滤波。对音乐的滤波采用重叠相加法实现,音乐信号分段长度取为2倍滤波器长度。音乐信号数据通过读取音乐文件获取,滤波结果保存为另一个音乐文件。MATLAB对音乐文件的读取和保存如何实现,请自行查阅相关资料。


Fs=44100;       %CD标准
[y,Fs]=audioread('陈受谦 - 千年一叹.mp3');
n1=length(y);
% sound(y,Fs);
f1=0.5*Fs*(0:n1-1)/n1;
Y=fft(y,2*n1);

figure(1)
plot(y);
title('波形图');
xlabel('时间');
figure(2)
plot(f1,abs(Y(1:n1)));
title('滤波前频谱');
ylabel('幅度');
xlabel('模拟频率');
%%      设计滤波器(用FIR)
freq=linspace(0,1,800);     
A=ones(1,10);                   %当前采样频率下,wc为551.25Hz的低通滤波器
B=zeros(1,790);                 %44100*10/800=551.25Hz
mag=[A,B];
weight=ones(1,400);
[Y2,w2]=freqz(Num,1);

figure(3)
N=512;
n=0:N-1;
f=0.5*Fs*n/N;
plot(f,abs(Y2));
title('滤波器幅频响应');
xlabel('模拟频率');

%%      滤波
y_lvbohou=filter(Num,1,y);
Y_lvbohou=fft(y_lvbohou,2*n1);

figure(4)
plot(f1,abs(Y_lvbohou(1:n1)));
title('滤波后频谱');
xlabel('模拟频率');
sound(y_lvbohou,Fs);

数字信号处理翻转课堂笔记19—等波纹最佳逼近法设计FIR滤波器及matlab实现&IIR与FIR对比&FilterDesigner应用_第5张图片
将551.25Hz以上的频率均滤除,播放滤波前后的音频,有以下差异:
1、 滤波前的响度高,滤波后的响度低。
2、 滤波前的声音“尖”,;滤波后的“钝”、“沉闷”

6、FIR滤波器和IIR滤波器各自特点

总结并综述FIR滤波器和IIR滤波器各自的特点。


两种滤波器都是数字滤波器。根据冲激响应的不同,将数字滤波器分为有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器。
数字信号处理翻转课堂笔记19—等波纹最佳逼近法设计FIR滤波器及matlab实现&IIR与FIR对比&FilterDesigner应用_第6张图片
数字信号处理翻转课堂笔记19—等波纹最佳逼近法设计FIR滤波器及matlab实现&IIR与FIR对比&FilterDesigner应用_第7张图片

7、fdatool(filterDesigner)的应用

fdatool(filterDesigner)的应用。利用fdatool滤波器分析设计工具,自行设计所要研究分析的问题,并设计研究分析方案,完成问题研究,总结研究结果,并与预期结果进行比较分析。每个小组完成1~2个问题的研究分析(请各组独立完成,不要拷贝其他组的成果)。研究的内容可以为但不限于:特殊滤波器(如全通滤波器)的设计和性能分析;针对某种应用的需要设计滤波器,并用所设计的滤波器对信号进行滤波,验证其滤波效果;滤波器的不同实现结构及其量化误差的分析;对同一个信号,分别设计技术指标相近的IIR和FIR滤波器进行滤波,比较滤波的结果。


%%      代码:
%%      技术指标
Fs=10000;
fp=2500;
fs=1500;
fc=2000;
N=512;
n=0:N-1;
f=0.5*Fs*n/N;
%%      设计滤波器(用IIR)
[B1,A1]=sos2tf(SOS,G);
[H1,w1]=freqz(B1,A1);
figure(1)
plot(f,abs(H1));
title('IIR滤波');
%%      设计滤波器(用FIR)
freq=linspace(0,1,200);
mag1=ones(1,80);
mag2=zeros(1,120);
mag=[mag1,mag2];
weight=ones(1,100);
[H2,w2]=freqz(Num,1);
figure(2)
plot(f,abs(H2));
title('FIR滤波');
%%      进行滤波
%产生一个1000Hz和3000Hz的信号
n1=0:1023;
f1=1000;
f2=3000;
y=sin(2*pi*f1*n1/Fs)+sin(2*pi*f2*n1/Fs);
Y=fft(y,N);
figure(3)
plot(f*2,abs(Y));
title('滤波前');
%IIR滤波
y_IIRlvbohou=filter(B1,A1,y);
Y_IIRlvbohou=fft(y_IIRlvbohou,N);
figure(4)
plot(f*2,abs(Y_IIRlvbohou));
title('IIR滤波后');
%FIR滤波
y_FIRlvbohou=filter(Num,1,y);
Y_FIRlvbohou=fft(y_FIRlvbohou,N);
figure(5)
plot(f*2,abs(Y_FIRlvbohou));
title('FIR滤波后');

设计的滤波器如图:
数字信号处理翻转课堂笔记19—等波纹最佳逼近法设计FIR滤波器及matlab实现&IIR与FIR对比&FilterDesigner应用_第8张图片
数字信号处理翻转课堂笔记19—等波纹最佳逼近法设计FIR滤波器及matlab实现&IIR与FIR对比&FilterDesigner应用_第9张图片
运行结果:
幅频响应:可见在技术指标、阶数相同时,FIR滤波器的过渡带宽宽。
数字信号处理翻转课堂笔记19—等波纹最佳逼近法设计FIR滤波器及matlab实现&IIR与FIR对比&FilterDesigner应用_第10张图片
滤波效果:
数字信号处理翻转课堂笔记19—等波纹最佳逼近法设计FIR滤波器及matlab实现&IIR与FIR对比&FilterDesigner应用_第11张图片
可见IIR与FIR滤波效果并无明显差别。
数字信号处理翻转课堂笔记19—等波纹最佳逼近法设计FIR滤波器及matlab实现&IIR与FIR对比&FilterDesigner应用_第12张图片

8、频率域滤波

对数字信号的滤波处理,除了可以设计一个IIR或者FIR滤波器、基于时域卷积的方法来滤波之外,也可以采用频率域滤波的方法:先求被处理信号的傅里叶变换(FFT),然后根据需要直接在频域去除其中不需要的频率分量(将这些分量设为0,注意保持频域的共轭对称性),再求傅里叶反变换(IFFT),就得到了滤波后的信号。①请查阅相关资料,结合本课程已学知识,分析频率域滤波方法的优点和缺点。②针对第18次翻转课堂第(7)题所提供的心电图信号,用频率域滤波方法(FFT点数取为给定信号的长度)对其进行滤波,并与FIR滤波器的滤波结果进行比较(含时域和频域波形的比较),对比其特点。③如果在频率域滤波之前,对心电图信号补零一定的长度(比如补零到256点),再求FFT并滤波,对其结果会产生什么影响?请用Matlab编写程序进行验证分析。


暂无

三、反思总结

你可能感兴趣的:(数字信号处理,信号处理,笔记,matlab,学习)