基于matlab的语音去噪

播放语音信号;对信号做1024点FFT变换;做原始语音信号的时域图形;绘制原始语音信号的频率响应图;做原始语音信号的FFT频谱图。

clear

clc      %清屏

fs=22050;%采样频率22050

N=1024;  %采样点数

n=0:N-1;

x=audioread('wslh.wav');%读取音频

figure(1);

sound(x,fs);  %播放音频

subplot(3,1,1),plot(x);%原始语音信号时域图形

xlabel('时间');

ylabel('振幅');

title('原始语音时域图');

y=fft(x,N);    %做1024点傅里叶变换

mag=abs(y);    %求幅度值

ang=angle(y);  %求相位

f=n*fs/N;      %计算频率

subplot(3,1,2),plot(mag); %作FFT变换后的幅频图

xlabel('频率/Hz');

ylabel('振幅');

title('原始语音信号幅频图');

grid on;

subplot(3,1,3),plot(ang);

xlabel('频率/Hz');

ylabel('相位');title('原始语音信号相频图');grid on; %作FFT变换后的相频图

figure(2);%原始语音信号的频率响应

freqz(x);

figure(3)%FFT频谱图

plot(f,abs(y(1:N)));

title('原始语音信号频谱')

xlabel('频率/Hz');

ylabel('振幅');

axis([0 4500 0 3]);

你可能感兴趣的:(基于matlab的语音去噪)