一维信号去噪分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一维信号滤波分析

读取实验数据,绘制一维时域谱,如图1所示

23.8

23.8523.923.95

2424.0524.124.1524.2

0.0408

0.0410.04120.04140.04160.0418

0.0420.0422

0.0424运动位置

信号幅值

原始信号

图1

下面对信号进行FFT 变换: Fs=1024;%假定采样频率 N=597;%实际采样点数

y=xlsread('C:\Documents and Settings\Administrator\桌面

\Book2.xls'); y=y';

y1=fft(y);

y2=10*log10((abs(y1).^2)); figure; plot(y2);

title('fft 变换')%做FFT 变换 Ay2=abs(y2); %取模

Ay2=Ay2/(N/2); %换算成实际的幅度 Ay2(1)=Ay2(1)/2;

F=([1:N]-1)*Fs/N; %换算成实际的频率值,Fn=(n-1)*Fs/N figure

plot(F(1:N/2),Ay2(1:N/2)); %显示换算后的FFT 模值结果 title('幅度-频率曲线图');

得到信号频谱如图2

0100200300400500600

0.05

0.1

0.15

0.2

0.25

0.3

0.35

幅度-频率曲线图

图2

由于大多数信号噪声频率都为高频,所以可以先尝试设计一个简单的带通滤波器,这里采用窗函数法,根据FFT 变换得到的频谱图取通带为50~350Hz ,算法函数如下: Fs=1024; N=597; n=36;

y=xlsread('C:\Documents and

Settings\Administrator\

\Book2.xls'); y=y';

x=xlsread('C:\Documents and Settings\Administrator\桌面

\Book1.xls'); x=x';

Wn=[50,350]*2/Fs;%归一化频率 b=fir1(n,Wn);

yf=filter(b,1,y); figure; plot(x,y);

xlabel('运动位置'); ylabel('信号幅值');

title('窗函数法滤波后的信号')

滤波器频谱响应如图3

00.10.2

0.30.40.50.60.70.80.91

-3000

-2000

-1000

Normalized Frequency (⨯π rad/sample)

P h a s e (d e g r e e s )

00.10.2

0.30.40.50.60.70.80.91

-100

-50

50

Normalized Frequency (⨯π rad/sample)

M a g n i t u d e (d B )

滤波后得到滤波信号如图4

23.8

23.8523.923.95

2424.0524.124.1524.2

0.0408

0.0410.04120.04140.04160.0418

0.0420.0422

0.0424运动位置

信号幅值

窗函数法滤波后的信号

图4

从图4可以看出,噪声部分被滤除,但这样设计的带通滤波器对去噪没有明显的效果,并且在未知采样频率的情况下对不确定信号进行FFT 变换的效果并不理想,而小波分析则克服了这种缺陷,它对随机信号具有多分辨率分析的特点,在时域和频域都有表征信号局部信息的能力,时间窗和频率窗都可以根据信号的具体形态动态调整,在一般情况下,在低频

部分可以采用较低的时间分辨率,而提高频率的分辨率,在高频情况下可以用较低的频率分辨率来换取精确的时间定位。 针对以上实验数据,这里采用的思路是先对信号进行低层分解强度去噪,然后通过阈值信号处理,得到最终的滤波信号,小波算法函数设计如下: y=xlsread('C:\Documents and Settings\Administrator\桌面\Book2.xls'); y=y';

x=xlsread('C:\Documents and

Settings\Administrator\

\Book1.xls'); x=x';

[c,l]=wavedec(y,1,'db1');%用db1小波对原始信号进行1层分解并提取系数 ca1=appcoef(c,l,'db1',1);%提取近似系数 cd1=detcoef(c,l,1);%提取1阶详细系数

cdd1=zeros(1,length(cd1));%对信号进行强制性去噪处理并显示结果 c1=[ca1 cdd1];

s1=waverec(c1,l,'db1');%多层次的一维小波重构

N=2;%N 越大,分解的层数越多,则能滤除更多噪声,同时取值过大也会导致信号失真 yd=wden(s1,'rigrsure','h','mln',N,'sym20');%rigrsure 阈值信号处理 figure;

plot(x,yd);

xlabel('运动位置'); ylabel('信号幅值');

title('小波分析滤波后的信号')

得到滤波信号如图5

23.8

23.8523.923.95

2424.0524.124.1524.2

0.0408

0.0410.04120.04140.04160.0418

0.0420.0422

0.0424运动位置

信号幅值

小波分析后滤波信号

图5

如图5所示,信号有明显改善,大部分噪声已去除,但是波形还是很不规则。假设信号是

相关文档
最新文档