matlab信号处理学习总结(5)

2019-03-15 12:26

fp1=3;fs1=10;f2=40;Fs=100;t=0:1/Fs:4 x=sin(2*pi*t*fp1)+.25*sin(2*pi*t*f2) plot(t,x) ;n=50;

b=fir1(n,2*fs1/Fs,hamming(n+1)) y=filter(b,1,x);plot(t,x,t,y) yz=filtfilt(b,1,x);plot(t,x,t,yz)

5 小波去噪

fp1=3;fs1=10;f2=40;Fs=100;t=0:1/Fs:4 x=sin(2*pi*t*fp1)+.25*sin(2*pi*t*f2) [c,l]=wavedec(x,3,'db6'); a3=wrcoef('a',c,l,'db6',3); plot(t,a3,'r',t,y,'g') 可以看出效果很好。

6 自适应 lms滤波器 kalman filter rls ,lms,adapltkalman

6.1 自适应 lms滤波器

[y,e,s]=adaptlms(x,d,s);%x为输入,y为输出,d为期望信号,e为误差信号,s包

含自适应滤波器的结构体。s=initlms(h0,Mu),ho为滤波器系数的初始值;Mu为步长参数。

6.2 自适应卡尔曼滤波器 Y = adaptkalman(X,D,S)

例子1: 自适应 lms算法:31阶 fir滤波器系统辨识。(进行 500次迭代)

x = 0.1*randn(1,500); % Input to the filter

b = fir1(31,0.5); % FIR system to be identified

d = filter(b,1,x); % Desired signal

w0 = zeros(1,32); % Initial filter coefficients

mu = 0.8; % LMS step size

S = initlms(w0,mu);

[y,e,S] = adaptlms(x,d,S);

stem([b.',S.coeffs.']);

legend('Actual','Estimated');

title('System Identification of an FIR filter');grid on 例子 2 自适应卡尔曼滤波器

x = 0.1*randn(1,500); % Input to the filter

b = fir1(31,0.5); % FIR system to tbe identified

d = filter(b,1,x); % Desired signal

w0 = zeros(1,32); % Initial filter coefficients

K0 = 0.5*eye(32); % Initial state error correlation matrix

Qm = 2; % Measurement noise covariance

Qp = 0.1*eye(32); % Process noise covariance

S = initkalman(w0,K0,Qm,Qp);

[y,e,S] = adaptkalman(x,d,S);

stem([b.',S.coeffs.']);

legend('Actual','Estimated');

title('System Identification of an FIR filter via Kalman filter');grid on;

小波学习 3 小波变换

是一种信号的时间—尺度(时间—频率)分析方法,它具有多分辨率分析

(Multi-resolutionAnalysis)的特点,而且在时频两域都具有表征信号局部特征的能力, 是一种窗口大小固定不变,但其形状可改变,时间窗和频率窗都可以改变的时频局部化分 析方法。即在低频部分具有较高的频率分辨率和较低的时间分辨率,在高频部分具有较高 的时间分辨率和较低的频率分辨率,很适合于探测正常信号中夹带的瞬态反常现象并展示 其成分,所以被誉为分析信号的显微镜。

在实际的信号处理过程中,尤其是对非平稳信号的处理中,信号在任一时刻附近的频

域特征都很重要。如柴油机缸盖表面的振动信号就是由撞击或冲击产生的,是一瞬变信号, 单从时域或频域上来分析是不够的。这就促使人们去寻找一种新方法,能将时域和频域结

合起来描述观察信号的时频联合特征,构成信号的时频谱。这就是所谓的时频分析法,亦 称为时频局部化方法。 5 小波分析和小波包的区别

小波包分解是在小波基础上发展的,比小波分解更高级,对信 号的分解重构更能体 现多分辨率的特征,你应该看看MALLAT算法,看看它们的分解示意图

为了克服小波分解在高频段的频率分辨率较差,而在低频段的时间分辨率较差的缺点, 人们在小波分解的基础上提出了小波包分解。小波包分解提高了信号的时频分 辨率。是一 种更精细的信号分析方法。

由于多分辨率分析只对低频进行分解,对高频部分则保留不动,为了分析振动信号的 高频部分,则用小波包分析,它对低频和高频部分进行再分解. 1 wavemenu,打开图形界面窗口 2 常用小波基函数 常用的

haar,’db1’,’db2’,’bior1.3’,’bior2.4’,’bior2.6’,’coif4’

小波家族:

Daubechies系列:'db1' or 'haar', 'db2', ... ,'db10', ... , 'db45' Coiflets系列:'coif1', ... , 'coif5'

Symlets系列:'sym2', ... , 'sym8', ... ,'sym45' Discrete Meyer:系列'dmey'

Biorthogonal系列: 'bior1.1', 'bior1.3', 'bior1.5', 'bior2.2', 'bior2.4', 'bior2.6', 'bior2.8','bior3.1', 'bior3.3', 'bior3.5', 'bior3.7','bior3.9', 'bior4.4', 'bior5.5', 'bior6.8'

Reverse Biorthogonal系列:'rbio1.1', 'rbio1.3', 'rbio1.5','rbio2.2', 'rbio2.4', 'rbio2.6', 'rbio2.8','rbio3.1', 'rbio3.3', 'rbio3.5', 'rbio3.7','rbio3.9', 'rbio4.4', 'rbio5.5', 'rbio6.8'

3 cwt 一维连续小波变换函数

Z=cwt(y,scale,’mexh’,’plot’);墨西哥帽函数名称为mexh,其中为所用函数的 尺度,一般取 1:32,1:64,1:48等。

例子 1 连续小波变换。

t=0:0.03:2*pi;y=sin(t.^2);plot(t,y); A=1:32;z=cwt(y,A,'mexh','plot');

Surf(y,a,z);shading flat;axis([0,2*pi,0,32,min(z(:)),max(z(:));

例子 2 已知一信号 f(t)=3sin(100πt)+2sin(68πt)+ 5cos(72πt),且该信号混有 白噪声,对该信号进行连续小波变换。小波函数取db3,尺度为1、1.2、1.4、1.6、…、3。

t=0:0.01:1;

f=3*sin(100*pi*t)+2*sin(68*pi*t)+5*cos(72*pi*t) +randn(1,length(t)); coefs=cwt(f,[1:0.2:3],′db3′,′plot′); title(′对不同的尺度小波变换系数值′);

Ylabel(′尺度′); Xlabel(′时间′); 程序输出结果如图 1.11所示。

4 离散小波变换可以用 dwt、dwt2函数实现。(属于单层分解)

[ca,cd]=dwt(x,’mexh’);x为原始数据。Ca为能描述接近原波的小波系数,cd

为详细信息,通常前者对应于低频,后者对应于高频部分。

例子 1 生成一组被信号污染的数据,试对其进行离散小波分解,并对结果进行离散小波 变换,反演出原函数,在观察反演结果。

x=0:0.002:2*pi;y=sin(x.^2);r=0.1*randn(size(x)); y1=1=y+r;subplot(211);plot(x,y1); [ca,cd]=dwt(y1,’db4’);

subplot(223),plot(ca0);subplot(224),plot(cd);

y2=idwt(ca,cd,’db4’);norm(y1-y2),检验反变换对信号的还原程度。

经过和原信号比较,基本上还原了原始信号,如果需要较好的降噪,则需要进行多次小 波分析

(高亮注释 Administrator 2010-5-30 20:19:35 空白)

5 小波分解与信号重构

4.1 wavedec()小波信号分解函数,可以进行多层分解。

[c,l]=wavedec(x,n,fun),x为原始信号,n分解的层数,fun所选的小波基函数,可选用 haar,’db1’,’db2’,’bior1.3’,’bior2.4’,’bior2.6’,’coif4’等。 [C,L] = WAVEDEC(X,N,Lo_D,Hi_D),

Lo_D is the decomposition low-pass filter and Hi_D is the decomposition high-pass filter.

4.2 提取小波系数 (这一步不是必须得)。

由分解后的c,l提取近似系数 CA和细节系数 CD可以分别由 appcoef()和 detcoef() 函数实现.其调用格式 CAn=appcoef(c,l,fun,n);cDi=detcoef(c,l,i),提取第 i段细节 系数。其中近似系数 CA有可能为没有被污染的信号。

4.3信号重建 wrcoef

由得出的近似系数和细节系数重建原信号则可以略去部分噪声信息,信号重建函数可以 使用

a(n)/d(n)=wrcoef(类型,c,l,fun,n),其中类型可以选取’a’,’d’,选择近似系数 可以实现信号降噪。a表示近似系数,d表示详细信息。 例子1 对例子1实现3次小波分解

[c,l]=wavedec(y1,3,’db6’); 用 db6方法

a3=wrcoef(‘a’,c,l,’db6’,3);plot(a3);figure;3为

[c,l]=wavedec(y1,3,’db2);a3=wrcoef(‘a’,c,l,’db2’,3);plot(a3) ;用 db2方 法

4,4 upcoef 直接从一维小波系数重建。 Y = upcoef(O,X,'wname',N) Y = upcoef(O,X,'wname',N,L) Y = upcoef(O,X,Lo_R,Hi_R,N)

其中 O取’a’,或者’d’.

5 wfilters小波滤波函数

第一种格式:[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters('wname')

Lo_D, 分解的低通滤波器。Hi_D:分解的高通滤波器。Lo_R: 重构的的低通滤波器。Hi_R: 重构的高通滤波器

第二种格式:[F1,F2] = wfilters('wname','type')

Lo_D and Hi_D,(Decomposition filters) ,If 'type' = 'd' Lo_R and Hi_R,(Reconstruction filters),If 'type' = 'r'

Lo_D and Lo_R,(Low-pass filters),If 'type' = 'l' Hi_D and Hi_R,(High-pass filters),If 'type' = 'h'

6 快速小波变换 FWT

7 wden-自动一维小波的去噪函数。


matlab信号处理学习总结(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《天鹅的故事》课堂实录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: