文章目录
chapter1 后端滤波器:滤波器的画图、时间域与空间域之间的关系
本文主要讨论数字滤波技术中的各种符号的含义,以及模拟、数字信号之间的关系。
- 考虑位移移变
- 不考虑位移移变
本质上来说:一个是以时间进行采样的信号,那么采样率就是fs;一个是以位移来采样的信号,如果采样间隔为L,那么采样率就是1/L。
一、不考虑位移
1. 模拟系统
时域频率 Ω \Omega Ω与频率 f f f之间的关系是: Ω = 2 π f \Omega = 2\pi f Ω=2πf。
在模拟信号中,常常用传递函数来表示系统,那么传递函数中的 s = j Ω = j 2 π f s = j\Omega = j2\pi f s=jΩ=j2πf,matlab验证如下:
傅立叶变换:
F ( w ) = ∫ − ∞ + ∞ f ( t ) e − i ω t d t F(w)=\int_{-\infty}^{+\infty} f(t) e^{-i \omega t} d t F(w)=∫−∞+∞f(t)e−iωtdt
拉普拉斯变换:
F ( ω ) = ∫ 0 + ∞ f ( t ) e − σ t e − i ω t d t = ∫ 0 + ∞ f ( t ) e − ( σ + i ω ) t d t F(\omega)=\int_{0}^{+\infty} f(t) e^{-\sigma t} e^{-i \omega t} d t=\int_{0}^{+\infty} f(t) e^{-(\sigma+i \omega) t} d t F(ω)=∫0+∞f(t)e−σte−iωtdt=∫0+∞f(t)e−(σ+iω)tdt
代码:
B = [1,2];
A = [3,4];
[ H , tmp ] = freqs(B, A);%# 连续的模拟信号
figure;
semilogx(tmp/pi/2 , 20*log10(H),'--','LineWidth',1);
set(gca,'Fontname','Times New Roman','fontsize',16);
xlabel('Frequency (Hz)'),ylabel('Magnitude (dB)')
f = 0.1:0.001:100;
Omega = 2*pi*f;
Cs = (1j*Omega*B(1) + B(2) )./( 1j*Omega*A(1) + A(2) );
hold on
semilogx( f , 20*log10(Cs),'LineWidth',1 );
xlabel('模拟频率 (Hz)');
ylabel('dB');
总之这里注意2*pi的坐标轴变化,具体原因不了解。
2. 数字系统
在数字信号中,常常用 ω \omega ω表示数字频率, T i T_i Ti表示相邻采样点之间的时间间隔,则有: ω = Ω T i = 2 π f / f s \omega = \Omega T_i = 2\pi f/f_s ω=ΩTi=2πf/fs,另外常常用 z z z表示数字系统特性, z = e x p ( i ω ) = e x p ( i 2 π f / f s ) z = exp(i\omega) = exp(i2\pi f/f_s) z=exp(iω)=exp(i2πf/fs)。
psi = 0:0.001:900;
fs = 1000;
wd = 0.001;
b = [1-wd,-1+wd];
a = [1,-1+wd];
z_1 = exp(-j*2*pi*psi/fs);
Rz = (1-wd)*(1 - z_1)./( 1-(1-wd) * z_1 );
figure;semilogx(psi,20*log10(Rz),'LineWidth',1);
[h,f] = freqz(b,a,1e5,fs);
hold on;semilogx(f,20*log10(h),'--r','LineWidth',2)
二、考虑位移移变
一般模拟滤波器的传递函数为 H a ( s ) H_a(s) Ha(s),其时域频率特性为 H z ( j Ω ) H_z(j\Omega) Hz(jΩ)。数字滤波器的转移函数为 H d ( z ) H_d(z) Hd(z),其频率特性可以表示为 H d ( e i ω ) H_d(e^{i\omega}) Hd(eiω)。
时间域频率 Ω \Omega Ω与空间域频率 ψ \psi ψ之间的关系为: Ω = 2 π ψ v \Omega = 2\pi \psi v Ω=2πψv。
数字频率: ω = Ω T i = 2 π ψ ( v T i ) = 2 π ψ 0.25 \omega = \Omega T_i = 2\pi \psi (vT_i) = 2\pi \psi 0.25 ω=ΩTi=2πψ(vTi)=2πψ0.25。(这里假定0.25m采样)
所以: z = e x p ( 2 π ψ 0.25 ) z = exp(2\pi \psi 0.25) z=exp(2πψ0.25)。
那么这里需要注意的是:时间频率 f f f与空间频率 ψ \psi ψ的关系是: f = v ψ f = v\psi f=vψ。同时,空间域频率 ψ = 1 / λ \psi = 1/\lambda ψ=1/λ,这个条件很重要。
三、设计基于窗函数的数字滤波器
因为是基于空间域采样,每隔0.25m采样一次,那么相当于采样率为4Hz。
矩形窗是设计滤波器的常用方法,下面主要考虑基于位移移变得情况下的滤波器设计。
矩形窗窗函数可表示为:
w
[
k
]
=
{
1
−
M
≤
k
≤
M
0
other
w[k]=\left\{\begin{array}{cc} 1 & -M \leq k \leq M \\ 0 & \text { other } \end{array}\right.
w[k]={10−M≤k≤M other
矩形窗滤波器系统函数可表示为:
W
(
z
)
=
1
2
M
+
1
z
M
−
z
−
M
−
1
1
−
z
−
1
W(z)=\frac{1}{2 M+1} \frac{z^{M}-z^{-M-1}}{1-z^{-1}}
W(z)=2M+111−z−1zM−z−M−1
幅度函数:
W
(
Ω
)
=
1
N
sin
(
N
Ω
/
2
)
sin
(
Ω
/
2
)
,
N
=
2
M
+
1
W(\Omega)=\frac{1}{N} \frac{\sin (N \Omega / 2)}{\sin (\Omega / 2)}, \quad N=2 M+1
W(Ω)=N1sin(Ω/2)sin(NΩ/2),N=2M+1
以下的代码基于M=30的条件进行仿真。
- 幅度函数
M = 30;
N = 2*M+1;
lamda = 1:0.1:1000;
pesi = 1./lamda; %空间域频率
omega = 2*pi*pesi*0.25;
Wn = sin(N.*omega/2)./sin(omega./2)./N;
hold on;semilogx(lamda,20*log10(abs(Wn)));
- 系统函数
K = 30;
M = 2*K+1;
lamda = 1:0.1:1000;
pesi = 1./lamda; %空间域频率
temp = exp(1j*2*pi.*pesi*0.25);%这个很重要
%%换一种表示,就是两个矩形窗
DjpesiDz = ( temp.^K - temp.^(-K-1) )...
./( ( 1- temp.^(-1) ) ) ...
/M ;
hold on;semilogx( lamda , 20*log10(DjpesiDz) );
- freqz函数
b = ones(1,N)/N;
[h,f] = freqz(b,[zeros(1,N-1),1],10000,4);
hold on;semilogx(1./f,20*log10(h));grid on;
矩形窗的相位
可见矩形窗滤波器对于信号相位的影响还是很大的,并且经常会产生信号相位的跳变。
理论上来说矩形窗应该是线性相位的。
四、模拟滤波器与数字滤波器
以积分函数1/s举例,用反向差分法将其转换成为z传递函数。就可以看出来用数字系统去逼近模拟系统的时候会带来的问题,就是在某些频率的幅值上会做出改变。
幅值和相位在高频的部分都发生了改变。这个主要的原因就是本质上反向差分法是利用一阶泰勒展开逼近积分函数,这一定会忽略掉高阶项导致精度损失。高阶项对应的便可以认为是高频部分。
显然T的取值影响到最后的取值结果,假设采样率为4Hz(与轨检相同),那么有:
竖线的位置正好是4Hz,这与采样定理有关系。
这能说明什么?对于积分来说,对于越是高频(短波长)的处理,会导致更大的误差?可以这样理解?
双线性变换就是梯形积分?黑色是双线性变换的结果,只能说两者不一样,梯形积分可能会带来更多的误差。
clear all
f = 0.1:0.001:1e4;
Omega = 2*pi*f;
Cs = (1 )./( 1j*Omega);
figure;
semilogx( f , 20*log10(Cs),'LineWidth',1 );
xlabel('模拟频率 (Hz)');
ylabel('dB');
psi = 0:0.001:1e4;
fs = 1000;
z_1 = exp(-j*2*pi*psi/fs);
Rz = 1./fs./( 1 - z_1 );
hold on;semilogx(psi,20*log10(Rz),'r','LineWidth',2);
Rz2 = 1/fs*(1+z_1) ./ 2 ./ ( 1 - z_1 );
semilogx(psi,20*log10(Rz2),'k','LineWidth',1);
那更近一步,采样定理是怎么理解呢?如果只是考虑积分1/s,那么它对应的截止频率与信号的关系是什么?
chapter 2 前端的滤波器
假设传感器安装在车体上(机器人、汽车),按照固定长度的位移(比如0.25m)来采集惯组信号,而不随着时间采集。(具体做法就是先按照时间采集信号,再进行对应位移点的选择)。那么对信号的抗混叠处理就与传统做法中简单添加一个滤波器不一样。
在传感器信号的前端,首先需要经过抗混叠滤波器(低通滤波器)对信号进行初步的处理。但是对于模拟滤波器而言,其截止频率会受到速度的影响。为了去除模拟滤波在空间域幅频特征的移变特性,需要再在后面及联一个“去移变”滤波器。最好这个滤波器与前一个滤波器互补,同样截止频率随着速度变化。
级联和并联的两种形式:级联是将滤波器系数相乘,但是并联是对滤波器系数进行加权求和;可见前段滤波器是级联,但是互补滤波器是并联,只需要满足(G(s)+H(s) = 1)的条件就行。
1)备注内容
使用freqz或者直接解算抗混叠滤波器的频率响应时发现如下对应关系:
- [H,F] = freqz(b,a,80000,1/T); --> z_1 = exp( - 1j * 2 * pi * f/v * 0.25);
- [H,F] = freqz(b,a,80000,fs); --> z_1 = exp( - 1j * 2 * pi * f/fs);
那么这样的话,我认为抗混叠滤波器应该取后者的方法画图,因为信号是按时间采样经过滤波器的,采样频率为500Hz。
代码如下:
f = 0.01:0.01:250;%%到了500就很怪。
fs = 500; % 惯组的采样频率为500Hz
z_1 = exp( - 1j*2*pi*f/fs);%%f代表
% 参数配置
Omega_1 = (10^5)/(2^17);
figure1 = figure('Color',[1 1 1]);
%%
v = 50/3.6;
T = 0.25/v;
b = [ Omega_1 * T 0];
a = [ 1 + Omega_1*T , (-1)];
% 画图
z_1 = exp( - 1j*2*pi * f/v * 0.25);
Bz = Omega_1 * T./ ( 1 + Omega_1*T - z_1 );
semilogx(v./f , 20*log10(Bz),'LineWidth',1);
Cz = ( exp(Omega_1*T/2) - exp(- Omega_1*T/2)*z_1 )/(Omega_1*T);
% hold on;semilogx(v./f , 20*log10(Cz));
[H,F] = freqz(b,a,80000,fs);
[H,F] = freqz(b,a,80000,1/T);
hold on;
semilogx(v./F , 20*log10(H));
2)低通模拟滤波器与低通数字滤波器
仅对比低通模拟滤波器与低通数字滤波器在时间域上,效果是一致的,因为后者是前者的转换。
下面是一阶的:
clear;
%一阶模拟抗混滤波器
omiga1 = 10^5 / 2^17;
f = 0.001 : 0.0001 :100; % 模拟频率Hz
omiga = 2*pi.*f; % 模拟角频率 rad/sec
H = omiga1 ./ (1j.*(omiga) + omiga1);
figure
semilogx( f , 20*log10(H) );
xlabel('模拟频率 (Hz)');
ylabel('dB'); %截止频率为 0.76/2/pi = 0.121Hz
title('一阶抗混滤波器');
grid on
figure;
[h,f] = freqs(omiga1,[1,omiga1]);
semilogx(f/pi/2 , 20*log10(h),'LineWidth',2);
grid on;
下面是作用于加速度上的二阶低通滤波器。
clear all
close all
Omega2 = 10^5/2^14;
b = [Omega2^2];
a = [1,Omega2,Omega2^2];
[H,Om] = freqs(b,a);
figure1 = figure('Color',[1 1 1]);
semilogx(Om/2/pi , 20*log10(abs(H)),'LineWidth',2);
hold on
%%
%%修改T的值并不会改变滤波器的性质
T = 1/100;
b = [Omega2^2*T^2];
a = [(1+Omega2*T+(Omega2*T)^2), -(2+Omega2*T),1];
[h,f] = freqz(b,a,800000,1/T);
% figure;
semilogx( f , 20*log10(abs(h)),'--r','LineWidth',1);
xlabel('f /Hz')
ylabel('Mag /dB');
set(gca,'Fontname','Times New Roman','fontsize',16);
模拟和数字两者在时域上表示是一致的,
但是模拟的滤波器在空间域上并不一致,所以也让修改后的数字滤波器在空间域上也不一致。所以先是在模拟域上有不一致的属性,然后再到数字域。
3)信号滤波算法原理(一阶低通滤波器)
经典的一阶低通滤波器表示为:
B
(
s
)
=
Ω
1
s
+
Ω
1
B(s)=\frac{\Omega_{1}}{s+\Omega_{1}}
B(s)=s+Ω1Ω1
使用反向差分变换可以表示为:
B
(
z
)
=
Ω
1
T
(
1
+
Ω
1
T
)
−
z
−
1
B(z)=\frac{\Omega_{1} T}{\left(1+\Omega_{1} T\right)-z^{-1}}
B(z)=(1+Ω1T)−z−1Ω1T
其中该滤波器的时间域的截止频率为
Ω
1
/
2
/
p
i
\Omega_{1} / 2 / p i
Ω1/2/pi,两个频率响应的结果如下图所示。
反向差分法转换滤波器时,两者的曲线在时间域上一直保持一致,曲线不随着采样率 f s fs fs的变化而变化。那么也就是说从模拟系统转换成为数字系统时,滤波器截止频率可以保持不变。
但是在空间域上去观察频率响应时,空间域频率 ψ \psi ψ和时间域频率 f f f有如下关系: f = v ψ f = v\psi f=vψ,那么速度会改变频响曲线在空间域的结果。
所以对经过低通滤波器的信号进行等间隔空间采样(空间域)时,滤波器的截止频率就会随着列车行驶速度的变化而变化。去移变滤波器就是为了去除这种情况。
那么通过参考文献的方法设计滤波器如下:
C
(
z
)
=
e
Ω
1
T
i
−
e
−
Ω
1
T
i
z
−
1
Ω
1
T
i
C(z)=\frac{e^{\Omega_1T_i} - e^{-\Omega_1T_i}z^{-1}}{\Omega_1T_i}
C(z)=Ω1TieΩ1Ti−e−Ω1Tiz−1
结果如下:
这里需要注意T的取值,T= 0.25/v。组合滤波器的频率响应如下:
去移变滤波器域一阶低通滤波器组合起来之后,形成一个不随着速度变化的新的低通滤波器,能够满足系统的滤波需要,这个设计十分巧妙。
然后用同样的方法画出二阶滤波器的结果:
可以发现两个滤波器的截止频率(一阶和二阶)基本是一致的,大致在波长为1m附近。基本上滤出了加速度计和陀螺仪的高频噪声,然后还不受到速度变化的影响,达到了滤波器设计的目的。
4)代码
%% 模拟滤波器与数字滤波器的转换
% clear;
% close all;
% %一阶模拟抗混滤波器
% omiga1 = 10^5 / 2^17;
% f = 0.001 : 0.0001 :100; % 模拟频率Hz
% omiga = 2*pi.*f; % 模拟角频率 rad/sec
% Bs = omiga1 ./ (1j.*(omiga) + omiga1);
% figure1 = figure('Color',[1 1 1]);
% semilogx( f , 20*log10(abs(Bs)) ,'LineWidth',1);
% xlabel('模拟频率 (Hz)');
% ylabel('dB'); %截止频率为 0.76/2/pi = 0.121Hz
% title('一阶抗混滤波器');
% grid on
% f = 0.01:0.01:250;%%到了500就很怪。
% fs = 500; % 惯组的采样频率为500Hz
% z_1 = exp( - 1j*2*pi*f/fs);%%f代表
%
% % 参数配置
% Omega_1 = (10^5)/(2^17);
% v = 50/3.6;
% T = 1/fs;
% b = [ Omega_1 * T 0];
% a = [ 1 + Omega_1*T , (-1)];
% % 画图
% Bz = Omega_1 * T./ ( 1 + Omega_1*T - z_1 );
% hold on
% semilogx(f , 20*log10(abs(Bz)),'LineWidth',1);
% legend 模拟滤波器 数字滤波器
% set(gca,'Fontname','Times New Roman','fontsize',14);
%% 验证结论:
% % 不论速度多少,按照固定时间采样的数字滤波器域模拟滤波器在空间域上的表现一致
% clear;
% % close all;
% %一阶模拟抗混滤波器
% omiga1 = 10^5 / 2^17;
% f = 0.001 : 0.0001 :100; % 模拟频率Hz
% omiga = 2*pi.*f; % 模拟角频率 rad/sec
% Bs = omiga1 ./ (1j.*(omiga) + omiga1);
% figure1 = figure('Color',[1 1 1]);
% v = 100/3.6;
% semilogx( v./f , 20*log10(abs(Bs)) ,'LineWidth',1);
% xlabel('波长 /m');
% ylabel('dB'); %截止频率为 0.76/2/pi = 0.121Hz
% title('一阶抗混滤波器');
% grid on
% f = 0.01:0.01:250;%%到了500就很怪。
% fs = 500; % 惯组的采样频率为500Hz
% z_1 = exp( - 1j*2*pi*f/fs);%%f代表
%
% % 参数配置
% Omega_1 = (10^5)/(2^17);
% T = 1/fs;
% b = [ Omega_1 * T 0];
% a = [ 1 + Omega_1*T , (-1)];
% % 画图
% Bz = Omega_1 * T./ ( 1 + Omega_1*T - z_1 );
% hold on
% semilogx(v./f , 20*log10(abs(Bz)),'LineWidth',1);
% legend 模拟滤波器 数字滤波器
% set(gca,'Fontname','Times New Roman','fontsize',14);
%% 数字滤波器和去移变滤波器参数配置
clear all;
close all;
f = 0.01:0.01:250;%%到了500就很怪。
fs = 500; % 惯组的采样频率为500Hz
% 参数配置
Omega_1 = (10^5)/(2^17);%%截止频率
omiga = 2*pi.*f; % 模拟角频率 rad/sec
Bs = Omega_1 ./ (1j.*(omiga) + Omega_1);
%% 50km/h
figure1 = figure('Color',[1 1 1]);
v1 = 50/3.6;
semilogx(v1./f , 20*log10(abs(Bs)),'LineWidth',1);hold on;
Ti = 0.25/v1;
z_1 = exp( - 1j*2*pi* f/v1 *0.25);
Cz1 = ( exp(Omega_1*Ti/2) - exp(- Omega_1*Ti/2)*z_1 )/(Omega_1*Ti);
hold on;semilogx(v1./f , 20*log10(abs(Cz1)));
%% 120km/h
v2 = 120/3.6;
semilogx(v2./f , 20*log10(abs(Bs)));
Ti = 0.25/v2;
z_1 = exp( - 1j*2*pi* f/v2 *0.25);
Cz2 = ( exp(Omega_1*Ti/2) - exp(- Omega_1*Ti/2)*z_1 )/(Omega_1*Ti);
hold on;semilogx(v2./f , 20*log10(abs(Cz2)));
%% 350km/h
v3 = 200/3.6;
semilogx(v3./f , 20*log10(abs(Bs)));
T = 0.25/v3;
z_1 = exp( - 1j*2*pi* f/v3 * 0.25);
Cz3 = ( exp(Omega_1*T/2) - exp(- Omega_1*T/2)*z_1 )/(Omega_1*T);
hold on;semilogx(v3./f , 20*log10(abs(Cz3)));
set(gca,'Fontname','Times New Roman','fontsize',14);
xlabel('\lambda /m')
ylabel('Mag /dB')
legend 50km/h 50km/h 120km/h 120km/h 350km/h 350km/h
% legend 50km/h 120km/h 350km/h
grid on;
%% Cz用freqz来画是不是一样的
% figure;
% semilogx(v3./f , 20*log10(abs(Cz)) , 'r','LineWidth',1);
% b = [1+Omega_1*T/2 , -1+Omega_1*T/2];
% a = Omega_1*T;
% [Czz ,f] = freqz(b,a , length(f),1/T);
% hold on;
% semilogx(v3./f , 20*log10(abs(Czz)),'k','LineWidth',1);
%%
figure1 = figure('Color',[1 1 1]);
semilogx(v1./f , 20*log10(abs(Bs.*Cz1)));
hold on;
semilogx(v2./f , 20*log10(abs(Bs.*Cz2)));
semilogx(v3./f , 20*log10(abs(Bs.*Cz3)));
grid on;
set(gca,'Fontname','Times New Roman','fontsize',14);
xlabel('\lambda /m')
ylabel('Mag /dB')
title('抗混叠滤波器+去移变滤波器')
legend 50km/h 120km/h 200km/h
二阶:
%% 数字滤波器和去移变滤波器参数配置
clear all;
close all;
f = 0.01:0.01:250;%%到了500就很怪。
fs = 500; % 惯组的采样频率为500Hz
% 参数配置
Omega_1 = (10^5)/(2^17);%%截止频率
Omega_2 = 10^5/2^14;
omiga = 2*pi.*f; % 模拟角频率 rad/sec
% Fs = Omega_1 ./ (1j.*(omiga) + Omega_1);
Fs = Omega_2^2./( (1j.*omiga).^2 + (1j.*omiga).*Omega_2 + Omega_2^2 );
%% 50km/h
figure1 = figure('Color',[1 1 1]);
v1 = 50/3.6;
semilogx(v1./f , 20*log10(abs(Fs)),'LineWidth',1);hold on;
Ti = 0.25/v1;
z_1 = exp( - 1j*2*pi* f/v1 *0.25);
Cz1 = ( exp(Omega_1*Ti/2) - exp(- Omega_1*Ti/2)*z_1 )/(Omega_1*Ti);
a = 1/2*Omega_2; b = sqrt(1-0.5^2)*Omega_2;
a2b2 = (10^5/2^14)^2;
w2 = (10^5)/(2^14);
a = w2/2; aa = a^2;
bb = 3*(w2^2)/4;
biir = [1+a*Ti+aa*Ti*Ti ,-2*(1-aa*Ti*Ti), 1-a*Ti+aa*Ti*Ti];
% Gz1 = ( (1-z_1).^2 + (1 - z_1.^2)*a*Ti + (a*Ti + 2*a*Ti*z_1 + a*Ti*z_1.^2) ) ./ (Ti^2*a2b2);
Gz1 = (biir(1) + biir(2).*z_1 + biir(3).*z_1.^2) ./ ((aa+bb)*Ti*Ti);
hold on;semilogx(v1./f , 20*log10(abs(Gz1)));
%% 120km/h
v2 = 120/3.6;
semilogx(v2./f , 20*log10(abs(Fs)));
Ti = 0.25/v2;
z_1 = exp( - 1j*2*pi* f/v2 *0.25);
Cz2 = ( exp(Omega_1*Ti/2) - exp(- Omega_1*Ti/2)*z_1 )/(Omega_1*Ti);
% Gz2 = ( (1-z_1).^2 + (1 - z_1.^2)*a*Ti + (a*Ti + 2*a*Ti*z_1 + a*Ti*z_1.^2) ) ./ (Ti^2*a2b2);
biir = [1+a*Ti+aa*Ti*Ti ,-2*(1-aa*Ti*Ti), 1-a*Ti+aa*Ti*Ti];
Gz2 = (biir(1) + biir(2).*z_1 + biir(3).*z_1.^2) ./ ((aa+bb)*Ti*Ti);
hold on;semilogx(v2./f , 20*log10(abs(Gz2)));
%% 350km/h
v3 = 200/3.6;
semilogx(v3./f , 20*log10(abs(Fs)));
Ti = 0.25/v3;
z_1 = exp( - 1j*2*pi* f/v3 * 0.25);
% Cz3 = ( exp(Omega_1*Ti/2) - exp(- Omega_1*Ti/2)*z_1 )/(Omega_1*Ti);
% Gz3 = ( (1-z_1).^2 + (1 - z_1.^2)*a*Ti + (a*Ti + 2*a*Ti*z_1 + a*Ti*z_1.^2) ) ./ (Ti^2*a2b2);
biir = [1+a*Ti+aa*Ti*Ti ,-2*(1-aa*Ti*Ti), 1-a*Ti+aa*Ti*Ti];
Gz3 = (biir(1) + biir(2).*z_1 + biir(3).*z_1.^2) ./ ((aa+bb)*Ti*Ti);
hold on;semilogx(v3./f , 20*log10(abs(Gz3)));
set(gca,'Fontname','Times New Roman','fontsize',14);
xlabel('\lambda /m');
ylabel('Mag /dB');
legend 50km/h 50km/h 120km/h 120km/h 350km/h 350km/h;
% legend 50km/h 120km/h 350km/h
grid on;
%%
figure1 = figure('Color',[1 1 1]);
semilogx(v1./f , 20*log10(abs(Gz1)));
hold on;
semilogx(v2./f , 20*log10(abs(Gz2)));
semilogx(v3./f , 20*log10(abs(Gz3)));
grid on;
set(gca,'Fontname','Times New Roman','fontsize',14);
xlabel('\lambda /m')
ylabel('Mag /dB')
title('抗混叠滤波器+去移变滤波器')
legend 50km/h 120km/h 200km/h
%% 抗混叠+去移变
figure1 = figure('Color',[1 1 1]);
semilogx(v1./f , 20*log10(abs(Fs.*Gz1)));
hold on;
semilogx(v2./f , 20*log10(abs(Fs.*Gz2)));
semilogx(v3./f , 20*log10(abs(Fs.*Gz3)));
grid on;
set(gca,'Fontname','Times New Roman','fontsize',14);
xlabel('\lambda /m')
ylabel('Mag /dB')
title('抗混叠滤波器+去移变滤波器')
legend 50km/h 120km/h 200km/h