matlab语音信号处理/滤波器降噪/时域频域、归一化图谱

前言

matlab语音信号处理课程设计,我自己在做的时候想要借鉴,发现在csdn付费下载的一个有用的都没有,我更愿意免费分享给大家


一、题目要求

◆1语音信号处理

采集语音信号(可用手机自带的录音机录),画出其时域波形,并对其进行频谱分析。(加入噪声或者伴奏,画时域波形,频谱。)设计数字滤波器,用滤波器对信号进行滤波,用滤波器对信号进行滤波。回放语音信.....
画出采样后语音信号的时域波形和频谱图,画出滤波器的频率响应,画出滤波后信号的时域波形和频谱。
(主要函数:audioread ( matlab7:wavread),ft,ellipord, filter, sound等等)
 

二、使用步骤

代码如下

clc;
clear all;
%% 原始语音信号
[s1,fs]=audioread('千月兔 - 千里邀月.mp3');
s1=s1(:,1); % 单声道
t=(0:length(s1)-1)/fs; % 时间
figure
subplot(211)
plot(t,s1)
title('原始语音信号');
ylabel('幅度');
xlabel('时间');
% 傅里叶变换
P=fft(s1);
subplot(212)
plot(abs(P)); % 双边傅里叶频谱图
title('原始语音信号幅频特性');
ylabel('幅度');
xlabel('频率/Hz');
disp('已暂停,按任意键结束')
pause;
sound(s1,fs);

disp('已暂停,按任意键结束')
pause;
%% 加入高斯白噪声
% 噪声:SNR=10
r1=awgn(s1,10,'measured');
figure
subplot(211)
plot(t,r1)
title('加入噪声后的语音信号');
ylabel('幅度');
xlabel('时间');
% 傅里叶变换
P=fft(r1);
subplot(212)
plot(abs(P));
title('加入噪声后的语音信号幅频特性');
ylabel('幅度');
xlabel('频率/Hz');
disp('已暂停,按任意键结束')
pause;
sound(r1,fs);
disp('已暂停,按任意键结束')
pause;
%% 数字滤波器滤波
% 使用4阶,0.48的截止频率和30 dB纹波的切比雪夫窗口。
%% FIR低通滤波器实现
bhi = fir1(4,0.48,'low',chebwin(5,30));
figure
freqz(bhi,1)
outhi = filter(bhi,1,r1); % 滤波器

figure
subplot(211)
plot(t,outhi)
title('FIR滤波器后的语音信号');
ylabel('幅度');
xlabel('时间');

P=fft(outhi);
subplot(212)
plot(abs(P));
title('FIR滤波器后的语音信号幅频特性');
ylabel('幅度');
xlabel('频率/Hz');
disp('已暂停,按任意键结束')
pause;
sound(outhi,fs);

幅频响应图:

归一化图谱(反映滤波器性能)

音频可以自己设定,往matlab一拖对应位置复制好完整文件名称就行 

答辩的话一般也就问问代码用了哪些函数、有什么意思、是啥滤波器、滤波器特点、阶数选择原因等等


总结

挺简单的一段代码,自己弄的时候一窍不通,还是平时学的太少,有错误不足之处还请评论区多多指教,希望能为后来者提供一点帮助吧,2022.1.24

(后记:好久没登陆这个号,没想到这么多人看了,也没想到资源下载还是有限制,平台问题我也没办法唉2023.4.29)

  • 12
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值