华中科技大学《数字信号分析理论实践》第六单元 信号数字滤波的概念 学习总结记录
频域滤波
- 对信号进行低通滤波的一种快速方法,低频信号幅度设为1,负频率镜像过去,把虚部设为0
Fs = 2048;
dt = 1.0/Fs;
T = 1;
N = T/dt;
t = linspace(0,T,N);
x1 = sin(2*pi*50*t)+sin(2*pi*300*t)+sin(2*pi*500*t);
subplot(411);
plot(t,x1);
axis([0,0.1,-2,2]);
P = fft(x1,N);
Pyy = 2*sqrt(P.*conj(P))/N;
f = linspace(0,Fs/2,N/2);
subplot(412)
plot(f,Pyy(1:N/2));
P1(N) = 0;
for k = 1:N
P1(k) = real(P(k))+1i*imag(P(k));
end
for k = 200:N-200
P1(k) = 0;
end
Pyy = 2*sqrt(P1.*conj(P1))/N;
subplot(413)
plot(f,Pyy(1:N/2));
x2 = ifft(P1);
subplot(414);
plot(t,real(x2));
axis([0,0.1,-2,2]);
- 长数据滤波
数字时域滤波器——关键得到Z变换形式的滤波器
- 数字差分——简单的高通滤波器
x ′ ( n ) ≈ x ( n + 1 ) − x ( n − 1 ) 2 Δ t ⇒ H ( z ) = a z 1 − a z − 1 , a = 1 2 Δ t x'(n)\approx\frac{x(n+1)-x(n-1)}{2\Delta t}\Rightarrow H(z)=az^1-az^{-1},a = \frac{1}{2\Delta t} x′(n)≈2Δtx(n+1)−x(n−1)⇒H(z)=az1−az−1,a=2Δt1
a = 1/(2*dt);
For K = 1 To N-1
x(k) = a*x(k+1)-a*x(k-1)
Next
Fs = 5000;
dt = 1/Fs;
T = 1;
N = T/dt;
t = linspace(0,T,N);
a = 5;
f = 2;
y = a*sin(2*pi*f*t)+0.3*sin(2*pi*50*t);
subplot(211)
plot(t,y);
x(N) = 0;
for i = 2:N-1
x(i) = (y(i+1)-y(i-1))/2;
end
subplot(212)
plot(t,x);
- 数据平滑——简单的低通滤波器
Fs = 5000;
dt = 1/Fs;
T = 1;
N = T/dt;
t = linspace(0,T,N);
a = 5;
f = 2;
y = a*sin(2*pi*f*t)+0.8*sin(2*pi*500*t);
subplot(211)
plot(t,y);
x = y;
for i = 1:N-5
x(i) = (y(i)+y(i+1)+y(i+2)+y(i+3)+y(i+4))/5;
end
subplot(212)
plot(t,x);
- 高斯平滑滤波器——将系数改进,中间值权重最大
- 数字滤波器设计——求取滤波器系数
- 时域数字滤波就是将信号和滤波器的单位脉冲响应 (Z域滤波器系数) 进行卷积分,寻找所需的滤波器的单位脉冲响应的过程称为滤波器设计,信号卷积分过程称为滤波
- 时域数字滤波就是将信号和滤波器的单位脉冲响应 (Z域滤波器系数) 进行卷积分,寻找所需的滤波器的单位脉冲响应的过程称为滤波器设计,信号卷积分过程称为滤波
- 注意对滤波器起始点进行处理