生物医学信号处理实习报告模版Word下载.docx
- 文档编号:21439218
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:24
- 大小:480.53KB
生物医学信号处理实习报告模版Word下载.docx
《生物医学信号处理实习报告模版Word下载.docx》由会员分享,可在线阅读,更多相关《生物医学信号处理实习报告模版Word下载.docx(24页珍藏版)》请在冰豆网上搜索。
为滤波器阶数;
为通带截止角频率,此处是指被通带波纹所限制的最高角频率,;
为小于1的正数,表示通带内幅度波动的程度,
越小,幅度波动越小;
其特点为:
1)当
时,
在
之间呈等波纹变化,
越小,波动幅度越小;
2)无论
为何值,所有的曲线都通过
点,该点被定义为
点;
3)当
时,若
为奇数,
;
若
为偶数,
(4);
4)当
时,曲线呈单调下降;
5)通带内的起伏使对应的相频特性呈现非线性;
3.维纳滤波器的设计原理
维纳滤波器属于现代滤波器,传统的滤波器只能滤除信号和干扰频带没有重叠的情况,当信号和干扰频带有重叠的时候传统滤波器将无能为力,这时就需要用到现代滤波器,现代滤波器利用信号和干扰的统计特征(如自相关函数、功率谱等)导出一套最佳估计算法,然后用硬件或软件予以实现。
下面是对维纳滤波器的设计仿真:
维纳滤波器是以均方误差最小(LMS)为准则的,它根据过去观测值和当前观测值来估计信号的当前值,因此它的解形式是系统的传递函数或单位脉冲响应
图三
设计维纳滤波器的过程就是寻求在最小均方误差下滤波器的单位脉冲响应或传递函数的表达式,其实质就是解维纳-霍夫(Wiener-Hopf)方程。
均方误差为:
(5)
维纳—霍夫方程最小均方误差是下的解为:
(6)
为滤波器的系数向量,
为含有噪声的混合信号的自相关矩阵,
为混合信号和原始信号的互相关向量,为此先求出混合信号的自相关函数以及混合信号和原始信号的互相关函数,这两个函数,我们需要有样本得到。
滤波器实现的代码
1.巴特沃斯滤波器(Butter.m)
[B,A]=butter(3,2*pi*1000,'
s'
);
%脉冲响应不变法低通滤波器
[num1,den1]=impinvar(B,A,4000);
[h1,w]=freqz(num1,den1);
[B,A]=butter(3,2/0.00025,'
%双线性变换法低通滤波器
[num2,den2]=bilinear(B,A,4000);
[h2,w]=freqz(num2,den2);
f=w/pi*2000;
plot(f,abs(h1),'
GREEN'
f,abs(h2),'
RED'
legend('
脉冲响应不变法'
'
双线性变换法'
grid;
xlabel('
频率/Hz'
)
ylabel('
幅值/dB'
title('
巴特沃斯低通滤波器'
图四
2.切比雪夫滤波器(qiebixuefu1.m)
clc,clear
%确定数字滤波器指标
Fs=10000;
%采样频率
fp=280;
fs=450;
wp=2*pi*fp/Fs;
%通带截止频率
Ap=0.1;
%通带内的最大衰减
ws=2*pi*fs/Fs;
%阻带截止频率
As=40;
%阻带内的最小衰减
%数字角频率转换成模拟角频率
%双线性变换法
wps=2*Fs*tan(wp/2);
wss=2*Fs*tan(ws/2);
%设计模拟滤波器
k1=sqrt((10^(0.1*As)-1)/(10^(0.1*Ap)-1));
qsp=wss/wps;
N=ceil(acosh(k1)/acosh(qsp));
e=sqrt(10^(0.1*Ap)-1);
Ap=10*log(1+e^2);
%计算得到模拟低通H(s)分子和分母的系数
[z,p,k]=cheb1ap(N,Ap);
[bp,ap]=zp2tf(z,p,k);
[bs,as]=lp2lp(bp,ap,Fs);
%复变量映射s-->
z
[b,a]=bilinear(bs,as,Fs);
%画出切比雪夫1型低通滤波器的幅频响应曲线图
[H,w]=freqs(bp,ap,2000);
%按n指定的频率点给出频率响应
magH2=(abs(H)).^2;
%给出传递函数的幅度平方
%输出波形
plot(w,magH2);
title('
切比雪夫1型低通滤波器的幅频响应特性'
xlabel('
w/wc'
Chebyshev1|H(jw)|^2'
图五
3.维纳滤波器(Winner.m)
function[H,Emin]=Winner(Rs,Rw,N)
L1=(length(Rs)+1)/2;
Rss=zeros(1,L1);
fork=1:
L1
Rss(k)=Rs(k+L1-1);
end
L2=(length(Rw)+1)/2;
Rww=zeros(1,L2);
L2
Rww(k)=Rw(k+L2-1);
Rx=zeros(1,N);
N
Rx(k)=Rss(k)+Rww(k);
Rxx=zeros(N,N);
fori=1:
forj=1:
if(i<
=j)
Rxx(i,j)=Rx(j-i+1);
else
Rxx(i,j)=Rx(i-j+1);
H=pinv(Rxx)*Rss'
;
Emin=Rss
(1)-sum(H*Rss);
测试程序:
(WinnerTest.m)
clc;
t=-50:
0.1:
50;
w=0.1*pi;
s=cos(w.*t);
w=randn(1,length(t));
x=s+w;
Rs=xcorr(s);
%信号的自相关函数
Rw=xcorr(w);
%白噪声的自相关函数
[h,E]=Winner(Rs,Rw,length(t));
%维纳滤波
se=filter(h,1,x);
plot(t,s);
holdon
plot(t,x,'
g'
plot(t,se,'
r'
e=s-se;
plot(t,e,'
BLACK'
原始信号'
加噪后信号'
维纳滤波后信号'
误差'
图六
4.分别运用上面设计的滤波器和最优滤波器分别对含噪声的模拟ECG信号进行去噪,并运用SNR指标定量分析滤波器的去噪能力:
1)读入原始ECG模拟信号(代码见ecgsyn.m和derivsecgsyn.m),并存入ECG.txt中;
2)提取ECG.txt中的(500-2500个信号),保存至ECG(2000).txt中,并将生成的心电信号中加入高斯噪声,使其生成含噪的心电信号,保存至ECGWithGauss(2000).txt中(代码见ECG(2000).m),如图七;
图七
3)设计SNR(信噪比)的计算方法
functionsnr=SNR(I,In)
%计算信噪比函数
%I:
originalsignal
%In:
noisysignal(ie.originalsignal+noisesignal)
snr=0;
Ps=sum(sum((I-mean(mean(I))).^2));
%signalpower
Pn=sum(sum((I-In).^2));
%noisepower
snr=10*log10(Ps/Pn)
%其中I是纯信号,In是带噪声的信号,snr是信噪比
4)利用所设计的三种滤波器对所生成的ECG信号除噪;
a.巴特沃斯滤波器消噪(SNRButter.m)
clear,clc
X=importdata('
ECG(2000).txt'
%加噪心电数据读入
X1=X(:
X2=importdata('
ECGWithGauss(2000).txt'
X3=X2(:
y=filter(num1,den1,X3);
figure;
subplot(3,1,1);
plot(X1);
%原ECG信号
subplot(3,1,2);
plot(X3,'
)
加入高斯噪声后的ECG信号'
%加入高斯噪声之后的噪声
subplot(3,1,3);
plot(y,'
除噪后的ECG信号'
snr1=SNR(X1,X3);
sne2=SNR(X1,y);
b.切比雪夫1型滤波器(SNRQie.m)
Fs=1000;
fp=5;
%通带带截止频率
fs=200;
%阻带截止频率
%心电信号数据导入
%含噪心电信号的读入
%调用滤波器实现函数filter进行滤波
y=filter(b,a,X3);
%画图比较
原始心电信号'
)%加入高斯噪声后的信号
含噪心电信号'
经切比雪夫滤波后的心电信号'
%调用SNR
snr2=SNR(X1,y);
c.维纳滤波器(SNRWinner.m)
Date=load('
mk=zeros(1,2000);
mk(1,:
)=Date(1:
2000);
mk=mk(1,:
b=max(mk);
a=min(mk);
n=0:
1999;
mk=(mk-a)/(b-a);
Date1=load('
k=zeros(1,2000);
k(1,:
)=Date1(1:
k=k(1,:
b1=max(k);
a1=min(k);
n1=0:
k=(k-a1)/(b1-a1);
Rs=xcorr(mk);
%自相关
Rw=xcorr(k-mk);
[h,E]=Winner(Rs,Rw,length(n1));
y=filter(h,1,k);
%维纳滤波器
axis([0200001]);
plot(n,mk);
plot(n,k,'
%plot(n,x);
含噪信号'
plot(n,y,'
经维纳滤波后的信号'
snr1=SNR(mk,k)%滤波前信噪比
snr2=SNR(mk,y)%滤波后信噪比
5.分别运用上面设计的滤波器和最优滤波器对含高斯噪声心律失常ECG数据消噪,并运用SNR指标定量分析滤波器的去噪能力
1)数据的获取:
运行PhysioNet_ECG_Exporter_modified.m文件,读入118.dat,118.hea,118.atr,获取120秒的无噪声心律失常信号数据,保存在118_ECG_0_120.mat文件中。
实验中用的是它的第一张表格数据;
2)利用三种滤波器滤波:
clear,clc;
realecg=load('
118_ECG_0_120.mat'
mk=zeros(5,1000);
)=realecg.ECG_1(1:
1000);
%获取第一张表格数据
N=length(mk);
fs=N/(b-a);
999;
x=awgn(mk,8,'
measured'
%加入高斯噪声,信噪比为8dB.
Rw=xcorr(x-mk);
[h,E]=Winner(Rs,Rw,length(n));
se1=filter(h,1,x);
e=mk-se1;
%切比雪夫滤波
%实现S域到Z域的变换
se2=filter(b,a,x);
e3=mk-se2;
e0=mk-x;
[B,A]=butter(1,1/0.00025,'
[num1,den1]=bilinear(B,A,4000);
se3=filter(num1,den1,x);
subplot(511);
原序列'
subplot(512);
plot(n,x);
axis([0100001]);
混入噪声的信号'
subplot(513);
plot(n,se1);
subplot(514);
plot(n,se3);
axis([050001]);
e3=mk-se3;
巴特沃斯低通滤波后的信号'
subplot(515);
plot(n,se2);
切比雪夫低通滤波后的信号'
snr1=SNR(mk,x)
snr2=SNR(mk,se1)
snr3=SNR(mk,se3)
snr4=SNR(mk,se2)
6.分别运用上面设计的滤波器和最优滤波器对含噪声心律失常ECG数据消噪,并运用SNR指标定量分析滤波器的去噪能力:
以同样方法读入118e06,获取含噪声心律失常信号数据,在这里直接用118e06.dat文件读取心律失常含噪信号数据,用于滤波实验。
实验中用的均为第一张表格的数据。
取1000个采样点数据;
2)代码实现:
clear,clc;
realecg=load('
mk=zeros(5,1000);
mk(1,:
mk=mk(1,:
N=length(mk);
b=max(mk);
a=min(mk);
fs=N/(b-a);
n=0:
mk=(mk-a)/(b-a);
x=awgn(mk,8,'
Rs=xcorr(mk);
Rw=xcorr(x-mk);
[h,E]=Winner(Rs,Rw,length(n));
se1=filter(h,1,x);
e=mk-se1;
holdon
%切比雪夫滤波
%确定数字滤波器指标
Fs=1000;
fp=5;
fs=200;
wp=2*pi*fp/Fs;
Ap=0.1;
ws=2*pi*fs/Fs;
As=40;
%数字角频率转换成模拟角频率
%双线性变换法
wps=2*Fs*tan(wp/2);
wss=2*Fs*tan(ws/2);
%设计模拟滤波器
k1=sqrt((10^(0.1*As)-1)/(10^(0.1*Ap)-1));
qsp=wss/wps;
N=ceil(acosh(k1)/acosh(qsp));
e=sqrt(10^(0.1*Ap)-1);
Ap=10*log(1+e^2);
%计算得到模拟低通H(s)分子和分母的系数
[z,p,k]=cheb1ap(N,Ap);
[bp,ap]=zp2tf(z,p,k);
[bs,as]=lp2lp(bp,ap,Fs);
[b,a]=bilinear(bs,as,Fs);
%实现S域到Z域的变换
%调用滤波器实现函数filter进行滤波
se2=filter(b,a,x);
e3=mk-se2;
e0=mk-x;
[B,A]=butter(1,1/0.00025,'
[num1,den1]=bilinear(B,A,4000);
[h1,w]=freqz(num1,den1);
se3=filter(num1,den1,x);
subplot(511);
plot(n,mk);
subplot(512);
plot(n,x);
axis([0100001]);
subplot(513);
plot(n,se1);
subplot(514);
plot(n,se3);
axis([050001]);
e3=mk-se3;
subplot(515);
plot(n,se2);
%计算其信噪比
snr1=SNR(mk,k)
snr2=SNR(mk,se1)
snr3=SNR(mk,se3)
snr4=SNR(mk,se2)
实验数据分析及结果
1.运用上面设计的滤波器和最优滤波器分别对含噪声的模拟ECG信号进行去噪,并运用SNR指标定量分析滤波器的去噪能力:
1)图八即为运用巴特沃斯滤波器对模拟ECG信号进行去噪的效果图:
其中:
snr1=9.0667(除噪前)
snr2=9.0937(除噪后)
图八
2)图九即为运用切比雪夫滤波器对模拟ECG信号进行去噪的效果图:
snr2=10.8936(除噪后)
图九
3)图九即为运用维纳滤波器对模拟ECG信号进行去噪的效果图:
snr1=8.5580(除噪前)
snr2=10.6860(除噪后)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 生物医学 信号 处理 实习 报告 模版
![提示](https://static.bdocx.com/images/bang_tan.gif)