实验一 基于Matlab的数字信号处理基本

合集下载

数字信号处理MATLAB实验1

数字信号处理MATLAB实验1

实验一熟悉MATLAB环境一、实验目的(1)熟悉MATLAB的主要操作命令。

(2)学会简单的矩阵输入和数据读写。

(3)掌握简单的绘图命令。

(4)用MATLAB编程并学会创建函数。

(5)观察离散系统的频率响应。

二、实验内容认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。

在熟悉了MATLAB基本命令的基础上,完成以下实验。

上机实验内容:(1)数组的加、减、乘、除和乘方运算。

输入A=[1234],B=[3456],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。

(2)用MATLAB实现以下序列。

a)x(n)=0.8n0≤n≤15b)x(n)=e(0.2+3j)n0≤n≤15c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π)0≤n≤15(n)=x(n+16),绘出四个d)将c)中的x(n)扩展为以16为周期的函数x16周期。

(n)=x(n+10),绘出四个e)将c)中的x(n)扩展为以10为周期的函数x10周期。

(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本。

a)x 1(n)=2x(n+2)-x(n-1)-2x(n)b)∑=-=51k 2)k n (nx (n) x (4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注。

a)x(t)=sin(2πt)0≤t≤10sb)x(t)=cos(100πt)sin(πt)0≤t≤4s(5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1<n0<n2,绘出该函数的图形,起点为n1,终点为n2。

(6)给定一因果系统)0.9z 0.67z -1)/(1z 2(1H(z)-2-1-1+++=求出并绘制H(z)的幅频响应与相频响应。

(7)计算序列{8-2-123}和序列{23-1-3}的离散卷积,并作图表示卷积结果。

基于MATLAB的“数字信号处理”实验平台的制作毕业设计

基于MATLAB的“数字信号处理”实验平台的制作毕业设计

目录中文摘要 (i)英文摘要 ................................................................................................................................ I V 1 绪论 . (1)1.1 问题提出及研究意义 (1)1.2 设计的基本内容 (1)2 系统设计工具简介 (2)2.1 MATLAB概述 (2)2.2 图形用户界面(GUI)设计 (3)2.2.1 创建GUI的步骤 (3)2.2.2 GUI编程 (7)2.2.3 GUI的设计流程和设计原则 (8)2.2.4 控件的使用 (9)3 系统总体设计思路 (10)3.1 系统总体设计的步骤 (10)3.2 系统总体设计的结构 (10)4 系统图形用户界面设计 (13)4.1 图形用户界面外观设计 (13)4.1.1 控件对象 (13)4.1.2 控件属性的设置 (14)4.1.3 窗口属性的设置 (15)4.1.4 菜单的设计 (16)4.2 图形用户界面控件编程 (16)4.2.1 输入函数 (17)4.2.2 输出函数 (18)4.2.3 回调函数 (18)5 系统用户界面的实现 (18)5.1 引导模块 (19)5.1.1 回调函数的编写 (19)5.1.2 界面功能 (20)5.2系统说明模块 (20)5.3 主界面模块 (21)5.3.1 回调函数的编写 (21)5.3.2 界面功能 (21)5.4 基本信号的产生模块 (22)5.4.1 回调函数编写的基本原理 (22)5.4.2 界面功能 (24)5.4.3 界面使用演示 (25)5.5 序列基本计算模块 (25)5.5.1 回调函数编写的基本原理 (25)5.5.2 界面功能 (26)5.5.3 界面使用演示 (27)5.6 数据采集模块 (27)5.6.1 回调函数编写的基本原理 (27)5.6.2 界面功能 (28)5.6.3 界面使用演示 (29)5.7 卷积模块 (30)5.7.1 回调函数编写的基本原理 (30)5.7.2 界面功能 (30)5.7.3 界面使用演示 (30)5.8 傅里叶变换模块 (32)5.8.1 回调函数编写的基本原理 (32)5.8.2 界面功能 (32)5.8.3 界面使用演示 (33)5.9 Z变换模块 (35)5.9.1 回调函数编写的基本原理 (35)5.9.2 界面功能 (36)5.9.3 界面使用演示 (37)5.10 滤波器设计模块 (40)5.10.1 回调函数编写的基本原理 (41)5.10.2 界面功能 (43)5.10.3 界面使用演示 (43)致谢 (49)参考文献 (50)附录 (51)毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

数字信号处理 Matlab实验一 Matlab 基本功能和基础知识操作

数字信号处理 Matlab实验一 Matlab 基本功能和基础知识操作

温州大学物理与电子信息工程学院Matlab 仿真及其应用 实验报告实验一Matlab 基本功能和基础知识操作 [实验目的和要求]1、 熟练掌握Matlab 的启动与退出2、 熟悉Matlab 的命令窗口、常用命令、帮助系统3、 熟悉Matlab 的数据类型、基本矩阵操作、运算符和字符串处理[实验内容]1、 用逻辑表达式球下列分段函数的值 22201112,=0:0.5:2.52123t t y t t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩其中2、 求[100,999]之间能被32整除的数的个数3、 建立一个字符串向量,删除其中的小写字母。

4、 输入矩阵1234514789A ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,求出此矩阵的行列式,逆和特征根,并找出A 中大于5和小于9的元素,用行列式表示。

5、 不采用循环的形式求出和式63230034ii i i S ===+∑∑6、 给定矩阵E=rand (4,4),计算C+E ,C*E ,C\E实验结果及分析:经过Matlab 软件的程序编辑和测试分析,得出以下实验结果: 详见程序代码、注释及屏幕截图:【题1】程序代码:t=0:0.5:2.5y=t.^2.*((t>=0)&(t<1))+(t.^2-1).*((t>=1)&(t<2))+(t.^2-2*t+1).*((t>=2)&(t<3)) 效果截图:【题2】程序代码:p=rem([100:999],32)==0;sum(p)效果截图:【题3】程序代码:ch='dfghjGUIJKVC',k=find(ch>'a'&ch<='z'),ch(k)=[]效果截图:【题4】程序代码:A=[1 2 3;4 5 14;7 8 9];[i,j]=find(A>5&A<9) %定位for n=1:length(i)m(n)=A(i(n),j(n))endDA=det(A) %行列式IA=inv(A) %逆矩阵EA=eig(A) %特征根效果截图:【题5】程序代码:E=rand(4,4); %产生随机数0~1 C=rand(4,4);B1=C+E;B2=C*E;B3=C/E;B1B2B3效果截图:【题6】程序代码:E=rand(4,4); %产生随机数0~1 C=rand(4,4);B1=C+E;B2=C*E;B3=C/E;B1B2B3效果截图:4、心得:通过本次Matlab课程实验,我已熟练Matlab的命令窗口、常用命令、帮助系统,并掌握Matlab的数据类型、基本矩阵操作、运算符和字符串处理。

实验一基于Matlab的数字信号处理基本分析解析

实验一基于Matlab的数字信号处理基本分析解析

实验一基于Matlab的数字信号处理基本操作一、实验目的:学会运用MATLAB表示的常用离散时间信号;学会运用MATLAB实现离散时间信号的基本运算。

二、实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。

三、实验内容:(一) 离散时间信号在MATLAB中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。

离散序列通常用X(n)来表示,自变量必须是整数。

离散时间信号的波形绘制在MATLAB中一般用stem函数。

stem函数的基本用法和plot函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。

如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。

由于MATLAB中矩阵元素的个数有限,所以MATLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。

类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。

1. 单位取样序列单位取样序列、:(n),也称为单位冲激序列,定义为和、? ⑴=0)o(n)=丿0 (n 式0)要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n=0处是取确定的值1。

在MATLAB中,冲激序列可以通过编写以下的impDT.m文件来实现,即function y=impDT(n)y=(n==0); %当参数为0时冲激为1,否则为0调用该函数时n必须为整数或整数向量。

【实例1-1】禾U用MATLAB的impDT函数绘出单位冲激序列的波形图。

解:MATLAB源程序为>>n=-3:3;>>x=impDT(n);>>stem(n,x,'fill'),xlabel('n'),grid on>>title('单位冲激序列’) >>axis([-3 3 -0.1 1.1])1程序运行结果如图1-1所示。

西北工业大学Matlab实验报告

西北工业大学Matlab实验报告

西北工业大学《基于MATLAB的数字信号处理》实验报告学院:计算机学院学号:姓名:专业:计算机科学与技术西北工业大学2017年07 月3.实验二 MATLAB 基本编程实验一、实验目的及要求1. 回顾数字信号处理的主要内容;2. 掌握利用MATLAB 进行信号处理的方法;3. 了解信号处理工具箱中一些函数的功能;二、实验设备(环境)及要求1. 计算机2. Matlab 软件编程实验平台三、实验内容1 .任何实数序列x(n)都能分解成为它的偶部分量和奇部分量之和,编写一个MATLAB 函数文件,该函数的功能是将一给定序列分解成为它的偶部分量和奇部分量。

并通过M 文件或命令行调用该函数文件将以下序列分解成为偶部分量和奇部分量。

0.05()sin(0.1/3), 0n 100n x n e n ππ-=+≤≤title('巴特沃斯的幅频特性'); subplot(2,3,5)plot(w1,180/pi*(angle(h1))); xlabel('frequency Hz'); ylabel('phase');title('巴特沃斯的相频特性'); %椭圆带通滤波器rs=60;rp=0.1; %椭圆带通滤波器的指标 [B,A]=ellip(N,rp,rs,wn) [h2,w2]=freqz(B,A,256,fs);subplot(2,3,3)plot(w2,20*log10(abs(h2)/max(abs(h2)))); xlabel('frequency Hz'); ylabel('magnitude /dB'); title('椭圆滤波器的幅频特性'); subplot(2,3,6)plot(w2,180/pi*(angle(h2))); xlabel('frequency Hz'); ylabel('phase');title('椭圆滤波器的相频特性');六、实验结果1.原始序列及得到的奇偶序列如下图所示2.1差分方程表示如下()()(4)0.8145*(4)=+-+-y n x n x n y n2.2计算出的幅频和相频图如下2.3 输入序列与滤波器的输出序列如下图所示分析结果可知,输出相对于输入在相位上有一定的延迟,幅度上有了提升。

Matlab数字信号处理实验报告

Matlab数字信号处理实验报告

Matlab数字信号处理实验报告本次实验使用MATLAB进行数字信号处理操作,目的是熟悉MATLAB中数字信号处理的相关工具箱,并进一步理解数字信号处理的基本概念和算法。

一、实验内容1.信号的生成与显示2.时域分析和频域分析3.滤波器设计4.数字滤波器性能分析二、实验步骤在MATLAB中,使用sawtooth函数生成一个锯齿波信号,并使用plot函数进行时域波形的显示。

代码如下:f = 1000;fs = 40000;t = 0:1/fs:0.01;y = sawtooth(2*pi*f*t);plot(t,y);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave');时域分析包括波形的观察和参数分析,如幅值、均值、方差等。

频域分析则是对信号进行傅里叶变换,得到其频谱图,包括频率分布和强度分布。

%时域分析amp = max(y)-min(y);mean_y = mean(y);var_y = var(y);设计一个低通滤波器,将高于1kHz的频率成分滤掉。

对滤波后的信号进行时域分析和频域分析,比较滤波前后信号的特征参数和频谱特征,并绘制原始信号、滤波后信号及其频谱图。

subplot(2,2,1);plot(t,y);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave');subplot(2,2,2);plot(t,y_filt);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave After Filter');subplot(2,2,3:4);plot(f2,fft_y_filt,'r',f,fft_y,'g');xlabel('Frequency (Hz)');ylabel('Amplitude');title('Sawtooth Wave Spectrum Comparison');legend('After Filter','Before Filter');三、实验结果与分析通过生成并显示一段锯齿波信号,并对其进行时域和频域分析,可以得到该信号的关键信息,如幅值、均值、方差和频率分布特性。

数字信号处理实验报告 (基于MATLAB)

数字信号处理实验报告 (基于MATLAB)

课程名称:数字信号处理实验实验地点:综合楼C407专业班级:2014级生物医学工程姓名:leifeng学号:指导老师:第一次实验第一章 离散时间信号的时域分析Q1.1运行程序P1.1,以产生单位样本序列u[n]并显示它clf; n=-10:20;u=[zeros(1,10) 1 zeros(1,20)]; stem(n,u);xlabel('时间序号');ylabel('振幅'); title('单位样本序列'); axis([-10 20 0 1.2]);时间序号振幅单位样本序列Q1.2 命令clf ,axis ,title ,xlabel 和ylabel 的作用是什么clf :清除图形窗口内容; axis:规定横纵坐标的范围;title :使图像面板上方显示相应的题目名称; xlable :定义横坐标的名字; ylable :定义纵坐标的名字。

Q1.3修改程序P1.1以产生带有延时11个样本的延迟单位样本序列ud[n],运行修改的程序并且显示产生的序列。

clf; n=0:30;u=[zeros(1,11) 1 zeros(1,19)]; stem(n,u);xlabel('时间序号');ylabel('振幅'); title('单位样本序列'); axis([0 30 0 1.2]);时间序号振幅单位样本序列Q1.5 修改程序P1.1,以产生带有超前7个样本的延时单位阶跃序列sd[n]。

运行修改后的程序并显示产生的序列。

clf; n=-10:20;sd=[zeros(1,3) 1 ones(1,27) ]; stem(n,sd);xlabel('时间序号');ylabel('振幅'); title('单位样本序列'); axis([-10 20 0 1.2]);时间序号振幅单位样本序列Q1.6运行程序P1.2,以产生复数值的指数序列。

matlab数字信号处理实验

matlab数字信号处理实验
X(z)= (1-7)
以 代替上式中的Z,就可以得到序列x(n)的傅里叶变换
X( )= (1-8)
式(1—6)和式(1—8)具有如下关系:
=X( )︱ (1-9)
由式(1—9)可知,在分析一个连续时间信号的频谱时,可以通过取样将有关的计算转换为序列傅里叶变换的计算。
(二)有限长序列分析
一般来说,在计算机上不可能,也不必要处理连续的曲线X(e ),通常,我们只观察、分析X(e )在某些频率点上的值。对于长度为N的有限长序列
(1-5)
作为拉氏变换的一种特例,信号理想采样的傅里叶变换
(1-6)
由式(1—5)和式(1—6)可知,信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期等于采样频率,根据Shannon取样定理,如果原信号是带限信号,且采样频率高于原信号的最高频率分量2倍,则采样以后不会发生频谱混迭现象。
在计算机处理时,不采用式(1—6)计算信号的频谱,而是利用序列的傅里叶变换计算信号的频谱,可以得到序列x(n)的Z变换为:
信号产生子程序:
1、理想采样信号序列xa(n)
n=0:50;
A=444.128;
a=50*sqrt(2.0)*pi;
T=1/1000;
w0=50*sqrt(2.0)*pi;
x=A*exp(-a*n*T).*sin(w0*n*T);
close all
subplot(3,1,1);
stem(x);
title('通信学号理想采样信号序列xa(n)');
贴出最后得到的图形
四:思考:系统最高频率是多少?第一个实验中有无频谱混迭,为什么?第二个实验中有无频谱混迭,为什么?
X=x*(exp(-j*pi/12.5)).^(n'*k);

第2章 基于MATLAB实现的数字信号处理实验

第2章  基于MATLAB实现的数字信号处理实验
10
x 2(n)
5
0 -5
0
5
10 n
15
20
25
30
1 0.5
h(n)
0 -0.5 -1 -5
0
5
10 n
15
20
25
30
第2章 基于MATLAB实现的数字信号处理实验
2.2 离散信号的分析
四、实验思考题
1. 思考序列相关性的应用?
五、实验报告要求
1. 2. 简述实验目的及实验原理。 按实验步骤附上实验过程中的信号序列、系统单位脉冲响应及 系统响应序列的时域和幅频特性曲线,并对所得结果进行分析 和解释。 总结实验中的主要结论。 简要回答实验思考题。
第2章 基于MATLAB实现的数字信号处理实验
2.3 验证采样定理
三、实验步骤
2. 实验内容2(3)的程序运行结果如下图所示:
Reconstruction of x a(t) when Ts=0.01 1
x a(t)
0 -1 0 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Reco
2.4 应用FFT实现信号频谱分析
三、实验步骤
3. 实验内容1的程序运行结果如下图所示:
15 10
5
0 -6
-4
-2
0
2
4
6
4 2 0 -2 -4 -6
-4
-2
0
2
4
6
第2章 基于MATLAB实现的数字信号处理实验
2.4 应用FFT实现信号频谱分析
三、实验步骤
4. 实验内容2的程序运行结果如下图所示:
n
第2章 基于MATLAB实现的数字信号处理实验

第一次实验 MATLAB的数字信号处理基础

第一次实验 MATLAB的数字信号处理基础

第一次实验MAT1AB的数字信号处理基础一、实验目的1.掌握在MAT1AB中创建和编写脚本程序的步骤,熟悉在MAT1AB中进行基本的矩阵运算2.了解数字信号在计算机系统中的表示和数字信号处理的基本过程3.掌握用MAT1AB产生数字信号的方法二、实验内容1.熟悉在MAT1AB下创建脚本文件编制程序的方法在MAT1AB中,脚本文件时由一系列的命令构成并储存为.m格式的文件。

通常使用m文件来编写一个完整的仿真程序。

脚本文件的创建,可采用以下两种方式:(1)在菜单栏中选择Fi1e下拉框中New选项,可以新建多种MAT1AB文件,我们编辑仿真程序,通常选择第一项BIankM-Fi1e,即新建一个空的MAT1AB文件。

具体参见下图。

图1(2)采用菜单栏中新建按钮即可新建一个空的MAT1AB文件。

Jk MAT1AB7.9.0(R2009b)Fi1eEditDebugParaJ一一J2.MAT1AB中的数据表示MAT1AB中的基本数据单元为数组矩阵,MAT1AB中的数学运算都是基于矩阵的。

掌握了矩阵运算,就掌握了MAT1AB编程的关键。

MAT1AB中使用到的变量无需事先声明其数据类型,大小等,MAT1AB会自动根据赋值情况进行解析。

比如,可用通过以下命令产生一个矩阵:3.常用序列的MAT1AB实现(1)单位抽样序列。

在MAT1AB中可以用以下函数来实现单位抽样序列function[x,n]=impseq(nθ,n1z n2)%产生x(n)=de1ta(n-n0);n1<=n0<=n2if((nθ<n1)∣(nθ>∩2)∣(n1>n2))error('参数必须满足n1<=nθ<=n2,)endn=[n1:n2];x=[zeros(1,(nO-n1))4∕Zθros(1z(n2-nO))];stem(x);图3(2)单位阶跃序列。

在MAT1AB中可用〃>=0来实现〃(〃一%)。

《基于MATLAB的数字信号处理》实验报告

《基于MATLAB的数字信号处理》实验报告

0.60007.0000-5.4000所以,X=[错误!未找到引用源。

]=[ 0.6000, 7.0000, -5.4000]’实验结果2:K=1.732051实验结果3:三曲线的对比图如下所示:图1.1 三曲线的对比实验二基于MATLAB信号处理实验xlabel('频率/Hz');ylabel('振幅/dB');title('布莱克窗的幅频特性');grid on;subplot(2,1,2);plot(f4,180/pi*unwrap(angle(H4)));xlabel('频率/Hz');ylabel('相位');title('布莱克窗的相频特性');grid on;六、实验结果实验结果2.1:图2-1 x(n)与y(n)的互相关序列图由实验结果可知,x(n)与y(n)的互相关只在区间[-4,8]上有能力,刚好是区间[-3,3]与右移后的区间[-1,5]两端点之和,与结论一致。

且互相关在2处达到最大。

实验结果2.2.1:其表示的差分方程为:y(n)-0.8145y(n-4)=x(n)+x(n-4)实验结果2.2.2:滤波器的幅频和相频图如下所示:图2-2 滤波器的幅频与相频图实验结果2.2.3:由下图实验结果可知,输出信号相对于输入信号有一小小的延迟,基本上x(n)的频点都通过了,滤波器是个梳状filter,正好在想通过的点附近相位为0,也就是附加延迟为0图2-3 滤波器的幅度和相位变化图2-4 两信号波形实验结果2.3:四种带通滤波器的窗函数的频率响应如下所示:图2-5 矩形窗的频率特性图2-6 汉宁窗的频率特性图2-7 海明窗的频率特性图2-8 布莱克曼窗的频率特性图3-1 加噪前、后图像对比图3-2 加椒盐噪声的图像均值滤波前、后的图像对比图3-3 加椒盐噪声的图像中值滤波前、后的图像对比图3-4加高斯噪声的图像均值滤波前、后的图像对比图3-5 加高斯噪声的图像中值滤波前、后的图像对比实验结果3.2:图3-6 原图及重构图像图3-7 程序运行结果由实验结果可知,当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.768259,重构图像置为0的变换系数的个数个数为:43.708737;当DCT变换的系数置0个数小于10时,重构图像与原图像的峰值信噪比15.922448,重构图像置为0的变换系数的个数个数为:36.110705;当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.768259,重构图像置为0的变换系数的个数个数为:30.366348;可以发现,在抛弃部分DCT系数后,重构图像时不会带来其画面质量的显著下降,采用这种方法来实现压缩算法时,可以通过修改mask变量中的DCT系数来更好地比较仿真结果。

基于MATLAB的数字信号处理1

基于MATLAB的数字信号处理1

基于MATLAB的数字信号处理1MATLAB的综合实验一、实验目的及要求培养学生利用Matlab解决专业问题的能力。

二、实验设备(环境)及要求1.计算机2.Matlab软件编程实验平台三、实验内容1、编程实现一个数字信号处理的仿真系统。

要求具有界面并实现以下功能:1)能产生(得到)并选择各种数字信号(sin、方波、三角波、语音、噪声及其叠加);2)具有DFT、DCT和DWT变换功能,并对各种信号进行变换;3)设计滤波器实现低通、高通、带通滤波,得到输出信号的频域特性和时间序列;4)输入一段叠加了噪声的语音信号,显示其频谱特性,通过变换或滤波对其降噪,得到输出信号的频域特性和时间序列。

四、设计思想本系统包含有三个主要部分:信号产生与变换模块,滤波器模块和语音噪声处理。

信号产生与变换通过输入信号频率和采样频率实现正弦、方波、三角波、语音信号的产生以及噪声的叠加,系统设定信号持续时间为0.05s,语音信号为截取了一段2s的声音信号。

同时对各个信号进行DFT,DCT和DWT变换,且变换点数N=256,同时设定DWT变换时的小波类型为db1。

滤波器模块设计了四个IIR 滤波器(巴特沃斯、切比雪夫Ⅰ型,切比雪夫Ⅱ型和椭圆滤波器),并分别实现低通,高通和带通。

界面设计了各种滤波器所需参数的输入模块。

系统设定待滤波信号持续时间为0.05s,包含有3个频率成分,S=sin(2*pi*f*t)+ sin(2*pi*5*f*t)+sin(2*pi*8*f*t),其中f为输入信号频率,S通过低通、带通、高通滤波器之后,分别得到频率为f,5f和8f的正弦信号,实现信号滤波。

语音噪声处理部分是一个复选框按钮,通过巴特沃斯低通滤波器对其进行降噪,设计中通过观察噪声语音信号的频谱得到低通滤波器的截止频率和阻带起始频率,并合理输入通带衰减与阻带衰减,最终得到理想的降噪结果。

数字滤波器设计过程中用到了如下的一些matlab设计函数:buttord、butter,cheb1ord、cheby1,cheb2ord、cheby2,ellipord、ellip。

数字信号处理相关MATLAB实验内容--第1章

数字信号处理相关MATLAB实验内容--第1章

实验1 离散时间信号的时域分析一、实验目的(1)了解MATLAB 语言的主要特点及作用;(2)熟悉MATLAB 主界面,初步掌握MATLAB 命令窗和编辑窗的操作方法;(3)学习简单的数组赋值、数组运算、绘图的程序编写;(4)了解常用时域离散信号及其特点;(5)掌握MATLAB 产生常用时域离散信号的方法。

二、知识点提示本章节的主要知识点是利用MATLAB 产生数字信号处理的几种常用典型序列、数字序列的基本运算;重点是单位脉冲、单位阶跃、正(余)弦信号的产生;难点是MATLAB 关系运算符“==、>=”的使用。

三、实验内容1. 在MATLAB 中利用逻辑关系式0==n 来实现()0n n -δ序列,显示范围21n n n ≤≤。

(函数命名为impseq(n0,n1,n2))并利用该函数实现序列:()()()632-+-=n n n y δδ;103≤≤-nn 0212. 在MATLAB 中利用逻辑关系式0>=n 来实现()0n n u -序列,显示范围21n n n ≤≤。

(函数命名为stepseq(n0,n1,n2))并利用该函数实现序列:()()()20522≤≤--++=n n u n u n y3. 在MATLAB 中利用数组运算符“.^”来实现一个实指数序列。

如: ()()5003.0≤≤=n n x n4. 在MATLAB 中用函数sin 或cos 产生正余弦序列,如:()()2003.0cos 553.0sin 11≤≤+⎪⎭⎫ ⎝⎛+=n n n n x πππ5. 已知()n n x 102cos 3π=,试显示()()()3,3,+-n x n x n x 在200≤≤n 区间的波形。

6. 参加运算的两个序列维数不同,已知()()6421≤≤-+=n n u n x ,()()8542≤≤--=n n u n x ,求()()()n x n x n x 21+=。

Matlab数字信号处理实验报告材料

Matlab数字信号处理实验报告材料

数字信号处理实验报告基础实验篇实验一离散时间系统及离散卷积一、实验原理利用Matlab软件计算出系统函数的零极点分布、单位脉冲响应和系统频率响应等的图像并于笔算结果进行比较,找出异同。

编译合适程序能计算取值范围不同的离散卷积。

二、实验目的(1)熟悉MATLAB软件的使用方法。

(2)熟悉系统函数的零极点分布、单位脉冲响应和系统频率响应等概念。

(3)利用MATLAB绘制系统函数的零极点分布图、系统频率响应和单位脉冲响应。

三、实验步骤(1)自编并调试实验程序,并且,给实验程序加注释;(2)按照实验内容完成笔算结果;(3)验证计算程序的正确性,记录实验结果。

(4)至少要求一个除参考实例以外的实验结果,在实验报告中,要描述清楚实验结果对应的系统,并对实验结果进行解释说明。

四、实验源程序及实验结果实验二 离散傅立叶变换与快速傅立叶变换一、 实验原理对有限长序列使用离散Fouier 变换(DFT)可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N 时,它的DFT 定义为()()[]()∑==-=1N n nk N W n x n x DFT k X 10-≤≤N k反变换为()()[]()∑==-=-101N n nkN W k X N k X IDFT n x 10-≤≤N n 有限长序列的DFT 是其Z 变换在单位圆上的等距采样,或者说是序列Fourier 变换的等距采样,因此可以用于序列的谱分析。

FFT 是为了减少DFT 运算次数的一种快速算法。

它是对变换式进行一次次分解,使其成为若干较短序列的组合,从而减少运算量。

常用的FFT 是以2为基数的,其长度。

它的效率高,程序简单,使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT ,可以用末位补零的方法,使其长度延长至2的整数次方。

用FFT 可以实现两个序列的圆周卷积。

在一定的条件下,可以使圆周卷积等于线性卷积。

基于 Matlab 的数字信号处理实验报告

基于 Matlab 的数字信号处理实验报告

第一章MATLAB基本知识MATLAB是一种面向科学和工程计算的高级语言,包含的几十个工具箱,覆盖了通信、自动控制、信号处理、图像处理、生命科学等科技领域,现已成为国际公认的最优秀的科技界应用软件。

该软件的特点是:强大的计算功能、计算结果和编程可视化及极高的转换效率。

本章目的是帮助新用户在领略MATLAB非凡能力的同时能轻松跨越MA TLAB的门槛。

§1.1 MATLAB 语言的基本使用环境一.MATLAB的安装MATLAB5.3 版本仅有一张光盘,运行其上的安装文件setup.exe,则可以按提示安装整个MA TLAB 系统。

MATLAB6.1 版本有两张光盘,将其中的程序盘插入驱动器,运行其上的安装文件setup.exe,则可以按提示安装整个MA TLAB 系统。

MATLAB6.x与以前的版本相比,在界面上的变化是很大的,以前的版本只给出一个又一个命令窗口,MA TLAB6.1的程序界面,除了其右侧的Command Window (命令窗口)之外,还有Launch Pad (程序调用板) 和Command History (命令的历史记录)两个子窗口,以及Workspace (工作空间管理程序) 和Current Directory (当前目录管理程序)等,使MA TLAB 的操作更容易、方便了。

二.MATLAB5.3的操作步骤由于实验室安装的是MA TLAB5.3,下面我们介绍MATLAB5.3 的操作步骤。

双击桌面的MA TLAB5.3 的图标,如图1-1,将进入MA TLAB5.3的Command Window (命令窗口),如图1-2。

1.帮助[Help]选项Help Windows 打开分类帮助窗Help Tips 打开函数文件命令帮助窗Help Desk 打开以超文本形式存储的帮助文件主页Examples and Demos 打开演示窗主页About MA TLAB 注册图标、版本、制造商和用户信息选择[Help]中不同的类别,用户可以从相关的帮助信息得到帮助。

实验部分:matlab在数字信号处理中的应用

实验部分:matlab在数字信号处理中的应用

Matlab在数字信号处理中的应用(基础)一、数据类型:1、整数:Matlab支持8位,16位,32位和64位的有符号和无符号整数数据类型。

如:x=int8(50); %指定x的数据类型为int8.x=502、浮点数:matlab的默认数据类型是双精度类型(double),为了节省存蓄空间,matlab 也支持单精度数据类型的数组。

Realmin(‘single’)Ans=1.1755e-038Realmax(‘double’)Ans=2.2251e-3083、复数:matlab中虚数单位由i或者j表示。

Z=6+7j另一种创建复数的方法可以通过complex()函数,complex()函数的调用格式:C=complex(a,b),返回结果c为复数,实部是a,虚部是b。

二、数组的创建1、一维数组的创建:创建一维行向量,只需要把所有数组元素用空格或者逗号分隔,并用方括号吧所有数组元素括起来即可。

如用分号,即为列向量。

创建等差的一维数组:格式Var=start-val:step:stop-val。

如果步长是1,可以省略。

2、二维数组的创建;在创建二维数组时,用逗号或者空格区分同一行的不同元素,用分号或者软回车区分不同的行。

三、函数流程控制1、顺序结构。

2、判断语句(if---else if---else----end).3、循环语句(for----end)四、作图1、二维图:plot(x,y,linespec),linespec参数,用于对图像外观属性的控制,包括线条的形状,颜色和点的形状,颜色。

stem(x,y);绘制脉冲杆图图形。

Stairs(x,y);绘制阶梯图图形。

2、图像子窗口:subplot(m,n,p),将图像分为m╳n个子区域,在第p个区域中绘制图像。

3、坐标轴:axis(xmin,xmax,ymin,ymax).指定当前图像中x轴和y轴的范围。

4、图形注释:1)标题:title(‘图形名字’)。

基于MATLAB的数字信号处理实现

基于MATLAB的数字信号处理实现

基于MATLAB的数字信号处理实现数字信号处理是信号处理中的一个重要分支,随着数字信号处理技术的不断发展和完善,数字信号处理在科学研究、工程设计等领域都有着广泛的应用。

MATLAB作为一种常用的数字信号处理软件,可以方便地实现数字信号处理的各种算法。

本文将从数字信号处理的概念、MATLAB的基本操作和数字信号处理算法实现三个方面来介绍基于MATLAB的数字信号处理实现。

一、数字信号处理概述数字信号处理是指将模拟信号转换为数字信号,并对数字信号进行滤波、压缩、降噪等处理的一种信号处理方法。

数字信号处理的应用范围广泛,如通信系统、音频信号处理、图像处理等领域。

数字信号处理的基本步骤包括采样、量化、编码和数字滤波等。

二、MATLAB的基本操作MATLAB是一种常用的数字信号处理软件,可以方便地实现数字信号处理算法。

在使用MATLAB进行数字信号处理时,需要掌握一些基本操作,如矩阵运算、图像处理等。

(一)矩阵运算MATLAB中的基本数据类型是矩阵,因此矩阵运算是MATLAB中的基本操作之一。

MATLAB支持加、减、乘、除等基本运算符号,例如:A = [1 2; 3 4];B = [5 6; 7 8];C = A + B;D = A * B;E = A' ;disp(C);disp(D);disp(E);上述代码将两个矩阵相加、相乘,并求矩阵的转置,最后输出结果。

(二)图像处理MATLAB提供了强大的图像处理功能,可以对图像进行各种处理。

如读取图像、调整亮度和对比度、滤波等。

下面是一个简单的读取图像并显示的例子。

A = imread('peppers.png');imshow(A);上述代码从文件中读取一个图像,并使用MATLAB自带的imshow函数显示该图像。

三、数字信号处理算法实现在MATLAB中,可以方便地实现各种数字信号处理算法。

例如,信号滤波、频率分析、小波分析等。

下面将分别介绍这些算法的实现方法。

《基于MATLAB的数字信号处理》实验报告

《基于MATLAB的数字信号处理》实验报告

0.60007.0000-5.4000所以,X=[错误!未找到引用源。

]=[ 0.6000, 7.0000, -5.4000]’实验结果2:K=1.732051实验结果3:三曲线的对比图如下所示:图1.1 三曲线的对比实验二基于MATLAB信号处理实验xlabel('频率/Hz');ylabel('振幅/dB');title('布莱克窗的幅频特性');grid on;subplot(2,1,2);plot(f4,180/pi*unwrap(angle(H4)));xlabel('频率/Hz');ylabel('相位');title('布莱克窗的相频特性');grid on;六、实验结果实验结果2.1:图2-1 x(n)与y(n)的互相关序列图由实验结果可知,x(n)与y(n)的互相关只在区间[-4,8]上有能力,刚好是区间[-3,3]与右移后的区间[-1,5]两端点之和,与结论一致。

且互相关在2处达到最大。

实验结果2.2.1:其表示的差分方程为:y(n)-0.8145y(n-4)=x(n)+x(n-4)实验结果2.2.2:滤波器的幅频和相频图如下所示:图2-2 滤波器的幅频与相频图实验结果2.2.3:由下图实验结果可知,输出信号相对于输入信号有一小小的延迟,基本上x(n)的频点都通过了,滤波器是个梳状filter,正好在想通过的点附近相位为0,也就是附加延迟为0图2-3 滤波器的幅度和相位变化图2-4 两信号波形实验结果2.3:四种带通滤波器的窗函数的频率响应如下所示:图2-5 矩形窗的频率特性图2-6 汉宁窗的频率特性图2-7 海明窗的频率特性图2-8 布莱克曼窗的频率特性图3-1 加噪前、后图像对比图3-2 加椒盐噪声的图像均值滤波前、后的图像对比图3-3 加椒盐噪声的图像中值滤波前、后的图像对比图3-4加高斯噪声的图像均值滤波前、后的图像对比图3-5 加高斯噪声的图像中值滤波前、后的图像对比实验结果3.2:图3-6 原图及重构图像图3-7 程序运行结果由实验结果可知,当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.768259,重构图像置为0的变换系数的个数个数为:43.708737;当DCT变换的系数置0个数小于10时,重构图像与原图像的峰值信噪比15.922448,重构图像置为0的变换系数的个数个数为:36.110705;当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.768259,重构图像置为0的变换系数的个数个数为:30.366348;可以发现,在抛弃部分DCT系数后,重构图像时不会带来其画面质量的显著下降,采用这种方法来实现压缩算法时,可以通过修改mask变量中的DCT系数来更好地比较仿真结果。

Matlab数字信号处理实验报告

Matlab数字信号处理实验报告
subplot(2,1,2); plot(n,X); grid title('FFT|X|'); xlabel('f(pi)');
实验 2-3
n=0:30;%输入x(n)和冲激响应 h(n) x=zeros(1,length(n)); h=zeros(1,length(n)); x([find((n>=0)&(n<=4))] ) =1; h([find((n>=0)&(n<=8))] ) =0.5; subplot(3,1,1); stem(x); title('x(n)'); axis([0,30,0,2]); subplot(3,1,2); stem(h); title('h(n)'); axis([0,30,0,2]); X=fft(x); H=fft(h); Y=X.*H; y=ifft(Y); subplot(3,1,3);
变换及 h(n) 的 Z 变换,则
H (z) zesT

1 T

Ha (s
m
j
2 T
m)
(2) 双线性变换法
s
平面与
z
平面之间满足以下映射关系:
s

2 T
1 1

z 1 z 1
s 平面的虚轴单值地映射于 z 平面的单位圆上,s 平面的左半平面完全映射 到 z 平面的单位圆内。双线性变换不存在混叠问题。双线性变换时一种非线性变
subplot(3,1,2); stem(n,h); axis([0,30,0,2]); title('冲激响应序列'); xlabel('n'); ylabel('h(n)');
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 基于Matlab 的数字信号处理基本操作一、 实验目的:学会运用MA TLAB 表示的常用离散时间信号;学会运用MA TLAB 实现离散时间信号的基本运算。

二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。

三、 实验内容:(一) 离散时间信号在MATLAB 中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。

离散序列通常用)(n x 来表示,自变量必须是整数。

离散时间信号的波形绘制在MATLAB 中一般用stem 函数。

stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。

如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。

由于MATLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。

类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。

1. 单位取样序列单位取样序列)(n δ,也称为单位冲激序列,定义为)0()0(01)(≠=⎩⎨⎧=n n n δ要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。

在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即function y=impDT(n)y=(n==0); %当参数为0时冲激为1,否则为0调用该函数时n 必须为整数或整数向量。

【实例1-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。

解:MATLAB 源程序为>>n=-3:3; >>x=impDT(n);>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1])程序运行结果如图1-1所示。

图1-1 单位冲激序列2. 单位阶跃序列单位阶跃序列)(n u 定义为)0()0(01)(<≥⎩⎨⎧=n n n u在MA TLAB 中,冲激序列可以通过编写uDT .m 文件来实现,即function y=uDT(n)y=n>=0; %当参数为非负时输出1调用该函数时n 也同样必须为整数或整数向量。

【实例1-2】 利用MATLAB 的uDT 函数绘出单位阶跃序列的波形图。

解:MATLAB 源程序为>>n=-3:5; >>x=uDT(n);>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位阶跃序列') >>axis([-3 5 -0.1 1.1])程序运行结果如图1-2所示。

3. 矩形序列矩形序列)(n R N 定义为),0()10(01)(N n n N n n R N ≥<-≤≤⎩⎨⎧= 1矩形序列有一个重要的参数,就是序列宽度N 。

)(n R N 与)(n u 之间的关系为)()()(N n u n u n R N --=因此,用MATLAB 表示矩形序列可利用上面所讲的uDT 函数。

图2-2 单位阶跃序列【实例1-3】 利用MATLAB 命令绘出矩形序列)(5n R 的波形图。

解:MATLAB 源程序为>>n=-3:8;>>x=uDT(n)-uDT(n-5);>>stem(n,x,'fill'),xlabel('n'),grid on >>title('矩形序列') >>axis([-3 8 -0.1 1.1])程序运行结果如图1-3所示。

4. 单边指数序列单边指数序列定义为)()(n u a n x n =【实例2-4】 试用MA TLAB 命令分别绘制单边指数序列)(2.1)(1n u n x n =、)()2.1()(2n u n x n -=、)()8.0()(3n u n x n =、)()8.0()(4n u n x n -=的波形图。

解:MATLAB 源程序为>>n=0:10;>>a1=1.2;a2=-1.2;a3=0.8;a4=-0.8; >>x1=a1.^n;x2=a2.^n;x3=a3.^n;x4=a4.^n; >>subplot(221)>>stem(n,x1,'fill'),grid on >>xlabel('n'),title('x(n)=1.2^{n}') >>subplot(222)>>stem(n,x2,'fill'),grid on>>xlabel('n'),title('x(n)=(-1.2)^{n}') >>subplot(223)>>stem(n,x3,'fill'),grid on >>xlabel('n'),title('x(n)=0.8^{n}') >>subplot(224)>>stem(n,x4,'fill'),grid on图1-3 矩形序列>>xlabel('n'),title('x(n)=(-0.8)^{n}')单边指数序列n 的取值范围为0≥n 。

程序运行结果如图1-4所示。

从图可知,当1||>a 时,单边指数序列发散;当1||<a 时,该序列收敛。

当0>a 时,该序列均取正值;当0<a 时,序列在正负摆动。

5. 正弦序列正弦序列定义为)sin()(0ϕω+=n n x其中,0ω是正弦序列的数字域频率;ϕ为初相。

与连续的正弦信号不同,正弦序列的自变量n 必须为整数。

可以证明,只有当2ωπ为有理数时,正弦序列具有周期性。

【实例1-5】 试用MATLAB 命令绘制正弦序列)6sin()(πn n x =的波形图。

解:MATLAB 源程序为>>n=0:39; >>x=sin(pi/6*n);>>stem(n,x,'fill'),xlabel('n'),grid on >>title('正弦序列') >>axis([0,40,-1.5,1.5]); eree程序运行结果如图1-5所示。

图1-4 单边指数序列6. 复指数序列复指数序列定义为n j a e n x )(0)(ω+=当0=a 时,得到虚指数序列nj e n x 0)(ω=,式中0ω是正弦序列的数字域频率。

由欧拉公式知,复指数序列可进一步表示为)]sin()[cos()(00)(00ωωωωn j n e e e e n x an n j an n j a +===+与连续复指数信号一样,我们将复指数序列实部和虚部的波形分开讨论,得出如下结论:(1)当0>a 时,复指数序列)(n x 的实部和虚部分别是按指数规律增长的正弦振荡序列;(2)当0<a 时,复指数序列)(n x 的实部和虚部分别是按指数规律衰减的正弦振荡序列;(3)当0=a 时,复指数序列)(n x 即为虚指数序列,其实部和虚部分别是等幅的正弦振荡序列。

【实例1-6】 用MA TLAB 命令画出复指数序列n j e n x )6101(2)(π+-=的实部、虚部、模及相角随时间变化的曲线,并观察其时域特性。

解:MATLAB 源程序为>>n=0:30;>>A=2;a=-1/10;b=pi/6; >>x=A*exp((a+i*b)*n); >>subplot(2,2,1)>>stem(n,real(x),'fill'),grid on图1-5 正弦序列>>title('实部'),axis([0,30,-2,2]),xlabel('n') >>subplot(2,2,2)>>stem(n,imag(x),'fill'),grid on>>title('虚部'),axis([0,30,-2,2]) ,xlabel('n') >>subplot(2,2,3)>>stem(n,abs(x),'fill'),grid on >>title('模'),axis([0,30,0,2]) ,xlabel('n') >>subplot(2,2,4)>>stem(n,angle(x),'fill'),grid on>>title('相角'),axis([0,30,-4,4]) ,xlabel('n')程序运行后,产生如图1-6所示的波形。

(二) 离散时间信号的基本运算对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位、反折等。

两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MA TLAB 的点乘和点除、序列移位和反折来实现,与连续时间信号处理方法基本一样。

【实例1-7】 用MA TLAB 命令画出下列离散时间信号的波形图。

(1)()()()[]N n u n u a n x n--=1;(2)()()312+=n x n x (3)()()213-=n x n x ;(4)()()n x n x -=14解:设8.0=a ,8=N ,MATLAB 源程序为>>a=0.8;N=8;n=-12:12; >>x=a.^n.*(uDT(n)-uDT(n-N)); >>n1=n;n2=n1-3;n3=n1+2;n4=-n1; >>subplot(411)图1-6 复指数序列图1-7 离散时间信号的基本运算及波形图>>stem(n1,x,'fill'),grid on >>title('x1(n)'),axis([-15 15 0 1]) >>subplot(412)>>stem(n2,x,'fill'),grid on >>title('x2(n)'),axis([-15 15 0 1]) >>subplot(413)>>stem(n3,x,'fill'),grid on >>title('x3(n)'),axis([-15 15 0 1]) >>subplot(414)>>stem(n4,x,'fill'),grid on >>title('x4(n)'),axis([-15 15 0 1])其波形如图1-7所示。

相关文档
最新文档