从低通滤波器到高通滤波器及小波函数的构造-附Matlab源程序
🎓 作者简介:博士研究生
🔬 工作室呀:超级学长_实验室(提供各种程序开发、实验与论文指导)
💌 个人邮箱:easy_optics@126.com
⭕⭕ 目 录 ⭕⭕
- 摘要
- 一、Matlab源程序
- 二、总结
摘要
博文提供的MATLAB程序主要实现了使用滤波器求解尺度函数(scaling function)和小波函数(wavelet function)的Fourier频谱形式,并进行逆Fourier变换以获取尺度函数和小波函数的时域形式。
一、Matlab源程序
首先构造低通滤波器的Fourier形式,其Matlab程序如下:
function H = Lp_filter(w,h)
H = 0;
for k= 1:length(h)
H = H + h(k)*exp(-i*(k-1)*w);
end
H = 1/sqrt(2)*H;
通过低通滤波器求解尺度函数和小波函数的Fourier频谱形式
w = -100:100;
h = [-0.1356,0.4571,0.84277,0.25];
%h= [0.4830 0.8365 0.2241 -0.1294]
N = 100;%累次乘积的次数
%累次乘积
phi_w = 1;
for j = 1: N
phi_w = phi_w.* Lp_filter(w./2^j,h);
end
%高通滤波器Fourier变换形式
G = conj(Lp_filter(w + pi,h)).*exp(-i*w);
%小波函数Fourier变换形式
psi_w = G.*phi_w;
%逆Fourier变换获得尺度函数和小波函数,取模看尺度函数和小波函数能量。
psi = abs(ifft(psi_w));
phi = abs(ifft(phi_w));
最后显示图像结果
% 图像显示
figure(1),
subplot(1,2,1), plot(abs(phi_w)),title('尺度函数的Fourier变换的模值'),xlabel('w'),ylabel('|F\phi(w)|');
subplot(1,2,2), plot(abs(psi_w)),title('小波函数的Fourier变换模值'),xlabel('w'),ylabel('|F\psi(w)|');
figure(2),
subplot(1,2,1), plot(phi),title('尺度函数模值'),xlabel('x'),ylabel('|\phi(x)|');
subplot(1,2,2), plot(psi),title('小波函数的模值'),xlabel('x'),ylabel('|\psi(x)|');
上述程序运行结果如下图所示:
二、总结
博主简介:擅长智能优化算法、信号处理、图像处理、机器视觉、深度学习、神经网络等领域Matlab仿真以及实验数据分析等,matlab代码问题、商业合作、课题选题与指导等均可私信交流。