matlab里wavedec函数函数,常用小波函数及Matlab常用指令
时间: 2024-06-03 14:12:51 浏览: 260
wavedec函数是Matlab中用于进行小波分解的函数,常用于信号处理、图像处理等领域。它可以将一个一维或二维的信号或图像进行小波分解,得到各级小波系数和低频系数。
常用的小波函数有:
1. Haar小波:haar
2. Daubechies小波:db1, db2, ..., db20
3. Symlets小波:sym2, sym3, ..., sym20
4. Coiflets小波:coif1, coif2, ..., coif5
除了wavedec函数外,Matlab还提供了许多其他的小波处理函数,例如:
1. waverec:对小波系数进行重构
2. wenergy:计算小波系数的能量
3. wcodemat:将小波系数编码为可压缩的形式
4. wrcoef:提取指定的小波系数
常用的Matlab指令有:
1. load:加载数据
2. plot:绘制图像
3. fft:进行傅里叶变换
4. imread:读取图像
5. imwrite:保存图像
6. imshow:显示图像
7. size:获取矩阵的大小
8. reshape:重新调整矩阵的形状
9. rand:生成随机数
10. ones:生成全1矩阵
11. zeros:生成全0矩阵
12. eye:生成单位矩阵
相关问题
matlab 的wavedec函数程序
`wavedec` 是 Matlab 中用于进行小波分解的函数,以下是它的示例程序:
```matlab
% wavedec 函数的示例程序
% 输入:信号 x,小波类型 wname,分解级数 level
% 输出:小波分解系数 c 和分解结构 l
% 生成测试信号
x = rand(1,64);
% 进行小波分解
level = 3;
wname = 'db4';
[c,l] = wavedec(x,level,wname);
% 输出分解系数和分解结构
disp('小波分解系数:');
disp(c);
disp('分解结构:');
disp(l);
% 恢复信号
x_recon = waverec(c,l,wname);
% 绘制原始信号和恢复信号的图像
subplot(2,1,1);
plot(x);
title('原始信号');
subplot(2,1,2);
plot(x_recon);
title('恢复信号');
```
该程序先生成一个长度为 64 的随机信号,然后对其进行 3 级小波分解,使用 db4 小波基函数。程序输出小波分解系数和分解结构,然后使用 `waverec` 函数恢复信号,并绘制原始信号和恢复信号的图像。
注意:在使用该程序之前,需要先安装 Matlab 的小波工具箱。
matlab 的wavedec函数源程序
`wavedec` 函数是 Matlab 中用于进行小波分解的函数之一,以下是它的源程序:
```matlab
function [C,L] = wavedec(X,N,Lo_D,Hi_D)
%WAVEDEC Multilevel 1-D wavelet decomposition.
% WAVEDEC performs a multilevel 1-D wavelet decomposition
% of the signal X at level N, using the wavelet filters
% Lo_D and Hi_D (called the decomposition filters or the
% analysis filters) obtained from the wavelet wname.
%
% C = WAVEDEC(X,N,'wname') returns the wavelet decomposition
% of the signal X at level N, using 'wname'. 'wname' is a string
% containing the name of the wavelet (see WFILTERS).
% C is a vector containing the detailed coefficients (called
% the wavelet coefficients or the detail coefficients) of the
% decomposition. Length(C) = length(X) so that the approximation
% coefficients (see WAPPDEC) can be obtained using the command
% APPCOEF(C,L,'wname',N).
%
% [C,L] = WAVEDEC(...) returns the vector of wavelet
% coefficients C and the bookkeeping matrix L which contains
% the lengths of the successive subbands and the position of
% the first coefficient of each subband in C. Such a bookkeeping
% matrix is useful when you want to manipulate wavelet
% coefficients.
%
% C = WAVEDEC(X,N,Lo_D,Hi_D) returns the wavelet decomposition
% of the signal X at level N, using Lo_D and Hi_D. Lo_D and Hi_D
% are the decomposition filters.
%
% See also APPCOEF, DETCOEF, WRcoef, UPWLEV, WAVEREC.
% M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 01-Jun-95.
% Last Revision: 15-Sep-99.
% Check arguments for Extension and Shift.
%---------------------------------------------------------%
nbIn = nargin;
shift = 0;
if ischar(N)
[Lo_D,Hi_D] = wfilters(N,'d');
N = varargin{1};
nbIn = nbIn-1;
elseif ischar(Lo_D)
[Lo_D,Hi_D] = wfilters(Lo_D,'d');
shift = nargin-2;
nbIn = nbIn-2;
end
if nbIn<2 , error(message('Wavelet:wavelet:Invalid_ArgNum')); end
if ~isnumeric(N) || N<0 || fix(N)~=N
error(message('Wavelet:wavelet:Invalid_WavLevel'));
end
% Initialization.
%---------------------------------------------------------%
if rem(size(Lo_D,2),2) , Lo_D = Lo_D(:)' ; end
if rem(size(Hi_D,2),2) , Hi_D = Hi_D(:)' ; end
X = X(:)';
cA = X;
sizes = zeros(N+1,length(cA));
sizes(N+1,:) = length(cA);
Lo_D = Lo_D(:)';
Hi_D = Hi_D(:)';
for k = 1:N
[cA,cD] = dwtImpl(cA,Lo_D,Hi_D);
sizes(N+1-k,:) = length(cA);
end
C = [cA , cD];
L = diff([0 sizes(:)'-shift]);
%---------------------------------------------------------%
function [app,detail] = dwtImpl(signal,F1,F2)
% Compute sizes.
lf = length(F1);
lx = length(signal);
lx = lx + rem(lf-mod(lx,lf),lf);
ly = lx/lf;
signal(lx) = 0;
% Compute coefficients of low-pass and high-pass filters.
F1 = F1(:)';
F2 = F2(:)';
F1 = F1(:,ones(1,ly));
F2 = F2(:,ones(1,ly));
signal = signal(:);
signal = signal(ones(1,ly),:);
% Filtering.
app = sum(signal .* F1, 1);
detail = sum(signal .* F2, 1);
% Upsampling.
app = app(:)';
detail = detail(:)';
```
该函数的输入参数包括:信号 X、小波分解级数 N、小波分解滤波器的低通滤波器 Lo_D 和高通滤波器 Hi_D。输出参数包括:小波分解系数 C 和分解结构 L。
在 `wavedec` 函数中,首先会对输入参数进行检查和初始化,然后根据小波分解级数 N 和滤波器 Lo_D 和 Hi_D 对信号进行小波分解,得到小波分解系数 C 和分解结构 L。最后将 C 和 L 输出。
阅读全文