数字信号处理实验报告一
数字信号处理实验报告

《数字信号处理》实验报告学院:信息科学与工程学院专业班级:通信1303姓名学号:实验一 常见离散时间信号的产生和频谱分析一、 实验目的(1) 熟悉MATLAB 应用环境,常用窗口的功能和使用方法;(2) 加深对常用离散时间信号的理解;(3) 掌握简单的绘图命令;(4) 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号进行频域分析。
二、 实验原理(1) 常用离散时间信号a )单位抽样序列⎩⎨⎧=01)(n δ00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ0≠=n k n b )单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n c )矩形序列 ⎩⎨⎧=01)(n R N 其他10-≤≤N nd )正弦序列)sin()(ϕ+=wn A n xe )实指数序列f )复指数序列()()jw n x n e σ+=(2)离散傅里叶变换:设连续正弦信号()x t 为0()sin()x t A t φ=Ω+这一信号的频率为0f ,角频率为002f πΩ=,信号的周期为00012T f π==Ω。
如果对此连续周期信号()x t 进行抽样,其抽样时间间隔为T ,抽样后信号以()x n 表示,则有0()()sin()t nT x n x t A nT φ===Ω+,如果令w 为数字频率,满足000012s sf w T f f π=Ω=Ω=,其中s f 是抽样重复频率,简称抽样频率。
为了在数字计算机上观察分析各种序列的频域特性,通常对)(jw e X 在[]π2,0上进行M 点采样来观察分析。
对长度为N 的有限长序列x(n), 有∑-=-=10)()(N n n jw jw k k e n x e X其中 1,,1,02-==M k k Mw k ,π 通常M 应取得大一些,以便观察谱的细节变化。
取模|)(|k jw e X 可绘出幅频特性曲线。
数字信号处理实验一实验报告

实验一离散时间信号与系统时域分析一、实验目的1、学习MATLAB语言编程和调试技巧。
2、学会简单的矩阵输入和图形表示法3、掌握简单的绘图命令。
二、实验原理本实验主要为了熟悉MATLAB环境,重点掌握简单的矩阵(信号)输入和绘图命令,特别是绘图命令stem()和plot()。
实验内容中涉及到信号的无失真采样、离散卷积运算和差分方程求解这三个主要的问题。
其基本原理分别如下:对一个模拟信号x(t)进行采样离散化x(n),为了不失真地从采样信号x(n)中恢复原始信号x(t),采样时必须满足采样定理,即采样频率必须大于等于模拟信号中最高频率分量的2备。
一个离散时间系统,输入信号为x(n),输出信号为y(n),运算关系用T【.】表示,则输入与输出的关系可表示为y(n)=T[x(n)]。
三、实验结果实验一x=[3 1 2 0 -4 2 -3];n=-3:1:3;stem(n,x);xlabel('n');ylabel('x(n)');axis([-4 4 -5 5]);grid;n x (n )实验二n=0:9;x=0.5.^n;stem(n,x);xlabel('n');ylabel('x(n)');grid;n x (n )实验三x=[-2 0 1 -1 3];h=[1 2 0 -1];c=conv(x,h);M=length(c)-1;n=0:1:M;stem(n,c);xlabel('n');ylabel('幅度’);n 幅度实验四t=0:1/256:2;x=3*cos(2*pi*t)-2*cos(6*pi*t)+cos(10*pi*t); plot(t,x);grid;实验五T=0.2;t=0:T:2;x=3*cos(2*pi*t)-2*cos(6*pi*t)+cos(10*pi*t); stem(t,x);grid;实验六N=41;a=[0.8 -0.44 0.36 0.22];b=[1 0.7 -0.45 -0.6];x=[1 zeros(1,N-1)];n=0:1:N-1;y=filter(a,b,x);stem(n,y);xlabel('n');ylabel('幅度');n 幅度实验七n=0:1:40;x=[5+3*cos(0.2*pi*n)+4*sin(0.6*pi*n)]; plot(n,x);N=41;a=[0.8 -0.44 0.36 0.22];b=[1 0.7 -0.45 -0.6];x=[5+3*cos(0.2*pi*n)+4*sin(0.6*pi*n)]; n=0:1:40;y=filter(a,b,x);stem(n,y);xlabel('n');ylabel('幅度 ');n 幅度。
数字信号处理实验报告1

实验一序列的产生姓名:高洪美学号:0819419213 班级:生医5班一、实验目的:熟悉MATLAB中产生信号和绘制信号的基本命令。
二、实验环境:基于Windows PC的MATLAB。
三、实验内容:1、单位样本和单位阶跃序列;2、指数信号;3、正弦序列;4、随机信号。
四、实验过程:(一)单位样本和单位阶跃序列:Q1.1运行程序P1.1以产生单位样本序列u[n]并显示它:程序:clf;% Generate a vector from -10 to 20n = -10:20;% Generate the unit sample sequenceu = [zeros(1,10) 1 zeros(1,20)];% Plot the unit sample sequencestem(n,u);xlabel('Time index n');ylabel('Amplitude');title('Unit Sample Sequence');axis([-10 20 0 1.2]);所得图像如下所示:Q1.2 命令clf,axis,title,xlable和ylable的作用是什么:答:clf:运行程序时弹出显示图像的面板;Axis:规定横纵坐标的范围;Title:使图像面板上方显示相应的题目名称;Xlable:定义横坐标的名字;Ylable:定义纵坐标的名字。
Q1.3 修改程序P1.1以产生带有延时11个样本的延迟单位样本序列ud[n],运行修改的程序并且显示产生的序列。
程序:clf;% Generate a vector from 0 to 30n = 0:30;% Generate the unit sample sequenceud = [zeros(1,11) 1 zeros(1,19)];% Plot the unit sample sequencestem(n,ud);xlabel('Time index n');ylabel('Amplitude');title('Unit Sample Sequence');axis([0 30 0 1.2]);所得图像如下所示:Q1.4修改程序P1.1以产生单位步长序列s[n]。
数字信号处理实验报告

数字信号处理实验报告引言数字信号处理(Digital Signal Processing,DSP)是一门研究数字信号的获取、分析、处理和控制的学科。
在现代科技发展中,数字信号处理在通信、图像处理、音频处理等领域起着重要的作用。
本次实验旨在通过实际操作,深入了解数字信号处理的基本原理和实践技巧。
实验一:离散时间信号的生成与显示在实验开始之前,我们首先需要了解信号的生成与显示方法。
通过数字信号处理器(Digital Signal Processor,DSP)可以轻松生成和显示各种类型的离散时间信号。
实验设置如下:1. 设置采样频率为8kHz。
2. 生成一个正弦信号:频率为1kHz,振幅为1。
3. 生成一个方波信号:频率为1kHz,振幅为1。
4. 将生成的信号通过DAC(Digital-to-Analog Converter)输出到示波器上进行显示。
实验结果如下图所示:(插入示波器显示的正弦信号和方波信号的图片)实验分析:通过示波器的显示结果可以看出,正弦信号在时域上呈现周期性的波形,而方波信号则具有稳定的上下跳变。
这体现了正弦信号和方波信号在时域上的不同特征。
实验二:信号的采样和重构在数字信号处理中,信号的采样是将连续时间信号转化为离散时间信号的过程,信号的重构则是将离散时间信号还原为连续时间信号的过程。
在实际应用中,信号的采样和重构对信号处理的准确性至关重要。
实验设置如下:1. 生成一个正弦信号:频率为1kHz,振幅为1。
2. 设置采样频率为8kHz。
3. 对正弦信号进行采样,得到离散时间信号。
4. 对离散时间信号进行重构,得到连续时间信号。
5. 将重构的信号通过DAC输出到示波器上进行显示。
实验结果如下图所示:(插入示波器显示的连续时间信号和重构信号的图片)实验分析:通过示波器的显示结果可以看出,重构的信号与原信号非常接近,并且能够还原出原信号的形状和特征。
这说明信号的采样和重构方法对于信号处理的准确性有着重要影响。
数字信号处理实验报告1

《数字信号处理》实验报告实验一:数字低通、高通滤波器实验实验二:数字带通、带阻滤波器实验系别:信息科学与技术系专业班级:电子信息工程0902班学生姓名:王俊知(053)同组学生:成绩:指导教师:刘海龙(实验时间:20年月日——20年月日)华中科技大学武昌分校实验一数字低通、高通滤波器实验1、实验目的使学生了解和熟悉软件Matlab的使用,了解数字低通、高通滤波器零极点的作用及数字低通、高通滤波器的幅频特性和相频特性。
使学生熟悉整数型滤波器的设计。
2、实验内容与步骤1、在计算机上运行Matlab软件,根据滤波器的参数,用Matlab软件设计出数字低通、高通滤波器、画出数字低通、高通滤波器的幅频特性和相频特性的程序,或按照范例程序进行修改,运行程序,观察滤波器的零极点分布图、幅频特性和相频特性图。
2、改变滤波器的零极点分布,再运行程序,观察幅频特性和相频特性的不同,滤波器的通带有什么改变。
3、再次修改程序,输入数字信号,使其通过滤波器,并画出输入、输出滤波器的数字信号波形,运行程序。
观看输入、输出滤波器的数字信号波形,仔细观察其区别。
3、实验设备1、实验场所:信息科学与技术系实验室机房。
2、硬件设备:计算机若干(由学生人数定)。
3、实验软件:Matlab。
整系数低通滤波器程序如下:clear all;clc;close all;m=10;for i=1:m+1if i==1B(i)=1;elseif i==m+1B(i)=-1;else B(i)=0;endendendA=[1,-1];N=8192;[H,f]=freqz(B,A,N);plot(f*25/pi,abs(H));grid;figure,plot(f*25/pi,angle(H));grid;figure,zplane(B,A);k=0:N-1;f=2*k/N;load('C:\MATLAB7\work\RawData.mat');x=rawdata(1,1:N);w=filter(B,A,x);figure;plot(x);title('输入信号');figure;plot(w);title('输出信号');滤波器的幅频特性和相频特性曲线、零极点分布、输入、输出滤波器的数字信号波形图:整系数高通滤波器程序如下:clear all;clc;close all;m=10;for i=1:m+1if i==1B(i)=1;elseif i==m+1B(i)=-1;else B(i)=0;endendendA=[1,1];N=8192;[H,f]=freqz(B,A,N);plot(f*25/pi,abs(H));grid;figure,plot(f*25/pi,angle(H));grid;figure,zplane(B,A);k=0:N-1;f=2*k/N;load('C:\MATLAB7\work\RawData.mat');x=rawdata(1,1:N);w=filter(B,A,x);figure;plot(x);title('输入信号');figure;plot(w);title('输出信号');滤波器的幅频特性和相频特性曲线、零极点分布、输入、输出滤波器的数字信号波形图:改变参数clear all;clc;close all;m=11;for i=1:m+1if i==1B(i)=1;elseif i==m+1B(i)=1;else B(i)=0;endendendA=[1,1];N=8192;[H,f]=freqz(B,A,N);plot(f*25/pi,abs(H));grid;figure,plot(f*25/pi,angle(H));grid; figure,zplane(B,A);k=0:N-1;f=2*k/N;load('C:\MATLAB7\work\RawData.mat'); x=rawdata(1,1:N);w=filter(B,A,x);figure;plot(x);title('输入信号'); figure;plot(w);title('输出信号');正负120度零点抵消程序如下:clear all;clc;close all;m=24;for i=1:m+1if i==1B(i)=1;elseif i==m+1B(i)=-1;else B(i)=0;endendendA=[1,1,1];N=8192;[H,f]=freqz(B,A,N);plot(f*25/pi,abs(H));grid;figure,plot(f*25/pi,angle(H));grid;figure,zplane(B,A);k=0:N-1;f=2*k/N;load('C:\MATLAB7\work\RawData.mat');x=rawdata(1,1:N);w=filter(B,A,x);figure;plot(x);title('输入信号');figure;plot(w);title('输出信号');滤波器的幅频特性和相频特性曲线、零极点分布、输入、输出滤波器的数字信号波形图:正负60度零点抵消程序如下:clear all;clc;close all;m=24;for i=1:m+1if i==1B(i)=1;elseif i==m+1B(i)=-1;else B(i)=0;endendendA=[1,-1,1];N=8192;[H,f]=freqz(B,A,N);plot(f*25/pi,abs(H));grid;figure,plot(f*25/pi,angle(H));grid;figure,zplane(B,A);k=0:N-1;f=2*k/N;load('C:\MATLAB7\work\RawData.mat');x=rawdata(1,1:N);w=filter(B,A,x);figure;plot(x);title('输入信号');figure;plot(w);title('输出信号');滤波器的幅频特性和相频特性曲线、零极点分布、输入、输出滤波器的数字信号波形图:实验二数字带通、带阻滤波器实验1、实验目的使学生了解数字带通、带阻滤波器设计原理及数字带通、带阻滤波器的幅频特性和相频特性。
数字信号处理实验报告1-5

实验一时域离散信号的产生及时域处理实验目的:了解Matlab软件数字信号处理工具箱的初步使用方法。
掌握其简单的Matlab语言进行简单的时域信号分析。
实验内容:[1.1]已知两序列x1=[0,1,2,3,4,3,2,1,0];n1=[-2:6];x2=[2,2,0,0,0,-2,-2],n2=[2:8].求他们的和ya及乘积yp. 程序如下:x1=[0,1,2,3,4,3,2,1,0];ns1=-2;x2=[2,2,0,0,0,-2,-2];ns2=2;nf1=ns1+length(x1)-1;nf2=ns2+length(x2)-1;ny=min(ns1,ns2):max(nf1,nf2);xa1=zeros(1,length(ny));xa2=xa1;xa1(find((ny>=ns1)&(ny<=nf1)==1))=x1;xa2(find((ny>=ns2)&(ny<=nf2)==1))=x2;ya=xa1+xa2yp=xa1.*xa2subplot(4,4,1),stem(ny,xa1,'.')subplot(4,1,2),stem(ny,xa2,'.')line([ny(1),ny(end)],[0,0])subplot(4,1,3),stem(ny,ya,'.')line([ny(1),ny(end)],[0,0])subplot(4,1,4),stem(ny,yp,'.')line([ny(1),ny(end)],[0,0])[1.2]编写产生矩形序列的程序。
并用它截取一个复正弦序列,最后画出波形。
程序如下:clear;close alln0=input('输入序列起点:n0=');N=input('输入序列长度:N=');n1=input('输入位移:n1=');n=n0:n1+N+5;u=[(n-n1)>=0];x1=[(n-n1)>=0]-[(n-n1-N)>=0];x2=[(n>=n1)&(n<(N+n1))];x3=exp(j*n*pi/8).*x2;subplot(2,2,1);stem(n,x1,'.');xlabel('n');ylabel('x1(n)');axis([n0,max(n),0,1]);subplot(2,2,3);stem(n,x2,'.');xlabel('n');ylabel('x2(n)');axis([n0,max(n),0,1]);subplot(2,2,2);stem(n,real(x3),'.'); xlabel('n');ylabel('x3(n)的实部');line([n0,max(n)],[0,0]);axis([n0,max(n),-1,1]);subplot(2,2,4);stem(n,imag(x3),'.'); xlabel('n');ylabel('x3(n)的虚部');line([n0,max(n)],[0,0]);axis([n0,max(n),-1,1]);[1.3]利用已知条件,利用MATLAB生成图形。
数字信号处理实验报告实验一

实验一:系统响应及系统稳定性1 实验目的(1)掌握求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
2 实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。
在计算机上适合用递推法求差分方程的解,最简单的方法是采用MA TLAB语言的工具箱函数filter函数。
也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。
重点分析系统的稳定性,包括观察系统的暂态响应和稳态响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。
或者系统的单位脉冲响应满足绝对可和的条件。
系统的稳定性由差分方程的系数决定。
实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件,可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的,系统的稳态输出是指当n→∞时,系统的输出。
如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。
注意在以下实验中均假设系统的初始状态为零。
3 实验内容及步骤(1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用filter函数或conv 函数求解系统输出响应的主程序。
程序中要有绘制信号波形的功能。
(2)给定一个低通滤波器的差分方程为y(n) = 0.05x(n) + 0.05x(n-1) + 0.9y(n-1)输入信号x1(n) = R8(n) , x8 = u(n)①分别求出x1 = R8(n) 和x8 = u(n) 的系统响应,并画出其波形。
数字信号处理实验报告完整版[5篇模版]
![数字信号处理实验报告完整版[5篇模版]](https://img.taocdn.com/s3/m/7b21a71bb5daa58da0116c175f0e7cd184251866.png)
数字信号处理实验报告完整版[5篇模版]第一篇:数字信号处理实验报告完整版实验 1利用 T DFT 分析信号频谱一、实验目的1.加深对 DFT 原理的理解。
2.应用 DFT 分析信号的频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境计算机、MATLAB 软件环境三、实验基础理论T 1.DFT 与与 T DTFT 的关系有限长序列的离散时间傅里叶变换在频率区间的N 个等间隔分布的点上的 N 个取样值可以由下式表示:212 /0()|()()0 1Nj knjNk NkX e x n e X k k Nπωωπ--====≤≤-∑由上式可知,序列的 N 点 DFT ,实际上就是序列的 DTFT 在 N 个等间隔频率点上样本。
2.利用 T DFT 求求 DTFT方法 1 1:由恢复出的方法如下:由图 2.1 所示流程可知:101()()()Nj j n kn j nNn n kX e x n e X k W eNωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑由上式可以得到:IDFT DTFT第二篇:数字信号处理实验报告JIANGSUUNIVERSITY OF TECHNOLOGY数字信号处理实验报告学院名称:电气信息工程学院专业:班级:姓名:学号:指导老师:张维玺(教授)2013年12月20日实验一离散时间信号的产生一、实验目的数字信号处理系统中的信号都是以离散时间形态存在的,所以对离散时间信号的研究是数字信号的基本所在。
而要研究离散时间信号,首先需要产生出各种离散时间信号。
使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大绘图功能,便于用户直观地处理输出结果。
通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,实现信号的卷积运算,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉工程大学数字信号处理实验报告姓名:周权学号:1204140228班级:通信工程02一、实验设备计算机,MATLAB语言环境。
二、实验基础理论1.序列的相关概念2.常见序列3.序列的基本运算4.离散傅里叶变换的相关概念5.Z变换的相关概念三、实验内容与步骤1.离散时间信号(序列)的产生利用MATLAB语言编程产生和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形表示。
四实验目的认识常用的各种信号,理解其数字表达式和波形表示,掌握在计算机中生成及绘制数字信号波形的方法,掌握序列的简单运算及计算机实现与作用,理解离散时间傅里叶变换,Z变换及它们的性质和信号的频域分实验一离散时间信号(序列)的产生代码一单位样值x=2;y=1;stem(x,y);title('单位样值 ')单位阶跃序列n0=0;n1=-10;n2=10;n=[n1:n2];x=[(n-n0)>=0];stem(n,x);xlabel('n');ylabel('x{n}');title('单位阶跃序列');实指数序列n=[0:10];x=(0.5).^n;stem(n,x);xlabel('n');ylabel('x{n}');title('实指数序列');正弦序列n=[-100:100];x=2*sin(0.05*pi*n); stem(n,x);xlabel('n');ylabel('x{n}');title('正弦序列');随机序列n=[1:10];x=rand(1,10); subplot(221); stem(n,x);xlabel('n'); ylabel('x{n}'); title('随机序列');实验二序列的运算(1)利用MATLAB语言编程实现信号平滑运算。
(2)利用MATLAB语言编程实现信号的调制。
(3)利用MATLAB语言编程实现信号卷积运算。
(4)利用MATLAB语言编程实现信号离散傅立叶的正反变换。
利用MATLAB语言编程实现信号的圆周移位、圆周卷积,验证DFT 的圆周时移、圆周卷积性质和圆周卷积与线性卷积的关系。
验证一个周期实序列奇偶部分的DFT与此序列本身的DFT之间的关系。
实验二序列的运算平滑运算r=51;d=0.8*(rand(r,1)-0.5);m=0:r-1;s=2*m.*(0.9.^m);x=s+d';subplot(2,1,1);plot(m,d','r-',m,s,'g--',m,x,'b-.');xlabel('Time index n');ylabel('Amplitude');legend('d[n]','s[n]','x[n]');x1=[0 0 x]; x2=[0 x 0]; x3=[x 0 0];y=(x1+x2+x3)/3;subplot(2,1,2);plot(m,y(2:r+1),'r-',m,s,'g--');legend('y[n]','s[n]');xlabel('Time index n');ylabel('Amplitude');调制程序Fm=10;Fc=100;Fs=500;k=0:199;t=k/Fs;x=sin(2*pi*Fm*t);y=x.*cos(2*pi*Fc*t);X=fft(x,256);Y=fft(y,256);subplot(2,2,1);plot(x);xlabel('t(s)');ylabel('x');title('±»µ÷ÐźÅ');subplot(2,2,2);plot(X);plot([-128:127],fftshift(abs(X)));xlabel('w');ylabel('X(jw)'); title('xx');subplot(2,2,3);plot(y);xlabel('t(s)');ylabel('y');title('xy');subplot(2,2,4);plot(Y);plot([-128:127],fftshift(abs(Y)));xlabel('w');ylabel('Y(jw)');title('yy');卷积M函数function[y,ny]=conv_m(x,nx,h,nh)nyb=nx(1)+nh(1);nye=nx(length(x))+nh(length(h)); ny=[nyb:nye];y=conv(x,h);卷积程序x=[0 0.5 1 1.5 0];nx=0:4;h=[1 1 1 10 0];nh=0:4;[y,ny]=conv_m(x,nx,h,nh);subplot(2,2,1);stem(nx,x);title('xulie x'); xlabel('n');ylabel('x(n)');subplot(2,2,2);stem(nh,h);title('xulie h'); xlabel('n');ylabel('h(n)');subplot(2,2,3);stem(ny,y);title('junji');xlabel('n');ylabel('y(n)');Dftfunction[Xk]=dft(xn,N) n=[0:1:N-1];k=n;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;Idftfunction[Xk]=idft(xn,N) n=[0:1:N-1];k=n;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^(-nk);Xk=xn*WNnk/N;程序xn=[1,1,1,1];N=4;xk=dft(xn,N)'xk=[4,0,0,0];N=4;xk=idft(xn,N)'Matlab程序xn=[1,1,1,1]; N=length(xn); n=0:N-1; k=0:N-1; Xk=xn*exp(-j*2*pi/N).^(n'*k);x=(Xk*exp(j*2*pi/N).^(n'*k))/N;subplot(1,2,2);stem(k,abs(Xk));grid;title('|X(k)|');axis([-1,N,1.1*min(abs(Xk)),1.1*max(abs(Xk))]); subplot(1,2,1);stem(n,xn);grid;title('x(n)');axis([-1,N,1.1*min(xn),1.1*max(xn)]);序列的圆周移位已知序列X(n)=10(0.8)n(0≤n ≤10),序列圆周向右移m=3,绘制原序列波形和圆周移位序列波形cigmod 函数function m=sigmod(n,N);m=rem(n,N);m=m+N;m=rem(m,N); cirshhift 函数function y=cirshift(x,m,N);if length(x)>Nerror('N must be greater then length(x)');endx=[x zeros(1,N-length(x))];n=[0:N-1];n=sigmod(n-m,N);y=x(n+1);圆周移位程序n=[0:10];M=6;N=11;x=10*0.8.^n;y=cirshift(x,M,N);subplot(211)stem(n,x);title('原序列波形');xlabel('n');ylabel('x(n)');subplot(212)stem(n,y);title('圆周移位序列波形');xlabel('n');ylabel('y(n)');圆周卷积已知X1=[1 2 2],x2=[1 2 3 4],试计算x1○4x2程序卷积程序function y=circonvt(x1,x2,N)if length(x1)>Nerror('Length(x1)is not great than N'); endif length(x2)>Nerroe('Lengeh(x2)is not greater than N'); endx1=[x1,zeros(1,N-length(x1))];x2=[x2,zeros(1,N-length(x2))];m=[0:N-1];x2=x2(mod(-m,N)+1);H=zeros(N,N);for n=1:N;H(n,:)=cirshift(x2,n-1,N); endy=x1*H';运算程序x1=[1 2 2];x2=[1 2 3 4];disp('N=5')N=5;y=circonvt(x1,x2,N)Z变换求(n-1)u(n)的Z变换F=ztrans(sym('n-1'))F=simplify(F)F =z/(z - 1)^2 - z/(z - 1)F =-(z*(z - 2))/(z - 1)^2结果分析:将函数分解为nu(n)-3u(n),再分别进行Z变换。
其中用到了ztrans函数和simplify函数逆Z变换求X(z)=z-1/(1+z-1-20z-2),4<|z|<5a=[1 1 -20];b=[0 1 0];[r,p,k]=residuez(b,a)结果分析:r=-1,1为函数z变换后的系数,p为逆变换后系数。
验证一个周期实序列奇偶部分的DFT与此序列本身的DFT之间关系dft程序function[Xk]=dft(xn,N) n=[0:1:N-1];k=n;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;Idft程序function[Xk]=idft(xn,N)n=[0:1:N-1];k=n;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^(-nk);Xk=xn*WNnk/N;function[xev,xod]=circevod(x)if any(imag(x)~=0)error('不是实序列')endN=length(x);n=0:(N-1);xev=0.5*(x+x(sigmod(-n,N)+1));xod=0.5*(x-x(sigmod(-n,N)+1));已知序列X(n)=10(0.8)n,序列长度N=21绘出傅里叶的奇数部分和偶数部分并求它们的DFT n=[0:20];N=length(n);x=10*0.8.^n;[xev,xod]=circevod(x);subplot(221);stem(n,xev);title('奇部');xlabel('n');ylabel('xev(n)'); subplot(222)stem(n,xod);title('偶部');xlabel('n');ylabel('xod(n)');hold on plot(n,zeros(1,N))hold offXkev=dft(xev,N);Xkod=dft(xod,N);Xkse=dft(x,N);subplot(223);stem(n,real(Xkev));xlabel('n');ylabel('Xkev(k)');title('偶部分的DFT');subplot(224);stem(n,imag(Xkod));xlabel('k');ylabel('Xkod(k)');title('奇部分的DFT');hold onplot(n,zeros(1,N))hold off四:实验总结通过这几个实验对MATLAB有了简单的认识,并学会了基本的编写方法,也从中了解到了一些基本运算函数。