⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 小波去噪原理.m

📁 基于小波变换的语音增强的语音去噪的MATLAB源程序
💻 M
字号:
clc;

clear; 
%%%%%%%%%%%%小波滤波器%%%%%%%%%%%%%%%%%%
[a,b,c,d]=wfilters('db9');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%      
L=18;         %%%%%%%滤波器长度

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

L_decomposition=a;%%%低通分解滤波器
H_decomposition=b;%%%高通分解滤波器
L_construct=c;%%%%%%%低通重构滤波器
H_construct=d;%%%%%%%高通重构滤波器
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N=200;        %%%%%%%信号长度

n=1:N;       
f=100;        %%%%%%%频率
dt=0.001;     %%%%%%%抽样间隔
%%%%%%%%%%%%%%%信号%%%%%%%%%%%%%%%%%%%%%
y=10*cos(2*pi*f*n*dt).*exp(-20*n*dt);%%%%原始信号

y1=y;

noise=randn(1,20);%%%%%%%噪声信号
%%%%%%%%%%%%%%加上噪声的信号%%%%%%%%%%%%
for m=1:20
    y1(m+100)=noise(m)+y(m+100);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(1);
subplot(2,1,1);
plot(y);
title('原信号');

subplot(2,1,2);
plot(y1);
title('加上噪声的信号');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
low=conv(y1,L_decomposition);%%%卷积
low1=dyaddown(low);         %%%%%抽取低频信号

high=conv(y1,H_decomposition);%%%卷积
high1=dyaddown(high);       %%%%%%%高频信号

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(2);
subplot(2,1,1)
plot(low1);
title('低频分量');

subplot(2,1,2);
plot(high1);
title('高频分量');

%%%%%%%%%%%%%%%消噪处理%%%%%%%%%%%%%%%%%%
for m=50:65
    if abs(high1(1,m))>=0.000001
       high1(1,m)=(10^-9);
   end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

low2=dyadup(low1);     %%%%%%%插值
high2=dyadup(high1);

%%%%%%%%%%%%%%%%重构%%%%%%%%%%%%%%%%%%%%%%
low3=conv(L_construct,low2);%%%%卷积
high3=conv(H_construct,high2);

low4=wkeep(low3,N);   %取结果的中心部分
high4=wkeep(high3,N);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
signal=low4+high4;          %消噪后信号重构


figure(3);
subplot(2,1,1)
plot(y1);                                   
ylabel('y'); %原信号
title('加上噪声的信号');


subplot(2,1,2);
plot(signal);                          
ylabel('denoise'); %消噪后信号
title('消噪后的信号');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -