音频降噪Matlab仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
% 设计300Hz~3400Hz的带通预滤波器H(z)
[fenzi,fenmu]=butter(6,[300 3400]/(Fs/2));
nt = wgn(1,length(t),0.1); % 噪声
nt=nt/(max(abs(nt)));%归一化噪声
wav_noise = wav + nt;
% 对音频信号进行滤波
psd(wav_noise, 10000, Fs);
title('加噪声后的语音信号功率谱密度');
axis([0 25000 -20 10]);
figure(3);
subplotห้องสมุดไป่ตู้2,1,1);
plot(wav_after(53550:53750));
title('滤波后的语音信号时域波形');
axis([0 200 -0.3 0.3]);
title('语音信号功率谱密度');
axis([0 25000 -20 10]);
figure(2);
subplot(2,1,1); plot(wav_noise(53550:53750));
title('加噪声后的语音信号时域波形');
axis([0 200 -0.3 0.3]);
subplot(2,1,2);
t_end=1/fs *length(wav); % 计算声音的时间长度
Fs=50000; % 仿真系统采样率
t=1/Fs:1/Fs:t_end; % 仿真系统采样时间点
% 利用插值函数将音频信号的采样率提升为Fs=50KHz
wav=interp1([1/fs:1/fs:t_end],wav,t,'spline');
wav_after = filter(fenzi,fenmu,wav_noise);
figure(1);
subplot(2,1,1); plot(wav(53550:53750));
title('语音信号时域波形');
axis([0 200 -0.3 0.3]);
subplot(2,1,2); psd(wav, 10000, Fs);
wavwrite(demod_out,Fs,'SSBDemod_OUT.wav'); % 保存输出信号
subplot(2,1,2);
psd(wav_after, 10000, Fs);
title('滤波后的语音信号功率谱密度');
axis([0 25000 -20 10]);
sound(wav/max(wav), Fs); % 播放解调音频
sound(wav_after/max(wav_after), Fs); % 播放解调音频
数字信号处理
班级:1401012_
***************
学 号:140********
输入信号的时域波形及其功率谱密度:
叠加噪声后的音频信号的时域图形及功率谱密度:
经过带通滤波器的音频信号的时域和功率谱密度:
程序解读:
clc;
clear all;
close all;
[wav,fs]=audioread('GDGvoice8000.wav');
[fenzi,fenmu]=butter(6,[300 3400]/(Fs/2));
nt = wgn(1,length(t),0.1); % 噪声
nt=nt/(max(abs(nt)));%归一化噪声
wav_noise = wav + nt;
% 对音频信号进行滤波
psd(wav_noise, 10000, Fs);
title('加噪声后的语音信号功率谱密度');
axis([0 25000 -20 10]);
figure(3);
subplotห้องสมุดไป่ตู้2,1,1);
plot(wav_after(53550:53750));
title('滤波后的语音信号时域波形');
axis([0 200 -0.3 0.3]);
title('语音信号功率谱密度');
axis([0 25000 -20 10]);
figure(2);
subplot(2,1,1); plot(wav_noise(53550:53750));
title('加噪声后的语音信号时域波形');
axis([0 200 -0.3 0.3]);
subplot(2,1,2);
t_end=1/fs *length(wav); % 计算声音的时间长度
Fs=50000; % 仿真系统采样率
t=1/Fs:1/Fs:t_end; % 仿真系统采样时间点
% 利用插值函数将音频信号的采样率提升为Fs=50KHz
wav=interp1([1/fs:1/fs:t_end],wav,t,'spline');
wav_after = filter(fenzi,fenmu,wav_noise);
figure(1);
subplot(2,1,1); plot(wav(53550:53750));
title('语音信号时域波形');
axis([0 200 -0.3 0.3]);
subplot(2,1,2); psd(wav, 10000, Fs);
wavwrite(demod_out,Fs,'SSBDemod_OUT.wav'); % 保存输出信号
subplot(2,1,2);
psd(wav_after, 10000, Fs);
title('滤波后的语音信号功率谱密度');
axis([0 25000 -20 10]);
sound(wav/max(wav), Fs); % 播放解调音频
sound(wav_after/max(wav_after), Fs); % 播放解调音频
数字信号处理
班级:1401012_
***************
学 号:140********
输入信号的时域波形及其功率谱密度:
叠加噪声后的音频信号的时域图形及功率谱密度:
经过带通滤波器的音频信号的时域和功率谱密度:
程序解读:
clc;
clear all;
close all;
[wav,fs]=audioread('GDGvoice8000.wav');