MATLAB课程设计

发布 2022-10-01 01:37:28 阅读 8930

题目:基于matlab的语音信号采集。

专业:信息工程。

班级:xxx

姓名:xxx

学号:xxx

教师:xxx

2024年1月。

基于matlab的语音信号采集。

1 **软件介绍。

matlab是一种交互式的、以矩阵为基础的软件开发环境,它用于科学和工程的计算与可视化。matlab的编程功能简单,并且很容易扩展和创造新的命令与函数。应用matlab可方便地解决复杂数值计算问题。

matlab具有强大的simulink动态**环境,可以实现可视化建模和多工作环境间文件互用和数据交换。simulink支持连续、离散及两者混合的线性和非线性系统,也支持多种采样速率的多速率系统;simulink为用户提供了用方框图进行建模的图形接口,它与传统的**软件包用差分方程和微分方程建模相比,更直观、方便和灵活。用户可以在matlab和simulink两种环境下对自己的模型进行**、分析和修改。

用于实现通信**的通信工具包(communication toolbox,也叫commlib,通信工具箱)是matlab语言中的一个科学***包,提供通信领域中计算、研究模拟发展、系统设计和分析的功能,可以在matlab环境下独立使用,也可以配合simulink使用。另外,matlab的图形界面功能gui(graphical user interface)能为**系统生成一个人机交互界面,便于**系统的操作。因此,matlab在通信系统**中得到了广泛应用,本文也选用该工具对数字调制系统进行**。

2基于matlab的语音信号采集与处理方案的制定。

1). 语音信号的采集及分析。

基于声卡进行数字信号的采集。将话筒插入计算机的语音输入插口上,启动录音机。按下录音按钮,对话筒说话,说完后停止录音。

要保存文件时,利用了计算机上的a/d转换器,把模拟的声音信号变成了离散的量化了的数字信号,放音时,它又通过d/a转换器,把保存的数字数据恢复为原来的模拟的声音信号。在 matlab软件平台下可以利用函数w**read对语音信号进行采样,得到了声音数据变量x1,同时把x1的采样频率fs=22050hz和数据位nbits=16bit放进了matalb的工作空间。图figure 1为原始语音信号的时域图形。

从图中可以看出在时域环境下,信号呈现出6不规则的信号峰值。通过freqz函数绘制原始语音信号的频率响应图figure 2 。然后对语音信号进行频谱分析,在matlab中可以利用函数fft对信号行快速傅里叶变换,得到信号的频谱图figure 3,从图中可以看出对各个频点上的随机信号在频域进行抽样 ,抽样频率为 22050hz。

2). 给原始信号加上一个高频噪声。

在matlab中人为设计一个固定频率5500hz的噪声干扰信号。噪声信号通常为随机序列,在本设计中用正弦序列代替,干扰信号构建命令函数为d=[au*sin(2*pi*5500*t)]'给出的干扰信号为一个正弦信号,针对上面的语音信号 ,采集了其中一段。再对噪音信号进行频谱变换得到其频谱图,从图中可以看出干扰信号,在4000hz和 6000hz频点处有一高峰 ,其中 5500hz 正是本设计所要利用的。

3 基于matlab的语音信号采集与处理方案的设计。

设计步骤:1)打开matlab软件;

2)点击file新建m文件;

3)在编辑框内写入系统matlab程序;

4)点击保存并运行程序,显示**图形。

4 基于matlab的语音信号采集与处理的**与调试。

系统**实现。

1.用matlab对原始语音信号进行分析,画出它的时域波形和频谱。

程序:fs=22050语音信号采样频率为22050

x1=readw**('c:\users\daibin\desktop\w**');读取语音信号的数据,赋给变量x1,sound(x1,22050**语音信号。

y1=fft(x1,1024对信号做1024点fft变换。

f=fs*(0:511)/1024将0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给f

figure(1创建图形窗1

plot(x1做原始语音信号的时域图形。

title('原始语音信号');

xlabel('time nx轴的名字是“time n”

ylabel('fuzhi ny轴的名字是“fuzhi n”

figure(2)

freqz(x1绘制原始语音信号的频率响应图。

title('频率响应图')

figure(3)

subplot(2,1,1创建两行一列绘图区间的第1个绘图区间。

plot(abs(y1(1:512做原始语音信号的fft频谱图。

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

subplot(2,1,2);

plot(f,abs(y1(1:512abs是绝对值,plot是直角坐标下线性刻度曲线。

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

xlabel('hz');

ylabel('幅值');

时域波形和频谱:

图1 原始语音信号。

图2 语音信号频率响应图。

图3 原始语音信号fft与信号频谱。

2. 给原始的语音信号加上一个高频余弦噪声,频率为5500hz。对加噪后的语音进行分析,并画出其信号时域和频谱图。

程序:fs=22050;

x1=w**read('c:\users\daibin\desktop\w**读取语音信号的数据,赋给变量x1

f=fs*(0:511)/1024将0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给f

t=0:1/fs:(length(x1)-1)/fs; %将0到x1的长度减1后的值除以fs的值,且步长为1/fs的值,的序列的值,赋予t

au=0.03噪声幅值。

d=[au*sin(2*pi*5500*t所加的噪声是正弦信号。

x2=x1+d将正弦信号噪声加在语音信号上。

sound(x2,22050**语音信号。

y1=fft(x1,1024对信号y1做1024点fft变换。

y2=fft(x2,1024对信号y2做1024点fft变换。

figure(1创建图形窗1

plot(t,x2做加噪后的信号时域图形(绘出t对x2的线性图)

title('加噪后的信号');

xlabel('time nx轴的名字是“time n”

ylabel('fuzhi ny轴的名字是“fuzhi n”

figure(2创建图形窗2

subplot(2,1,1创建两行一列绘图区间的第1个绘图区间。

plot(f,abs(y1(1:512做原始语音信号的频谱图。

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

xlabel('hzx轴的名字是“time n”

ylabel('fuzhiy轴的名字是“fuzhi”

subplot(2,1,2创建两行一列绘图区间的第2个绘图区间。

plot(f,abs(y2(1:512做加噪后的语音信号的频谱图(abs是绝对值,plot是直角坐标下线性刻度曲线)

title('加噪后的信号频谱');

xlabel('hzx轴的名字是“time n”

ylabel('fuzhiy轴的名字是“fuzhi”

时域波形和频谱:

图4 加噪后的信号时域图。

图5 原始信号与加噪后信号频谱对比。

与原始信号对比,区别:

先原始信号没加噪音之前0到2000有幅值,在4000到6000之间没有幅值,但是在加了噪音之后4000到6000之间出现最大幅值12,超出正常值。如图5原始信号与加噪后信号频谱对比图所示。

5体会。通过matlab课程设计,我对matlab这个**软件有了更进一步的认识和了解。在设计过程中,我通过自己摸索,查阅资料,并且在老师的指导下完成了:

语音信号的采集及分析;给原始信号加上一个高频噪声;设计一个滤波器,滤除高频噪声;并最终将课程设计报告总结完毕。

在整个设计过程中我懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力, 使自己充分体会到了在设计过程中的成功喜悦。虽然这个设计做的不怎么好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。

在没有做课程设计以前,觉得课程设计只是对知识的单纯总结,但是通过这次课程设计发现自己的看法有点太片面,课程设计不仅是对前面所学知识的一种检验,也是对自己能力的一种提高,通过这次课程设计使自己明白了原来的那点知识是非常欠缺的,要学习的东西还很多,通过这次课程设计,明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。

参考文献。1]刘卫国 《matlab程序设计与应用》

2]吴大正 《信号与线性系统分析》

3] 张雪英 《数字语音处理及matlab**》

4] 韩宪柱、 刘日 《声音素材拾取与采集》

5] 杜晶晶,金学波编著。《信号与系统实训指导(matlab版)》

MATLAB课程设计

1 求被控对象传递函数g s 的matlab描述。num 789 6312 11835 den 1 14 56 64 0 0 gs tf num,den transfer function 789 s 2 6312 s 11835 s 5 14 s 4 56 s 3 64 s 2 2 求被控对象脉冲...

MATLAB课程设计

课程设计。题目 matlab计算器。姓名 班级 学院 专业 完成时间。1总体设计。该计算器程序主要是matlab来制作,界面主要由四个静态文本框 21个运算按钮和两个动态文本框组成。实现的运算功能有四则运算 加 减 乘 除。而且添加了括号使人们使用时更加简单。这些计算功能主要调用了matlab的自定...

MATLAB课程设计

matlab课程设计。如图所示,为测量系统的示意图,它由两个能相互转动的连杆,角度编码器和滚轮等组成。o1为固定点,o2点为转动点,o3点为滚轮的中心,连杆的有效长度分别为l1和l2。任一位置时,连杆1相对于某基准位置的角度为 1,两连杆的相对角度为 2。其中对于 1,取垂直方向为基准线,在基准线左...