f3=250;%所加噪声正弦函数的频率
[Y,fs,bits]=wavread('E:\音频2.wav');
%利用wavread产生信号的函数及采样频率
L=length(Y);t=0:1/fs:(L-1)/fs;%定义时间的范围及步长
y=0.025*sin(2*pi*f3*t); n1=floor(L/2);%所加噪声
f1=(0:n1)*fs/L;Y=Y(:,1);sound(Y,fs);%输出加噪前信号
Y1=y+Y';%给信号加噪声
FY1=abs(fft(Y1,L));FY=abs(fft(Y,L));sound(Y1,fs);%输出加噪后的信号
figure(1)
subplot(211)
plot(t(1:1000),Y(1:1000)); grid on;%加噪前信号的时域图
xlabel('时间(t)');ylabel('幅度(Y)');
title('加噪前信号波形的时域图');
subplot(212)
plot(f1,FY(1:n1+1)); grid on;%加噪前信号的频域图
xlabel('频率(f)');ylabel('幅度(FY)');
title('加噪前信号波形的频域图');
axis([0 1000 0 200]);
figure(2)
subplot(211)
plot(t(1:1000),Y1(1:1000)); grid on;%加噪后信号的时域图
xlabel('时间(t)');ylabel('幅度(Y1)');
title('加噪声后信号波形的时域图');
subplot(212)
plot(f1,FY1(1:n1+1)); grid on;%加噪后信号的频域图
xlabel('频率(f)');ylabel('幅度(FY1)');
title('加噪声后信号波形的频域图');
axis([0 1000 0 200]);
M=32;%所需频率采样点个数
Wp=0.6*pi;%通带截止频率
m=0:M/2;%阻频带上的采样点
Wm=2*pi*m./(M+1);%阻带截止频率
mtr=ceil(Wp*(M+1)/(2*pi));%向正方向舍入ceil(3.5)=4;ceil(-3.2)=-3;
Ad=[Wm>=Wp];
Ad(mtr)=0.28;
Hd=Ad.*exp(-j*0.5*M*Wm);%构造频域采样向量H(k)
Hd=[Hd conj(fliplr(Hd(2:M/2+1)))];
%fliplr函数实现矩阵的左右翻转conj是求复数的共轭
h=real(ifft(Hd));%h(n)=IDFT[H(k)]
w=linspace(0,pi,1000);%用于产生0,pi之间的1000点行矢量
H=freqz(h,[1],w);%滤波器的幅频特性图
figure(3)
plot(w/pi,20*log10(abs(H)));grid on;%参数分别是归一化频率与幅值
xlabel('归一化频率');ylabel('增益/分贝');title('滤波器的增益响应');
axis([0 1 -100 20]);
figure(4)
sf=filter(h,1,Y1);%使用filter函数对信号进行滤波
Fsf=abs(fft(sf,L));
subplot(211)
plot(t,sf)%滤波后的信号图像
xlabel('时间/秒');ylabel('幅度');title('信号滤波后时域图');
axis([0.01 0.04 -0.005 0.005]);%限定图像坐标范围
subplot(212)
plot(f1,Fsf(1:n1+1)); grid on;%滤波后的信号频域图
xlabel('频率/赫兹');ylabel('幅度');title('信号滤波后频域图');
axis([0 1000 0 50]);
2016-12-22 11:23 上传
点击文件名下载附件
1.4 MB, 下载次数: 21