1.语音信号处理

利用windous下的录音机或其他软件录制一段自己的语音(规定:语音内容为自己的名字,以wav格式保存,如wql.wav),时间控制再2秒之内,利用MATLAB提供的函数wavread(Matlab7.0版本,高版本采用audioread函数读取音频文件)对语音信号进行采样,提供sound函数对语音信号进行回放。
[y,fs,nbits]=wavread(file),
采样值放在向量y中,fs表示采样频率,nbits表示采样位数。Wavread的更多用法请使用help命令自行查询。
2)语音信号的频谱分析
利用fft函数对信号进行频谱分析
3)受白噪声干扰的语音信号的产生与频谱分析
①白噪声的产生:
N1=sqrt(方差值)×randn(语音数据长度,2)(其中2表示2列,是由于双声道的原因)
然后根据语音信号的频谱范围让白噪声信号通过一个带通滤波器得到一个带限的白噪声信号N2;
带通滤波器的冲激响应为:
hB(n)= 其中ωc1为通带滤波器的下截止频率,ωc2为通带滤波器的上截止频率。其中下截止频率由每个人的语音信号的最高频率确定
滤波器的长度N由滤波器的过渡带确定,一般不宜太小(大于1000),α=(N-1)/2;
②信号y通过低通滤波器,得到信号为x1
低通滤波器的冲激响应为:
其中的ωc1与上面的带通滤波器的下截止频率一致,滤波器的长度N也于上面的带通滤波器一致,α=(N-1)/2
③将N1加上x1得到一个受到噪声污染的声音信号
4)用IIR滤波器(采用双线性法设计)对受污染语音信号进行滤波
5)比较滤波前后信号的波形与频谱
6)回放滤波后的语音信号

程序:

clc;clear;close;
audioread('GJQ.wav');
[d,fs]=audioread('GJQ.wav');
sound(d,fs); //播放原声音
plot(d)
y=audioread('GJQ.wav');
Yk=fft(y);
figure(1);plot(abs(Yk));title('原始信号频谱');
M=2001; //滤波器长度
n=1:M;L=(M-1)/2;
wh=0.9;wl=0.3; //带通信号上下限
h2=wh*sinc(wh*(n-L))-wl*sinc(wl*(n-L));
h=wl*sinc(wl*(n-L));
H2k=fft(h2);
Hk=fft(h);
figure(2);plot(abs(H2k));title('H2k');
figure(3);plot(abs(Hk));title('HK');
c=5.9;%噪声的均方值要比语音信号的值大
N1=177151;%也可以通过求取length(y)直接得到N1
V=2;
x=sqrt(c)*randn(N1,V);%N1的长度取决于y的长度,数据长度与语音长度一致,V是维度,双通道是2,单通道是1
Xk=fft(x);
figure(4),plot(abs(Xk));title('Xk');
s1=fftfilt(h,y);
Ns=fftfilt(h2,x);
Nk=fft(Ns);
figure(5);plot(abs(Nk));title('Nk'); //噪声频谱图
y1=s1+Ns;
sound(y1,fs); //含噪音,比原声音大
Y1k=fft(y1);
figure(6),plot(abs(Y1k));title('Y1k'); //加噪语音频谱图
s=fftfilt(h,y1);
Sk=fft(s);
figure(7),plot(abs(Sk)),title('Sk');
fp=4500;fss=6000;rp=2;rs=30;
wp1=2*pi*fp/fs;% 求出通带数字角频率wp1
wss1=2*pi*fss/fs;% 求出阻带数字角频率wss1
op1=2*fs*tan(wp1/2)  ;
os1=2*fs*tan(wss1/2)  ; %预畸变处理,求出模拟角频率op1和os1
[N,wc]=buttord(op1,os1,rp,rs,'s') % 求出最小阶数N和截止频率wc
[z,p,k]=buttap(N);
[ba,aa]=zp2tf(z,p,k);  % 求出归一化模拟滤波器的分子分母系数ba和aa
[b,a]=lp2lp(ba,aa,wc);  % 求出截止频率为wc的模拟滤波器的分子分母系数b和a
[bz,az]=bilinear(b,a,fs);
[H,f]=freqz(bz,az);
ma=20*log10(abs(H));mp=angle(H)*180/pi;
figure(8);
subplot(2,1,1);plot(f/pi,ma)
subplot(2,1,2);plot(f/pi,mp)
s2=filter(bz,az,y1);
S2k=fft(s2);
figure(9);plot(abs(S2k));title('S2k');
sound(s2,fs);//消噪后的

2.信号分析

研究采样频率fc和数据持续时间Tp与频率分辨率的关系,首先给出不同的采样频率对于信号频谱分析的影响,包括满足采样定理和不满足采样定理的情况下,信号频谱的变换情况(至少2种数值的情况);其次选择在满足采样定理的情况下,在一定的Tp情况下,f1和f2相差多少的时候可以分辨出来(至少3种数值情况);最后在f1和f2不变的情况下,选择不同的Tp,看Tp在什么情况下,不能分辨2个信号的频谱(至少3种数值的情况),以上都可以与理论值相比较以验证理论的正确。

fc=1000;Tp=1;
t=0:1/fc:Tp;
f1=100;f2=200;
x=sin(2*pi*f1*t)+cos(2*pi*f2*t);
XK=fft(x);
plot(abs(XK));title('tp=1')

改变各个参数
其次选择在满足采样定理的情况下,在一定的Tp情况下,f1和f2相差多少的时候可以分辨出来(至少3种数值情况);
最后在f1和f2不变的情况下,选择不同的Tp,看Tp在什么情况下,不能分辨2个信号的频谱(至少3种数值的情况),以上都可以与理论值相比较以验证理论的正确。

数字信号处理实验(MATLAB)相关推荐

  1. 数字信号处理实验matlab版答案刘舒帆,数字信号处理实验(MATLAB版) 刘舒帆,费诺,陆辉 西安电子科技大学出版社 9787560620060...

    商品描述: 基本信息 书名:数字信号处理实验(MATLAB版) 原价:31.00元 作者:刘舒帆,费诺,陆辉 著 出版社:西安电子科技大学出版社 出版日期:2013-7-1 ISBN:97875606 ...

  2. 数字信号处理实验matlab版答案,数字信号处理习题答案及matlab实验详解.pdf

    数字信号处理习题答案及matlab实验详解.pdf 第一章 参考答案: 1 (1)2 2 14 ,有理数,所以周期为 14 0 3  3 7 2 2 (2 ) 12 ,无理数,非周期  ...

  3. dft对称性 matlab实验,数字信号处理实验 matlab版 离散傅里叶变换的性质

    数字处理实验 matlab版 山大学生最适用 本人自己写的 因为时间比较久了 不能完全保证出现代码都能运行 但95%还是能保证的 谢谢 实验13 离散傅里叶变换的性质 (完美格式版,本人自己完成,所有 ...

  4. matlab非线性相位fir,数字信号处理实验(MATLAB版)实验23线性相位FIR数字滤波器.ppt...

    一.实验目的 (1)加深对线性相位FIR数字滤波器特性的理解. (2)掌握线性相位滤波器符幅特性和零极点分布的研究方法. (3)了解用MATLAB研究线性相位滤波器特性时程序编写的思路和方法. 二.实 ...

  5. matlab非线性相位fir,数字信号处理实验 matlab版 线性相位FIR数字滤波器

    A=2*h(n)*cos(((N+1)/2-n)'*w)-mod(N,2)*h(L+1); type=2-mod(N,2); elseif all(abs(h(n)+h(N-n+1))<1e-1 ...

  6. Matlab验证dtft共轭性质,数字信号处理实验4重点.docx

    深 圳 大 学 实 验 报 告 课程名称: 数字信号处理实验 实验项目名称: 实验4 学院: 信息工程学院 专业: 电子信息工程 指导教师: 陈佳义 报告人: 学号: 班级: 实验时间: 11.12 ...

  7. matlab fft谱分析实验报告,数字信号处理实验报告-FFT算法的MATLAB实现.doc

    数字信号处理实验报告-FFT算法的MATLAB实现.doc 数字信号处理 实验报告实验二FFT算法的MATLAB实现一.实验目的通过本实验的学习,掌握离散傅立叶变换的理论,特别是FFT的基本算法以及其 ...

  8. matlab数字信号处理实验报告,数字信号处理实验报告一 离散信号及其MATLAB实验...

    数字信号处理 离散信号及其MATLAB实验 南昌航空大学实验报告 2012 年 04 月 06 日 课程名称: 数字信号处理 实验名称: 离散信号及其MATLAB实现 班级: 090423班 学号: ...

  9. 全相位数字信号处理方法及matlab实现,数字信号处理及matlab实现_实验报告册.doc...

    数字信号处理及matlab实现_实验报告册.doc 数字信号处理及MATLAB实现实验报告实验人孙敬贤实验1离散时间信号产生及频谱分析一.实验目的㈠掌握MATLAB产生常用离散时间信号的产生方法.㈡掌 ...

  10. matlab的dft谱分析,数字信号处理基于matlab(用DFT作谱分析,窗函数的设计)

    数字信号处理基于matlab(用DFT作谱分析,窗函数的设计) 1实验一用DFT作谱分析X11111X212344321N108X3COSN1PI/4N208X4SINN2PI/8FIGURESUBP ...

最新文章

  1. QT Creator 版本大全及下载地址
  2. 顺序表-给定的顺序表L中删除元素值在x到y(x<=y)之间的所有的元素
  3. 【学时总结】◆学时·VIII◆ 树形DP
  4. C# 笔记 .net与C#简单说明
  5. C语言学习之用*打印菱形
  6. 【sklearn学习】集成算法之梯度提升树GBDT
  7. poi doc转docx_编写简历及Python转Word文档为Pdf(续)
  8. mysql 源码设计,java+mysql大学网络社区平台设计+源代码
  9. linux安装gd,linux下 安装GD
  10. 网页设计制作CSS实现隔行换色两种方法
  11. AE Pixel Sorter 2 for Mac破解教程
  12. IonIcons图标大全
  13. Python 实现 pdf转图片 和 图片转pdf
  14. java生成数字字母组合_java生成随机数字和字母组合
  15. SQLSERVER2012 保存阿拉伯文字乱码的问题
  16. pythonembed版是什么意思_HTML中embed什么意思?有哪些作用?(附代码)
  17. 省市区镇(可以选四级)联动点击自动展开下一级
  18. 助力新冠抗原检测产品规模化、智能化生产,慧灵科技推出整体解决方案
  19. hadoop不在sudoers文件中。此事将被报告。 解决方法
  20. 用oracle的rollup函数进行合计操作

热门文章

  1. php防止视频资源被下载
  2. golang之web编程入门
  3. 记:用notepad2替换系统自带记事本notepad
  4. html5留言板网页设计,网页设计制作-留言板
  5. java简单的小程序_编写一个简单的入门java小程序
  6. CSS设置颜色的几种方式
  7. mysql必知必会心得_SQL必知必会知识总结
  8. 二级c语言 文件题,二级C语言题库文件.doc
  9. Python练习题和答案
  10. ofo这事吧,其实也挺好的