资源描述
音频降噪Matlab仿真
精品文档
数字信号处理大作业
班 级: 1401012_
姓 名: 齐翔奡 _
学 号: 14010120082
输入信号的时域波形及其功率谱密度:
叠加噪声后的音频信号的时域图形及功率谱密度:
经过带通滤波器的音频信号的时域和功率谱密度:
程序解读:
clc;
clear all;
close all;
[wav,fs]=audioread('GDGvoice8000.wav');
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');
% 设计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;
% 对音频信号进行滤波
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);
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);
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]);
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); % 播放解调音频
wavwrite(demod_out,Fs,'SSBDemod_OUT.wav'); % 保存输出信号
收集于网络,如有侵权请联系管理员删除
展开阅读全文