数字信号处理声音降噪实验

clc;clear;
[x,Fs]=audioread('HQ.m4a');%加wavplay载语音信号
 %sound(x,Fs);%回放语音信号	
[L,W]=size(x); %语音信号长度和宽度
X=fft(x);
ff=(0:L-1)/(L-1)*Fs;
subplot(421);
plot(x);
title('原始信号时域波形图');
subplot(422); 
plot(ff,abs(X));
title('原始信号频谱图');


noise=0.05*randn(L,W);
xn=x+noise;
Xn=fft(xn);
% sound(xn,Fs);%回放语音信号	
subplot(423);
plot(xn);
title('噪音信号时域图');
subplot(424);
plot(ff,abs(Xn));
title('噪音信号频谱图');
 %  第三部分   设计滤波器
fp=2000;fs=3000;
rp=0.5;rs=60;
omiga_p=2*pi*fp;         %  将数字滤波器的wp转换成模拟的
omiga_s=2*pi*fs;         %  将数字滤波器的ws转换成模拟的
[N omiga_c]=ellipord(omiga_p,omiga_s,rp,rs,'s');
[Bs As]=ellip(N,rp,rs,omiga_c,'s');
[Bz Az]=impinvar(Bs,As,Fs)          %H(s)转化为H(z)
Hk=freqz(Bz,Az,L,'whole');              %求数字滤波器的系统函数
hn=ifft(Hk,50); 
subplot(4,2,5);
stem(hn,'.');
title('滤波器单位脉冲响应h(n)');
subplot(4,2,6);
plot(ff,abs(Hk));
title('滤波器幅频响应|H(e^j^w)|');

% % %  第三部分   设计滤波器
% 
% rp=1;
% rs=40;
% d1=(10^(rp/20)-1)/(10^(rp/20)+1); 
% d2=10^(-rs/20); 
% f=[2000 4000];
% m=[1 0];
% rip=[d1 d2];
% [N, fo, mo, w]=remezord(f, m, rip, Fs) 
% hn=remez(N,fo,mo,w);
% Hk=fft(hn,L);
% subplot(425);
% stem(hn,'r.');
% title('滤波器单位脉冲序列图');
% subplot(426);
% plot(ff,abs(Hk));
% title('滤波器幅频响应曲线图');


% Bz=hn;
% Az=1;
y=filter(Bz,Az,xn);
% sound(y,Fs)
Y=fft(y);
subplot(427);
plot(y);
title('滤波后时域信号图');
subplot(428);
plot(ff,abs(Y));
title('滤波后信号频谱图');





设计原理:采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率只能用于周期性采样的采样器,对于非周期性采样的采样器没有规则限制。采样频率的常用的表示符号是fs。通俗的讲采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确显然采样率越高,计算机摄取的图片趣二多,对于原始音频的还原也越加精确。
数字信号处理声音降噪实验_第1张图片

你可能感兴趣的:(matlab,信号处理)