第一次实验 MATLAB的数字信号处理基础
数字信号处理MATLAB实验1
![数字信号处理MATLAB实验1](https://img.taocdn.com/s3/m/221cdbb3d1f34693dbef3e0e.png)
实验一熟悉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 基本功能和基础知识操作
![数字信号处理 Matlab实验一 Matlab 基本功能和基础知识操作](https://img.taocdn.com/s3/m/447650c3a1c7aa00b52acb10.png)
温州大学物理与电子信息工程学院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 数字信号处理 实验指导.1
![MATLAB 数字信号处理 实验指导.1](https://img.taocdn.com/s3/m/05d307d28bd63186bcebbc28.png)
武昌理工学院信息工程学院《数字信号处理》实验指导书————MATLAB实验二零一六年九月二十八日目录目录 ............................................................................................................................................. - 2 - MATLAB简介................................................................................................................................. - 3 -一、MATLAB初步 ........................................................................................................... - 3 -1. MATLAB的主要功能 ........................................................................................... - 3 -2.启动MATLAB及界面简介 ................................................................................ - 3 -3. MATLAB的常用命令 ........................................................................................... - 4 -4.基本运算................................................................................................................ - 5 -5.退出........................................................................................................................ - 6 -二、变量与函数、语句、矩阵及其运算.......................................................................... - 6 -1.变量与函数............................................................................................................ - 6 -2.语句与M文件...................................................................................................... - 6 -3.矩阵及其运算........................................................................................................ - 7 -三、MATLAB 支持的数据结构 ...................................................................................... - 8 -四、MATLAB绘图 ........................................................................................................... - 9 -1、绘制二维图形........................................................................................................ - 9 -2、绘制三维图形...................................................................................................... - 10 -五、MATLAB编程 ......................................................................................................... - 11 -1、关系运算和逻辑运算.......................................................................................... - 11 -2、控制语句.............................................................................................................. - 11 -3、函数编写方法与应用.......................................................................................... - 13 - 《数字信号处理》的MATLAB实验.......................................................................................... - 14 - 实验一MATLAB基础入门练习 ................................................................................. - 14 - 实验二离散时间信号分析............................................................................................ - 16 - 实验三离散时间系统及响应........................................................................................ - 18 - 实验四离散傅立叶变换及性质.................................................................................... - 20 - 实验五用FFT和CZT对信号进行频谱分析............................................................ - 21 - 实验六IIR数字滤波器设计与信号滤波..................................................................... - 24 - 实验七用窗函数法设计FIR滤波器........................................................................... - 27 - 实验报告格式............................................................................................................................ - 30 -MATLAB简介MATLAB是MATrix LABoratory的缩写。
Matlab数字信号处理实验报告
![Matlab数字信号处理实验报告](https://img.taocdn.com/s3/m/300ac010580102020740be1e650e52ea5518cead.png)
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数字信号处理实验](https://img.taocdn.com/s3/m/3fd6b3eb700abb68a982fbe9.png)
以 代替上式中的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);
使用Matlab进行数字信号处理的技巧与注意事项
![使用Matlab进行数字信号处理的技巧与注意事项](https://img.taocdn.com/s3/m/eef4702853d380eb6294dd88d0d233d4b14e3f89.png)
使用Matlab进行数字信号处理的技巧与注意事项1. 引言数字信号处理(Digital Signal Processing,简称DSP)是指通过对离散时间信号进行算法处理以达到某种目的的一种技术。
在现代科技和工程领域中,DSP被广泛应用于通信、图像处理、音频处理、医学诊断、雷达和控制系统等众多领域。
而Matlab作为一种强大的数学计算工具,具备优秀的信号处理和算法库,成为众多工程师和研究人员进行数字信号处理的首选之一。
本文将介绍一些使用Matlab 进行数字信号处理时的技巧与注意事项。
2. 信号处理基础知识在使用Matlab进行数字信号处理之前,有一些基础知识是必备的。
首先是对信号的了解,信号可以分为连续时间信号和离散时间信号。
连续时间信号指的是信号在所有时间上都有定义,而离散时间信号则只在某些时间点上有定义。
数字信号处理主要针对离散时间信号进行。
此外,还需要了解采样定理、变换、滤波器以及噪声等基本概念。
3. 信号与信号处理在进行数字信号处理时,首先需要得到待处理的信号。
Matlab提供了多种方法来生成信号,比如使用波形发生器函数、加载文件以及使用模型等。
根据具体情况选择合适的方法生成待处理信号。
4. 信号的可视化与分析在开始处理信号之前,可以使用Matlab中的图形工具对信号进行可视化和分析。
例如,使用plot函数可以绘制信号的时域波形图,使用spectrogram函数可以绘制信号的频谱图,利用histogram函数可以绘制信号的直方图等。
这些图像可以帮助我们更好地理解信号的特征和性质。
5. 信号的滤波处理滤波是数字信号处理中常用的操作之一,用于去除信号中的噪声、增强信号的频率特征等。
Matlab提供了丰富的滤波器设计函数,包括有限冲激响应(FIR)滤波器和无限冲击响应(IIR)滤波器等。
通过选择合适的滤波器类型、阶数和截止频率等参数,可以实现对信号的滤波处理。
6. 时频分析时频分析用于分析信号在时间和频率上的变化情况,帮助我们更全面地认识信号的特性。
matlab 基础及数字信号处理实验
![matlab 基础及数字信号处理实验](https://img.taocdn.com/s3/m/ddd8c82f4b73f242336c5fa8.png)
MATLAB基础一、MATLAB的工作环境1.命令窗口:是用户和MATLAB系统交互的主要窗口。
在该窗口中,用户可以运行函数,执行MATLAB 的基本操作命令以及对MATLAB系统的参数设置等操作。
在命令提示符>>后输入命令如:t=[1,2,3;4,5,6;7,8,9];完成对t的赋值2.帮助的使用:直接在命令行输入help在菜单栏选择help—matlab help直接按F13.图形窗(Figure):用于显示绘出的图形。
通常只要执行了任意一种绘图命令,图形窗都会自动产生。
绘图都是在这个图形窗中进行。
如果要在建一个图形窗,则可在命令窗中输入figure命令,MATALB 就回新建一个图形窗口,并自动给它排出序号。
4.文本编辑窗:其作用是用来创建、编辑和调试MATLAB的相关文件(或称程序,即.M文件),它与一般的编辑调试器有相似的功能。
通常,MA TLAB命令编辑有行命令方式和文件两种。
行命令方式,即在命令窗口中一行一行的输入命令,计算机对每一行命令做出反应。
这种方式,只能用于编辑简单的程序,当程序比较复杂的时候,把程序写成一个由多行语句组成的文件(.M文件),让MATLAB来执行这个程序中的全部语句,MA TLAB文本编辑器的功能就是完成编写,修改和调试这种程序。
其进入方式:1)file—new/open—M-file2)直接在命令窗口输入:edit/edit 文件名二、MATLAB的基本语法1.变量及其赋值1)赋值要求在MATLAB中,变量和常量的标识符最长允许19个字符。
MA TLAB内部只有一种数据格式,就是双精度类型,对应于64位二进制。
赋值就是把数赋予代表常量或变量的标识符。
基本格式为:变量=表达式(或数)在MA TLAB中,变量都代表矩阵。
列矢量可被当做只有一行的矩阵,行矢量也可被当做只有一个行的矩阵,标量(或常数)应该做是1×1的矩阵。
输入矩阵时,应遵循一下规则:整个矩阵的值都应放在方括号中;同一行的个元素以逗号或空格分开;不同行的元素以分号隔开。
数字信号处理相关MATLAB实验内容--第1章
![数字信号处理相关MATLAB实验内容--第1章](https://img.taocdn.com/s3/m/0967c80b844769eae009edb9.png)
实验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进行数字信号处理](https://img.taocdn.com/s3/m/fa7b34dde43a580216fc700abb68a98271feac92.png)
如何使用MATLAB进行数字信号处理MATLAB是一种常用的数学软件工具,广泛应用于数字信号处理领域。
本文将介绍如何使用MATLAB进行数字信号处理,并按照以下章节进行详细讨论:第一章: MATLAB中数字信号处理的基础在数字信号处理中,我们首先需要了解信号的基本概念和数学表示。
在MATLAB中,可以使用向量或矩阵来表示信号,其中每个元素对应着一个离散时间点的信号值。
我们可以使用MATLAB 中的向量运算和函数来处理这些信号。
此外,MATLAB还提供了一组强大的工具箱,包括DSP系统工具箱和信号处理工具箱,以便更方便地进行数字信号处理。
第二章: 数字信号的采样和重构在数字信号处理中,采样和重构是两个核心概念。
采样是将连续信号转换为离散信号的过程,而重构则是将离散信号重新转换为连续信号的过程。
在MATLAB中,可以使用"sample"函数对信号进行采样,使用"interp"函数进行信号的重构。
此外,还可以使用FFT(快速傅里叶变换)函数对离散信号进行频率分析和频谱表示。
第三章: 傅里叶变换与频域分析傅里叶变换是一种常用的信号分析工具,可将信号从时域转换到频域。
MATLAB中提供了强大的FFT函数,可以帮助我们进行傅里叶变换和频谱分析。
通过傅里叶变换,可以将信号分解为不同频率的分量,并且可以通过滤波器和滤波器设计来处理这些分量。
MATLAB还提供了许多用于频域分析的函数,如功率谱密度函数、频谱估计函数等。
第四章: 滤波与降噪滤波是数字信号处理中的重要任务之一,旨在去除信号中的噪声或不需要的频率成分。
在MATLAB中,可以使用FIR和IIR滤波器设计工具箱来设计和实现滤波器。
此外,MATLAB还提供了各种滤波器的函数和滤波器分析工具,如lowpass滤波器、highpass滤波器、带通滤波器等。
这些工具和函数可以帮助我们对信号进行滤波,实现信号降噪和频率调整。
第五章: 时域信号分析与特征提取除了频域分析外,时域分析也是数字信号处理的重要内容之一。
数字信号处理,matlab实验报告
![数字信号处理,matlab实验报告](https://img.taocdn.com/s3/m/6cde3568f5335a8102d220fa.png)
Matlab实验报告实验一:1.实验Matlab代码:N=25;Q=0.9+0.3*j;WN=exp(-2*j*pi/N);x=zeros(25,1);format long; %长整型科学计数for k0=1:25x(k0,1)=Q^(k0-1);end;for k1=1:25;X1(k1,1)=(1-Q^N)/(1-Q*WN^(k1-1));end;X1;X2=fft(x,32);subplot(3,1,1);stem(abs(X1),'b.');axis([0,35,0,15]);title('N=25,formular');xlabel('n'); subplot(3,1,2);stem(abs(X2),'g.');axis([0,35,0,15]);title('N=32, FFT');xlabel('n');for(a=1:25)X3(a)=X1(a)-X2(a)end;subplot(3,1,3);stem(abs(X3),'r.');title('difference');xlabel('n');实验结果如图:实验结论:可以看出基2时间抽选的FFT算法与利用公式法所得到的DFT结果稍有偏差,但不大,在工程上可以使用计算机利用FFT处理数据。
2.实验Matlab代码:N = 1000; % Length of DFTn = [0:1:N-1];xn = 0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);Xk = fft(xn,N);k=[0:1:N-1];subplot(5,1,1);stem(k,abs(Xk(1:1:N)));title('DFT x(n)');xlabel('k');axis([140,240,0,6])subplot(5,1,2);stem(k, abs(Xk(1:1:N)),'r');%画出sin(0.3npi)-cos(0.302npi-pi/4) axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,3);stem(k, 1000*abs(Xk(1:1:N)),'g');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');subplot(5,1,4);stem(k,0.01*abs(Xk(1:1:N)),'k');%画%sin(0.3npi)-cos(0.302npi-pi/4)axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,5);stem(k, 10*abs(Xk(1:1:N)),'m');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');实验结果如图:实验结论:由上图及过程可知,当DFT变换长度为1000时所得到的谱线非常理想。
数字信号处理实验一
![数字信号处理实验一](https://img.taocdn.com/s3/m/5402659d8762caaedd33d4a3.png)
实验一 离散时间信号分析一、实验目的1.熟悉MATLAB 应用环境,常用窗口的功能和使用方法。
2.掌握各种常用的序列,理解其数学表达式和波形表示。
3.掌握在计算机中生成及绘制数字信号波形的方法。
4.掌握序列的相加、相乘、移位、反褶、卷积等基本运算及计算机实现。
5.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。
二、实验原理1.序列的基本概念离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为∞<<∞-n 的整数,n 取其它值)(n x 没有意义。
离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t a x 进行等间隔采样,采样间隔为T ,得到一个有序的数字序列)}({nT x a 就是离散时间信号,简称序列。
2.常用序列常用序列有:单位脉冲序列(单位抽样))(n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。
3.序列的基本运算序列的运算包括移位、反褶、和、积、点乘、累加、差分运算、卷积等。
4.序列的卷积运算)()()()()(n h n x m n h m x n y m *=-=∑∞-∞=上式的运算关系称为卷积运算,式中*代表两个序列卷积运算。
两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。
其计算的过程包括以下4个步骤(1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。
(2)移位:将)(m h -移位n ,得)(m n h -。
当n 为正数时,右移n 位;当n 为负数时,左移n 位。
(3)相乘:将)(m n h -和)(m x 的对应点的值相乘。
数字信号处理实验一
![数字信号处理实验一](https://img.taocdn.com/s3/m/9b32b528a5e9856a56126018.png)
实验一:熟悉MATLAB环境一、思考题:1、比较实验内容第2题中的第4和第5小题的结果,试说明对于周期性信号应当如何采样才能保证周期扩展后与原信号保持一致?答:对于周期性信号,在进行采样时,其采样周期必须满足采样定理,即采样频率应该大于信号最高频率的两倍,这样才能避免迭混,以便采样后仍能准确的恢复原信号。
2、对于有限长序列,如何用MATLAB计算其DTFT?答:用函数freqz可以计算序列在给定的离散频率点上的DTFT,该变换序列是以形如式的有理函数来描述的。
这个函数的表达形式有H=freqz(num,den,w)、[H,w]=freqz(num,den,k)。
函数freqz返回的频率响应值为向量H。
在H=freqz(num,den,w)中,0到π之间指定的频率集由向量w给出。
freqz函数的自变量k就是频率点的总数。
3、对于由两个子系统级联或并联的系统,如何用MATLAB计算他们的幅频响应与相频响应?答:系统的级联或并联实现涉及到了因式分解。
在MATLAB中,我们可以用函数roots来实现多项式的因式分解。
例如,函数r=roots(h)会返回多项式向量h 的根向量。
向量h是以的升幂表示的多项式的系数。
通过计算所得的根向量,可以求出二次因式的系数。
更简单的方法是用从以给定的传输函数H(z)直接求出二阶因式的函数zp2sos。
函数sos=zp2sos(z,p,k)产生以零—极点形式确定的等效传输函数H(z)的每个二阶部分系数的矩阵sos。
二、实验内容:第一到四题源程序:第二题图:第五题:%函数命名:function [x1]=stepshift(n0,n1,n2) n=[n1:n2];x1=[(n-n0)>=0];%源程序:>> [x1]=stepshift(2,1,10);>> n=1:10;>> stem(n,x1);第六题:>> b=[1,sqrt(2),1];>> a=[1,-0.67,0.9];>> [h,w]=freqz(b,a);>> am=20*log10(abs(h)); %求幅频特性>> subplot(2,1,1);plot(w,am);>> xlabel('w');ylabel('am');>> ph=angle(h); %求相频特性>> subplot(2,1,2);plot(w,ph);>> xlabel('w');ylabel('ph');第七题:源程序:>> a=[8 -2 -1 2 3];>> b=[2 3 -1 -3];>> c=conv(a,b); %求a、b的线性卷积>> m=length(c)-1;>> n=0:1:m;>> stem(n,c);>> xlabel('n');ylabel('幅度');第八题:源程序:>> n=50;>> a=[1 -2];>> b=[1 0.1 -0.06];>> x=[1 zeros(1,n-1)];>> k=0:1:n-1;>> y=filter(a,b,x);>> stem(k,y);>> xlabel('n');ylabel('幅度');三、实验总结:通过本次实验,熟悉并掌握MATLAB的主要命令操作,比如序列的简单运算、矩阵的输入和计算等,能熟练编写绘图程序,在计算卷积和绘制幅频响应和相频响应的过程中,充分地巩固了数字信号处理学的理论知识,总之,收获颇多。
《数字信号处理》MATLAB编程实验报告
![《数字信号处理》MATLAB编程实验报告](https://img.taocdn.com/s3/m/fd05481b866fb84ae45c8d78.png)
《计算机程序设计基础》实验报告
6
《数字信号处理》实验报告
实验项目 实验类别 基础性 MATLAB 编程语言环境使用 实验学时 4
实 验 目 的 及 要 求
(1) 正确进入 MATLAB 工作环境并熟悉其基本结构 (2) 熟悉其基本操作命令,包括变量的设置、help 命令的使用、结果的 保存与调用等 (3) 编写 M 文件并在环境中运行 (4) 信号与系统工具包使用
正弦信号程序代码
n=0:0.001:100; y=2*sin(0.1*n+pi/8); plot(n,y), grid on
《计算机程序设计基础》实验报告 3
计算机科学与工程学院 axis([0,100,-3,3])
正弦信号 x1(n)=2 sin(0.1n+pi/8)的图像为
复指数信号程序源代码 clear,t0=0;tf=5;dt=0.05;t1=1; t=t0:dt:tf; st=length(t); alpha=-0.5; w=10; x=exp((alpha+j*w)*t); subplot(1,2,1),plot(t,real(x)),grid on; subplot(1,2,2),plot(t,imag(x)),grid on;
复指数信号
x2 (n) Ae(机程序设计基础》实验报告
4
计算机科学与工程学院
思考题
1.说明点乘(.*)运算和乘法运算(*) 有何不同 答:每一个符号变量都被认为是一个元素,不论它的表达式多么复杂。因此如果你仅从符号
的视角出发,那所有的乘法都是点乘!就相当于两个数相乘一样,没有点乘还是差乘的分别。 但是如果一个矩阵是由符号变量组成的。 那么点乘和差乘就有分别了。 数值运算和符号运算都 是一样的,都要考虑点乘还是差乘
基于 Matlab 的数字信号处理实验报告
![基于 Matlab 的数字信号处理实验报告](https://img.taocdn.com/s3/m/715b790690c69ec3d5bb75ef.png)
第一章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的数字信号处理基本分析解析](https://img.taocdn.com/s3/m/95bd85cf84254b35eefd34d7.png)
实验一 基于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所示。
《数字信号处理》实验及代码
![《数字信号处理》实验及代码](https://img.taocdn.com/s3/m/2e0e17dd28ea81c758f57896.png)
实验一 用Matlab 进行数字信号处理一、实验目的1.掌握 MATLAB 基本的操作;2.学习典型的离散信号的Matlab 实现方法。
3.学习离散时间序列的基本运算:相加、相乘、移位等; 二、实验内容1. 练习把y=sin(x), z=cos(x),u=2sin(x),v=sin(x)/cos(x)在[0,2pi]区间内的4个子图分别用不同的颜色、点型和线型绘制在同一个窗口中,并加上纵坐标、标题、图例和网格线。
2. 利用MATLAB 编程产生和绘制下列有限长序列: (1)单位脉冲序列()n δ (2)单位阶跃序列()u n (3)矩形序列8()R n(4)正弦序列()sin()53x n n ππ=+(5)实指数序列0.9()n u n3.上机调试并打印或记录实验结果。
4.完成实验报告。
三、实验结果1. 实验程序如下:x=0:pi/10:2*pi;y=sin(x); plot(x,y,'r*:');grid on %绘制网格线 hold on z=cos(x); plot(x,z,'y+-'); hold on u=2*sin(x); plot(x,u,'bx-'); hold on v=sin(x)/cos(x); plot(x,v,'ko-');hold onxlabel('x 轴'); %x轴注释ylabel('y 轴'); %y轴注释legend({'y=sin(x)','z=cos(x)', 'u=2sin(x) ', 'v=sin(x)/cos(x) '}); %图形注解2. 程序如下:n=-20:20;n0=0;n1=8;w0=pi/5; w1=pi/3;x1=[(n-n0)==0];x2=[(n-n0)>=0];x3=[(n-n0)>=0& (n-n1)<=0];x4=sin(w0*n+w1);x5=0.9.^n.*x2;subplot(511);stem(n,x1);axis([ -20 20 0 2]);ylabel('\sigma(n)'); subplot(512);stem(n,x2);axis([ -20 20 0 2]);ylabel('u(n)');subplot(513);stem(n,x3);axis([ -20 20 0 2]);ylabel('R8(n)'); subplot(514);stem(n,x4);axis([ -20 20 -2 2]);ylabel(' sin(w0n+w1) '); subplot(515);stem(n,x5);axis([ -20 20 0 2]);ylabel('0.9nu(n)'); xlabel('n');实验二离散信号与系统一、实验目的1.掌握卷积定理、熟悉离散信号和系统的时域特性;2.学习Matlab进行卷积计算方法;3.学习Matlab求解差分方程二、实验内容1.离散信号的基本运算:对序列x(n)={2,3,4,1,2,5} ,n=0,1,2,3,4,5,的移位、乘法、加法、翻转及尺度变换。
Matlab数字信号处理实验报告
![Matlab数字信号处理实验报告](https://img.taocdn.com/s3/m/0088af3bbcd126fff7050b25.png)
实验 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 matlab基本操作
![实验1 matlab基本操作](https://img.taocdn.com/s3/m/15e5792bbd64783e09122b4c.png)
《数字信号处理》实验报告一系别:班级:学号:姓名:日期:指导教师:一、实验内容:实现下列程序:P160 附录例A1,例A2,例A5,例A6,A9用matlab计算微分diff函数用以演算一函数的微分项,相关的函数语法有下列4个:diff(f) 传回f对预设独立变数的一次微分值diff(f,'t') 传回f对独立变数t的一次微分值diff(f,n) 传回f对预设独立变数的n次微分值diff(f,'t',n) 传回f对独立变数t的n次微分值数值微分函数也是用diff,因此这个函数是靠输入的引数决定是以数值或是符号微分,如果引数为向量则执行数值微分,如果引数为符号表示式则执行符号微分。
先定义下列三个方程式,接著再演算其微分项:S1 = '6*x^3-4*x^2+b*x-5';S2 = 'sin(a)';S3 = '(1 - t^3)/(1 + t^4)';diff(S1)diff(S1,2)diff(S1,'b')diff(S2)diff(S3)simplify(diff(S3))填写微分运算的结果积分int函数用以演算一函数的积分项,这个函数要找出一符号式F 使得diff(F)=f。
如果积分式的解析式(analytical form, closed form) 不存在的话或是MATLAB无法找到,则int 传回原输入的符号式。
相关的函数语法有下列4个:int(f) 传回f对预设独立变数的积分值int(f,'t') 传回f对独立变数t的积分值int(f,a,b) 传回f对预设独立变数的积分值,积分区间为[a,b],a和b为数值式int(f,'t',a,b) 传回f对独立变数t的积分值,积分区间为[a,b],a和b为数值式int(f,'m','n') 传回f对预设变数的积分值,积分区间为[m,n],m和n为符号式我们示范几个例子:S1 = '6*x^3-4*x^2+b*x-5';S2 = 'sin(a)';S3 = 'sqrt(x)';int(S1)int(S2)int(S3)int(S3,'a','b')int(S3,0.5,0.6)vpa(int(S3,0.5,0.6)) % 使用numeric函数可以计算积分的数值填写积分运算的结果基本xy平面绘图命令MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一次实验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)
Fi1eEditDebugPara
J一一J
2.MAT1AB中的数据表示
MAT1AB中的基本数据单元为数组矩阵,MAT1AB中的数学运算都是基于矩阵的。
掌握了矩阵运算,就掌握了MAT1AB编程的关键。
MAT1AB中使用到的变量无需事先声
明其数据类型,大小等,MAT1AB会自动根据赋值情况进行解析。
比如,可用通过以下命令产生一个矩阵:
3.常用序列的MAT1AB实现
(1)单位抽样序列。
在MAT1AB中可以用以下函数来实现单位抽样序列
function[x,n]=impseq(nθ,n1z n2)%产生x(n)=de1ta(n-n0);n1<=n0<=n2
if((nθ<n1)∣(nθ>∩2)∣(n1>n2))
error('参数必须满足n1<=nθ<=n2,)end
n=[n1:n2];
x=[zeros(1,(nO-n1))4∕Zθros(1z(n2-nO))];
stem(x);
图3
(2)单位阶跃序列。
在MAT1AB中可用〃>=0来实现〃(〃一%)。
function[x z n]=stemseq(∩0,n1z∩2)%产生x(n)=u(n-
n0);n1<=n0<=n2if((nθ<n1)∣(nθ>n2)∣(n1>n2))
error(,参数必须满足n1<=nθ<=n2)
4.练习
用MAT1AB分别实现序列突〃)={1,2,3,4,6,6,6},并右移3位和左移2位,要求显示序列,并做出图形。
提示,画图时可调用Stem()函数。
三、实验要求
读懂示例程序,会自己产生数字序列。