MATLAB实验1

更新时间:2023-12-09 15:46:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数字信号处理Matlab实验

实验名称: MATLAB实验 学生姓名: 班级: 601 班内序号: 31 学号: 2012212084 日期: 2014.3.15

实验要求:

因为现实世界里存在的是模拟信号,因此数字信号处理的第一个问题是将信号离散化,得到一个数字信号,然后再进行数字处理。

(1) 常用数字信号序列的产生:

熟悉Matlab产生数字信号的基本命令,加深对数字信号概念的理解,并能够用Matlab产生和绘制出一些常用离散信号序列。 请用Matlab画出下列序列的波形(-10

b) 单位阶跃序列 2 u(n-5) c) 矩形序列 R(n)

d) y(n)=2sin(0.3πn)+ 0.5cos2(0.6πn)

(2) 数字信号的基本运算:

加、减、尺度(乘除)和移位是数字信号处理中最基本的算术运算,将上述基本序列进行这些基本运算,得到多个序列构成的组合序列。

请用您的计算机声卡采用一段您自己的声音 x(n),长度为 45秒,单声道,取样频率 44.1kHz,16bit/样值,然后与给定的一段背景音乐 y(n) 按下式叠加为一个声音信号 z(n):

z(n)?0.7x(n)?0.3y(n) 要求:

在同一个 Figure 中,画出采集声音 x(n)、背景音乐 y(n)和混音 z(n) 的时域波形; 保存混音文件 z(n) (wav 格式);

提交实验报告时,请把声音文件转换为 mp3 格式,图像转换为 JPEG 格式,以节省存储空间。

通过本次实验,掌握Matlab中这些基本运算命令,对数字信号处理有一个基本概念,为后面的数字信号分析和滤波打下基础。

请用Matlab画出下列序列的波形(-10

.m

function[x,n]=delta(n0,n1,n2) if((n0n2)||(n0>n2))

error('Please ensure n0n2 or n0>n2 ') end

n=[n1:n2]; x=[(n-n0)==0]; stem(n,x)

Command window delta(0,-10,10)

b) 单位阶跃序列 2 u(n-5)

.m

function[x,n] = stepseq(n0,n1,n2) if ( (n0< n1) | (n0>n2) | (n1>n2) ) error ('ERROR') end n=[n1:n2] x=[(n-n0) >= 0] stem(n,2*x)

Command window

>>stepseq (5,-10,10)

21.81.61.41.210.80.60.40.20-10-8-6-4-20246810

c) 矩形序列 R(n)

.m

function[x,n] = stepseq(n0,n1,n2) if ( (n0< n1) | (n0>n2) | (n1>n2) ) error ('ERROR') end n=[n1:n2] x=[(n-n0) >= 0]

Command window

>> y=stepseq(-10,-10,10) - stepseq(10,-10,10) >>stem(-10:10,y)

10.90.80.70.60.50.40.30.20.10-10-8-6-4-20246810

d) y(n)=2sin(0.3πn)+ 0.5cos2(0.6πn)

Command window

>> n=[-10:1:10];

>> y=2*sin(0.3*pi*n)+0.5*cos(2*(0.6*pi*n)) >>stem(-10:1:10,y)

2.521.510.50-0.5-1-1.5-2-2.5-10-8-6-4-20246810

>> n=[-10:10];

>> y=2*sin(0.3*pi*n)+0.5*cos(2*(0.6*pi*n)) >>stem(-10:10,y)

2.521.510.50-0.5-1-1.5-2-2.5-10-8-6-4-20246810

加、减、尺度(乘除)和移位是数字信号处理中最基本的算术运算,将上述基本序列进行这些基本运算,得到多个序列构成的组合序列。 Command window

>> n=-10:10;

y1=delta(0,-10,10); y2=stepseq(0,-10,10);

subplot(2,2,1);stem(n,y1+y2); subplot(2,2,2);stem(n,y1-y2); subplot(2,2,3);stem(n,y1.*y2)

21.510.50-10-5051010.80.60.40.20-10-50510

0-0.2-0.4-0.6-0.8-1-10-50510

请用您的计算机声卡采用一段您自己的声音 x(n),长度为 45秒,单声道,取样频率 44.1kHz,16bit/样值,然后与给定的一段背景音乐 y(n) 按下式叠加为一个声音信号 z(n):

Command Window

>> [x,fs,bits]=wavread('bn hope.wav'); >> [y,fs,bits]=wavread('15 7分之8.wav'); >> x=x((fs*0+1:fs*45),:); >> y=y((fs*0+1:fs*45),:); >> z=0.7*x+0.3*y;

>> wavwrite(z,fs,bits,'music.wav');

>> subplot(3,1,1),plot(x),title('bn hope '); >> subplot(3,1,2),plot(y),title('15 7分之8'); >> subplot(3,1,3),plot(z),title('music');

bn hope 10-100.20.40.60.8115 7分之810-100.20.40.60.81music10-100.20.40.60.811.21.41.61.8x 10261.21.41.61.8x 10261.21.41.61.8x 1026

实验心得:

1、 了解了.m文件与Command Window的联系。

2、 学习了stem,plot函数区别,学会使用subplot等函数以及乘法.*的使用。 3、 相较C++之下, MATLAB语言比较简单。 4、 位移函数找不到、不会用。

本文来源:https://www.bwwdw.com/article/q4c5.html

Top