一、实验目的:
研究数字滤波器设计思想,理解数字频率与模拟频率的关系,掌握数字系统处理模拟信号的方法。掌握窗函数设计FIR数字滤波器的方法,理解FIR滤波器的线性相位重要意义。
二、实验要求:
以连续信号为例,其中
为噪声信号,设计数字滤波器,滤除噪声恢复信号;
三、技术方案:
设计滤波器并滤波的主要步骤有八步,首先写出,注意需要将模拟频率对采样率归一化,然后计算出过度带宽度,根据阻带最小衰减选择窗函数,再求窗长度,求
截止频率,计算
滤波器系数向量,绘制滤波器频率特性波特图,完成滤波。
对于本实验,首先我绘制出了原信号的图形、去掉噪声的理论图形及其频谱分析,然后我取接着依照通式计算出过度带宽度,求窗长度,求
截止频率,计算
滤波器系数向量,绘制滤波器频率特性波特图,完成滤波,得到滤波后的图形及其频谱分析,最后我又在另一张图里叠加理论值与真实值的图形观察比较其区别。
四、实验程序:
clc;
clear;
close all;
figure(1)
Ts=0.001;fs=1/Ts;
t=-0.2:Ts:0.2;
x1=10*cos(200*pi*t)+8*cos(600*pi*t);
subplot(3,2,1),plot(t,x1,'g'),title('初始信号');
N=length(t);
y1=fft(x1)/N;
z1=abs(y1);
if mod(N,2)==0
k=-N/2:(N/2-1);
else
k=-(N-1)/2:(N-1)/2;
end;
f1=k*fs/N;
subplot(3,2,2),stem(f1,fftshift(z1),'r'),title('初始信号频谱');
x2=10*cos(200*pi*t);
subplot(3,2,3),plot(t,x2,'g'),title('无噪声信号');
y2=fft(x2)/N;
z2=abs(y2);
f2=k*fs/N;
subplot(3,2,4),stem(f2,fftshift(z2),'r'),title('无噪声信号频谱');
ws=0.21*pi;wp=0.59*pi;
Bt=wp-ws;
N0=ceil(6.2*pi/Bt);
N1=N0+mod(N0+1,2);
wc=(ws+wp)/2;
hn=fir1(N1-1,wc/pi,'low',hanning(N1));
y=filter(hn,1,x1);
subplot(3,2,5),plot(t,y,'g'),ylim([-10,10]),title('滤波后信号');
y3=fft(y)/N;
z3=abs(y3);
f3=k*fs/N;
subplot(3,2,6),stem(f3,fftshift(z3),'r'),title('滤波后信号频谱');
figure(2)
plot(t,y,'g'),hold on,plot(t,x2,'r'),title('理论信号与实际信号对比');
五、实验结果:
该图中依次为初始信号及其频谱分析,无噪声的理论信号及其频谱分析,滤波后的实际信号及其频谱分析。
该图为无噪声的理论信号与滤波后的实际信号的叠加。
通过滤波器后噪声被滤除,但与无噪声的理论信号之间仍存在误差。