当前位置:网站首页>MATLAB:去除音频信号噪音
MATLAB:去除音频信号噪音
2022-04-22 06:08:00 【li星野】
MATLAB:去除音频信号噪音
实验内容:
获取一段带噪声的语音或音乐信号,输出无噪声的信号。
代码:
%读音频test,添加噪声后滤除噪声
clear;clc;
[audio,fs]=audioread('test.wav');%声音读取audio是读出数据 fs为音频文件的采样率
audio = audio(:,1); %双通道变单通道
n=length(audio);
T = 1/fs;%采样间隔
t = (0:n-1)*T;%时间轴
f = (0:n-1)/n*fs;%频率轴
%快速傅里叶变换
audio_fft=fft(audio,n)*T;
%加噪声
tt =(1:n);
noise=0.02*cos(8000*2*pi/fs*tt');%噪声
%noise=0.01*randn(n,1);%加噪声
s_noise=fft(noise,n);
abs_noise=abs(s_noise);
figure(3);
subplot(2,1,1); plot(t,noise);
xlabel('时间/s');ylabel('幅度');
title('噪声时域波形'); grid on;
subplot(2,1,2);
% plot(f(1:n-1),abs_noise(1:n-1));
plot(f,abs_noise);
title('噪声功率谱');
grid on;
s=audio+noise;%加噪声
s_fft=fft(s,n);
%设计IIR低通滤波器
rp=1; %设置通带波纹系数
rs=50; %设置阻带波纹系数
Ft=7000; %设置阻带频率
Fp=6500; %设置通带频率
Fs=20000; %设置抽样频率
wp=Fp/(Fs/2);
ws=Ft/(Fs/2); %求出待设计的模拟滤波器的边界频率
[N,wc]=buttord(wp,ws,rp,rs); %低通滤波器的阶数和截止频率
[b,a]=butter(N,wc); %S域频率响应的参数即:滤波器的传输函数
fprintf('巴特沃斯滤波器 N= %4d\n',N); %显示滤波器阶数
figure(2);
[h,w]=freqz(b,a);%低通滤波器特性
plot(w*Fs/(2*pi),20*log10(abs(h)));xlabel('f/Hz');
axis([0 10000 -50 2]);
title('IIR低通滤波器');grid on;
z=filter(b,a,s);%使用filter函数对信号进行滤波
z_fft=fft(z); %滤波后的信号频谱
figure(1);
%绘出原始音频时域波
subplot(2,3,1);plot(t,audio);
xlabel('时间/s');ylabel('幅度');
title('初始信号波形'); grid on;
%绘出原始音频频域频谱
subplot(2,3,4);
audiof = abs(audio_fft);
plot(f(1:(n-1)/2),audiof(1:(n-1)/2));
title('初始信号频谱');
xlabel('频率/Hz');
ylabel('幅度');
grid;
%绘出加噪音频时域波
subplot(2,3,2);plot(t,s);
title('加噪声后信号波形');xlabel('时间/s');ylabel('幅度');grid on;
%绘出加噪音频频域频谱
subplot(2,3,5);sf = abs(s_fft);
plot(f(1:n-1),sf(1:(n-1)));
xlabel('频率/Hz');ylabel('幅度');title('加噪声后信号信号频谱');grid on;
%绘出滤波音频时域波
subplot(2,3,3);plot(t,z);axis([ 0 10 -0.04 0.04]);
title('低通滤波后的信号波形');xlabel('时间/s');ylabel('幅度');grid on;
%绘出滤波音频频域波
subplot(2,3,6);zf = abs(z_fft);
plot(f(1:(n-1)/2),zf(1:(n-1)/2));
title('低通滤波后信号的频谱');xlabel('频率/Hz');ylabel('幅度');grid on;
audio_final = [audio;s;z];%原始语音,加噪语音,滤波语音的合成音频矩阵
sound(audio_final,fs); %播放语音
图形:



版权声明
本文为[li星野]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_43441284/article/details/111188114
边栏推荐
- Remplacer Fe1. 1S hub READER CARD Master Control Chip - ma8601
- I didn't dare to think about it before
- PMSM FOC控制 Matlab/Simulink仿真之反Park变换
- 消防设备光纤联网CAN转光纤转换器
- Audio type 523 + VGA + 5 + HDC to 5 + VGA
- Is there any difference in the worst impedance processing you have encountered?
- [蓝桥杯复习] 直线
- 机器人系统中CAN卡的应用
- 如果有一种设计不增加成本又能改善信号质量
- The same via will have different impedance???
猜你喜欢

机器人系统中CAN卡的应用

CS5268开发TypeC转HDMI+VGA+PD+U3+3.5音频五合一扩展音视频转换方案参考设计

The user-defined textview displays the copy below and the corresponding pinyin control above

Dcoker安装

CAN光端机在消防水炮中的应用

STM32学习记录0003——STM32芯片解读

USBCAN卡在动力电池组EOL测试系统中CAN总线的应用

Inverse Park transform of PMSM FOC control MATLAB / Simulink simulation

GridView of QML realizes sliding grid layout

协方差与协方差矩阵
随机推荐
CAN总线记录诊断助手
Cs5202 chip specification 𞓜 cs5202 replaces cs5212 | HDMI to VGA chip
PCBA上電容開裂短路,怎麼又是設計的錯?
HDMI切换器方案|3进1出HDMI切换器|5进1出HDMI2.0切换器AG7111设计电路
PMSM FOC控制 Matlab/Simulink仿真之Clark变换
Decomposition of matrix -- LU decomposition
DP转HDMI方案|CS5216方案应用|CS5216设计方案
LwIP 1.4.1中文注释源码
CS5268开发TypeC转HDMI+VGA+PD+U3+3.5音频五合一扩展音视频转换方案参考设计
Scheme selection table of USB audio chip / typec audio and video processing chip
QT basic knowledge summary (continuous refresh)
MA8608奇岩USB 2.0高速4端口USB HUB集线器控制器芯片方案
[蓝桥杯复习] 生命之树
Tencent cloud Internet of things - gateway device experience
Typec转HDMI+PD3.0+U3+U2+SD/TF读卡拓展七合一方案设计电路|CS5266+MA8621设计参考电路
Inverse Clark transform of PMSM FOC control MATLAB / Simulink simulation
STM32学习记录0005——JLINK下载与调试
RT-Thread 传感器软件包归类
Easy to use flow layout
51单片机:D/A数模转换实验