数字滤波器设计

几种频率意义

实际物理频率表示AD采集物理信号的频率,fs为采样频率,由奈奎斯特采样定理可以知道,fs必须≥信号最高频率的2倍才不会发生信号混叠,因此fs能采样到的信号最高频率为fs/2。
f s ⩾ 2 f c f_s\geqslant2f_c fs2fc
角频率是物理频率的2pi倍,这个也称模拟频率。
Ω = 2 π f \Omega=2\pi f Ω=2πf
归一化数字频率和模拟频率之间的关系,一般在matlab里只显示0-π的归一化数字频率,另一半就不看了
Ω = ω T \Omega=\frac{\omega}{T} Ω=Tω
归一化频率是将物理频率按fs归一化之后的结果,最高的信号频率为fs/2对应归一化频率0.5,这也就是为什么在matlab的fdtool工具中
ω n = ω c f s 2 \omega_n=\frac{\omega_c}{\frac{fs}{2}} ωn=2fsωc
圆周频率是归一化频率的2
pi倍,这个也称数字频率。

IIR滤波器设计

通过使用现有的模拟滤波器来进行逼近设计(如巴特沃斯滤波器和切比雪夫滤波器)

冲激响应不变法

依旧是时域逼近,s域用部分分时展开法,来匹配

image-20210826143450348

阶跃响应不变法

是用来逼近时域内的响应函数(s),再通过反变换求出频响

优点:模拟频率增加,混叠现象比冲激响应不变发要小

image-20210826143143870

双线性变换法

FIR滤波器的设计

1、滤波器阶次越高(fir滤波器用到的点数N),延时越大

2、通常来说FIR滤波器比IIR滤波器的要高,同样的性能下,因为IIR用到了前面的输入

频率抽样法设计

就是先模拟出理想的响应,然后通过反变换来设计

Matlab调用的函数fir2来实现设计

b = fir2(n,f,m)

variable:f-指定的幅频响应特性,归一化数字频率

returns an nth-order FIR filter with frequency-magnitude characteristics specified in the vectors f and m. The function linearly interpolates the desired frequency response onto a dense grid and then uses the inverse Fourier transform and a Hamming window to obtain the filter coefficients.

返回具有向量f和m中指定的频率幅度特性的N阶FIR滤波器。该函数将所需频率响应线性插值到密集网格上,然后使用傅里叶逆变换汉明窗获得滤波器系数

freqz(n)

n-滤波器

显示滤波器的幅频响应和相频响应

MATLAB程序

设计了个带通滤波器,阻带衰减为-50db,通带为[0.2,0.3],[0.6,0.8],对应到的模拟频率为[0.2*fs],以下程序中可以看到,fs为采样频率=2khz,模拟频率可以通过的就是400-600π rad/s,1200-1800π rad/s,查看下图对应数字频率的通带衰减和阻带衰减,这是重要的滤波器指标,以及过渡带宽,过渡带宽就是从给定的截止频率到最小的第一次拐点的位置,我们可以看到,由于点数较少,过渡带宽较大

image-20210825114153038

滤波器频率响应特性

image-20210825155555283

对于模拟信号的采样

image-20210825160122222

群时延,可以看到在0.2-0.3,和0.6-0.8稳定

image-20210825160415881

原信号(下)和滤波后的信号以及带通范围内信号的比较,有一定时延(上)
%信号的抽样
%频率抽样法进行设计
%归一化频率对应理想滤波器的响应
close all
f=[0 0.19 0.2 0.3 0.31 0.59 0.6 0.8 0.81 1];
%理想滤波器响应
m=[0 0 1 1 0 0 1 1 0 0];
%滤波器的阶数(就是用到的点数)
N1=30;
N2=60;
%滤波器设计
filter1=fir2(N1,f,m);
filter2=fir2(N2,f,m);
subplot(311);
stem(filter1,'.');
subplot(312);
stem(filter2,'.');

freqz(filter1);

%验证该滤波器的响应
% 信号采样
Ts=0.0005;
n=0:1/Ts;
nTs=n*Ts;
Yn=-2*cos(1400*pi*nTs)+sin(30*pi*nTs);
t=0:0.0005:1;
y=-2*cos(1400*pi*t)+sin(30*pi*t);
figure;
plot(t,y,'g','linewidth',2),hold on;
stem(nTs,Yn),grid on;
xlabel('nTs');ylabel('Y(nTs)');

% 过滤后的信号和原信号之间的对比
%  查看群时延
figure,grpdelay(filter1);
outut=conv(Yn,filter1);
figure;
subplot(211);
plot(outut);
hold on,plot(-2*cos(1400*pi*(t-15)));
subplot(212);
plot(Yn);

窗函数法设计

可以利用Matlab提供的工具来进行设计

第一种情况:知道指定频率来进行设计

第二种情况:根据统计频率的比例来进行阈值设定,归一化频率,比例来设定

利用Matlab的simulink来进行设计

第一种在Frequency Specifications里设计采样频率和截止频率,需要注意采样频率要和输入信号的采样频率相同,截止频率要小于采样频率的一半,可以设定采样频率的阶数;另一种方法是给定滤波器的性能指标,用等纹波方法来评估阶数以及用其方法来进行相关指标设计

image-20210825161614654

image-20210825162414315

第二种方法是根据频率的归一化特性来分类,是指定能量不同,但是变化相同的情况来进行区分

image-20210825164728827

image-20210825164832804

image-20210825165315321

image-20210825165438787

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值