数字信号处理大作业保存

一、题目要求
1.利用matlab软件对audio1211.wav音频信号进行数字信号采样,分别对采样后的信号进行时/频域分析,并提供仿真图和分析说明;
2.设计合理的数字滤波器,滤去音频信号中的蜂鸣音,给出详细设计流程,并提供频域仿真图和分析说明;
3.将数字滤波后的数字信号转换成wav格式音频文件,统一命名为audio1211proc.wav,作为附件上交。
二、设计思路
我们需要滤除掉歌曲里的蜂鸣噪声,我们直观上认为蜂鸣噪声的频率较高,而人的声音频率在一个频率范围内,只需要在频域滤除高频蜂鸣噪声即可。
我用了Matlab对音频信号进行采样,画出频谱图,观察频谱图,我们就可以知道,蜂鸣噪声的频率集中在4500——5000hz之间,而歌声的频率集中在4000hz以下,远小于蜂鸣噪声的频率。因此,我们设计一个低通滤波器,滤除蜂鸣噪声。在设计低通滤波器时,分别用了fir1窗函数法和巴特沃斯低通滤波两种方法,均得到了良好的滤除蜂鸣的音频。
三、设计过程
第一步:对音频信号进行数字信号采样,对采样后的信号进行时/频域分析。
音频采样率是一秒钟内对声音的采样次数,当今主流的采集卡上,采样频率一般分为11025hz、22050hz、24000hz、44100hz、48000hz五个等级。我们通过audioread函数得到采样频率为44100hz,并通过length函数得到采样点数为434304,与9-10s的音频,采样频率为44100hz计算出来的结果相近。通过实践验证了理论中采样频率和采样点的关系。
观察时域频域波形,我们可以明显看到蜂鸣和歌声的区别,蜂鸣噪声的频率集中在4500——5000hz之间,而歌声的频率集中在4000hz以下,远小于蜂鸣噪声的频率。
在这里插入图片描述

2.数字滤波器设计
2.1.fir1窗函数法
设计一个转折频率为4000,通带截止频率4200的低通滤波器进行滤波除噪。如下是低通滤波器衰减图像。
在这里插入图片描述

利用设计的低通滤波器进行低通滤波,我们可以从频域看到蜂鸣基本被消除,而原始信号也尽大可能性被保存。从时域看到波形的幅度有所降低,降低的部分即为蜂鸣声。
在这里插入图片描述

2.2巴特沃斯低通滤波器
设置截止频率为3000hz,输出即可得到滤除蜂鸣的声音,频域时域分析如下。
在这里插入图片描述

四、心得体会
在使用matlab进行去蜂鸣过程中,遇到了很多问题。对数字信号处理的Matlab语言不了解,matlab输出报错,低通滤波器设计等问题。在仿真过程中学到了很多东西,体会到了数字信号处理学习的魅力,知道了数字信号处理在以后工程的简单应用,对数字信号处理的内涵有了更加深刻的理解。与此同时,对matlab的功能理解更多。
五、matlab代码
clc
clear;
[y,fs]=audioread(‘audio1221.wav’);%读取音频文件
Y0=fft(y);%傅里叶变换到频域
Y00=fftshift(Y0);%中心化
figure(1);%建立第一幅图像
m=length(y);
t=0:1/fs:(m-1)/fs;
w=-fs/2:fs/m:fs/2-fs/m;
subplot(2,1,1);%将两个图画到一个图上
plot(y);
title(‘原始信号的时域波 形’);
subplot(2,1,2);
plot(w,abs(Y00));
title(‘原始信号的频域波形’);

%设计一个低通滤波器
fp=4000;%通带截止频率
fc=4200;
As=50;%阻带衰减
Ap=1;%通带纹波
%低通滤波器性能指标
wc=2pifc/fs; wp=2pifp/fs;%求归一化数字通带截止频率和阻带截止频率
wdel=wc-wp;
beta=0.112*(As-8.7);
N=ceil((As-8)/2.285/wdel);%求滤波器的阶数
wn= kaiser(N+1,beta);
ws=(wp+wc)/2/pi;
b=fir1(N,ws,wn);%利用fir1函数求出滤波器的系数
figure(5);
[B,w]=freqz(b,1);
mag=abs(B);
db=20*log10(mag/max(mag));
db1=db’;
plot(0:pi/511:pi,db1);
axis([0,4.0,-80,5]);
title(‘低通滤波器’);

%利用低通滤波器滤波
x=fftfilt(b,y);%低通滤波
X=fft(x);
xx=fftshift(X);%中心化
figure(6);
m1=length(x);
w1=-fs/2:fs/m1:fs/2-fs/m1;
subplot(2,1,1);plot(x);
title(‘滤波后信号的时域波形’);
subplot(2,1,2);plot(w1,abs(xx));
title(‘滤波后信号频域波形’);
audiowrite(‘F:\dsp大作业\audio1211proc.wav.wav’,x,fs);%输出去噪后的波形

%通过低通巴特沃斯滤波器对信号进行除噪
order=10;
fc2=3000;%低通滤波器取截止频率为3000Hz
[b,a]=butter(order,2*fc2/fs,‘low’);%调用巴特沃斯低通滤波器
denoisy_single=filter(b,a,y);%滤波得到噪音
audiowrite(‘F:\dsp大作业\audio1211proc1.wav.wav’,denoisy_single,fs);
figure(7);
subplot(2,1,1);
plot(t,denoisy_single);
title(‘滤波后信号时域图’);xlabel(‘时间’);ylabel(‘幅度’);
f9=fft(denoisy_single,m);%傅里叶变换
f10=fftshift(f9);%中心化
subplot(2,1,2);
plot(w1,abs(f10));
title(‘滤波后噪声频域图’);xlabel(‘频率’);ylabel(‘幅度’);

  • 11
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值