文档库 最新最全的文档下载
当前位置:文档库 › MATLAB与ANSYS数据接口的开发研究及应用

MATLAB与ANSYS数据接口的开发研究及应用

MATLAB与ANSYS数据接口的开发研究及应用
MATLAB与ANSYS数据接口的开发研究及应用

【含源代码】北邮dsp-MATLAB实验三梳状滤波器的应用

Dsp-matlab实验 实验三:梳状滤波器的应用 设 计 报 告 课题名称:梳状滤波器的应用 学生姓名: 班级: 班内序号: 学号: 日期:2015/06/15

目录 一、实验内容········································· 二、Matlab运行结果(含分析)································· 三、Matlab源代码···························· 四、遇到的难题与解决方法···························· 参考文献·························································

一、实验内容 录制一段自己的话音,时间长度及取样频率自定;对该段声音加入一次反射、三次反射和无穷多次反射。试验报告要求: 1、对试验原理的说明; 回声往往是原始声音衰减后的多个延迟叠加而组成的,因此回声可以用延迟单元来生成。X(n)表示原始声音信号,α为衰减系数,N为延迟周期,回声信号Y(n)=X(n)α*x(n-T)+α^2*x(n-2T)+……+α^N*x(n-NT). Z变换后的系统函数H(Z)可由梳状滤波器实现。MATLAB filter函数可用来仿真差分方程,本次实验用的就是这个函数。 2、在同一张图上,绘制原声音序列() x n、加入一次反射后的声音序列 1() x n、加入三次反射后的声音序列 3() x n和加入无穷多次反射后的声音序列() I x n;

其中蓝色为原声音序列x(n),粉红色为加入一次反射后的声音序列 x1(n),绿色为加入三次反射后的声音序列x3(n),红色为加入无穷多次反射后的声音序列x ∞(n)。 二、Matlab 运行结果(含分析)· 结合上述各序列,分析延时、衰减系数对回声效果的影响(提示:定量考察序列()x n 、1()x n 、3()x n 和()I x n 之间的区别) 延时不变时,衰减系数a 从零增大到1的过程中,回声效果由差变好再变差。a 很小时几乎听不到回声,a 在0.5±0.1时回声效果最明显,a 接近1时声音变得很不清晰,几乎不可识别。衰减系数不变时延时T 从零增大的过程中回声效果由差变好再变差。T 接近0时可以听到回声,但多次回声的层次感不清晰。0.1s1s 三、Matlab 源代码· >> [x,fs]=audioread('a.wav');sound(x,fs);a=0.6;T=0.2; y1=filter([1,zeros(1,T*fs-1),a],1,x);sound(y1,fs);wavwrite(y1,fs,'echo1.wav'); y2=filter([1,zeros(1,T*fs-1),a,zeros(1,T*fs-1),a^2,zeros(1,T*fs-1),a^3],1,x); sound(y2,fs);wavwrite(y2,fs,'echo2.wav');y3=filter(1,[1,zeros(1,T*fs-1),a],x);sound(y3,fs);wavwri te(y3,fs,'echo3.wav');plot(y3,'m'); hold on;plot(y2,'r'); hold on;plot(y1,'g');hold on;plot(x,'b'); 四、遇到的难题与解决办法 最开始遇到的问题是matlab 软件安装问题,因为电脑环境的特殊性尝试了多次才成功; 在建模过程中发现对实验原理因为学习时间过长有些不熟悉,于是翻书查阅复习,熟悉实验原理; 在实验过程中因为粗心,忘记保存,没有打符号等等之类问题使系统开始报错,细心调试之后成功建模

北邮dsp软件实验报告

Matlab仿真实验 实验报告 学院:电子工程学院 专业:电子信息科学与技术 班级: 学号: 姓名:

时间:2015年12月23日 实验一:数字信号的FFT分析 1.实验目的 通过本次试验,应该掌握: (a)用傅里叶变换进行信号分析时基本参数的选择 (b)经过离散时间傅里叶变换和有限长度离散傅里叶变换后信号频谱上的区别,前者DTFT时间域是离散信号,频率域还是连续的,而DFT在两个域中都是离散的。(c)离散傅里叶变化的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。 (d)获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。(e)建立DFT从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用时数字音频压缩中的分析滤波器,例如DVD AC3和MPEG Audio。 2.实验容、要求及结果。 (1)离散信号的频谱分析: 设信号x(n)=0.001*cos(0.45n)+sin(0.3n)-cos(0.302n-) 此信号的0.3谱线相距很近,谱线0.45的幅度很小,请选择合适的序列长度N和窗函数,用DFT分析其频谱,要求得到清楚的三根谱线。 【实验代码】:

k=2000; n=[1:1:k]; x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4); subplot(2,1,1); stem(n,x,'.'); title(‘时域序列'); xlabel('n'); ylabel('x(n)'); xk=fft(x,k); w=2*pi/k*[0:1:k-1]; subplot(2,1,2); stem(w/pi,abs(xk)); axis([0 0.5 0 2]); title('1000点DFT'); xlabel('数字频率'); ylabel('|xk(k)|'); 【实验结果图】:

北邮Matlab实验报告概论

《数字信号处理》Matlab 实验 一.实现重叠相加和重叠保留算法,完成线性卷积的分段计算(可任意指定()x n 及()h n ); 1、 对算法的概括性说明; 1)重叠相加法 重叠相加法是将待过滤的信号分割成长为N 的若干段,每一段都可以和有限时宽单位取 样响应作卷积,再将过滤后的各段重叠相加。 具体算法实现:建立缓存序列,每次输 入N 点序列,通过计算x(n)和h(n) 的循环卷积实现线性卷积运算,将缓存的M-1点序 列和卷积结果相加,并输出前N 点作为计算结果,同时缓存后M-1点,如此循环,直至 所有分段计算完毕,则输出序列y(n)为最终计算结果。 2)重叠保留法 重叠保留法相当于将x l (n )和h(n )作循环卷积,然后找出循环卷积中相当于线性卷积的部 分。在这种情况下,将序列y(n)分为长为N 的若干段,每个输入段和前一段有M-1个重 叠点 。此时只需要将发生重叠的前M-1个点舍去,保留重叠的部分并输出,则可获得序 列y(n)。

2、源代码及流程图; 2.1 源代码: function[y] = overlap_add(x,h,N) M = length(h); if N

北邮数字信号处理Matlab仿真实验

《数字信号处理》Matlab 实验 一.离散信号的 FFT 分析 知识点:利用FFT 对信号频谱进行分析,用DFT 进行信号分析时基本参数的选择,以及信号经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别。 实验教学内容: 1.用Matlab 编程上机练习。已知: N=25。这里Q=0.9+j0.3。可以推导出 , 首先根据这个式子计算X(k)的理论值,然后计算输入序列x(n)的32个值,再利用基2时间抽选的FFT 算法,计算x(n)的DFT X(k),与X(k)的理论值比较(要求计算结果最少6位有效数字)。 解: format long Q=0.9+0.3i; WN=exp(-2*pi*1i/32); Xk=(1-Q^32)./(1-Q*WN.^[0:24]); xn=Q.^[0:24]; Xkfft=fft(xn,32); for (k0=1:1:25) difference=Xk(k0)-Xkfft(k0); end; subplot(3,1,1);stem(abs(Xk(1:1:24)),'.');title('DFT x(n)');xlabel('k');axis([0,35,0,15]); subplot(3,1,2);stem(abs(Xkfft(1:1:32)),'g.');title('FFT x(n)');xlabel('k');axis([0,35,0,15]); subplot(3,1,3);stem(abs(difference(1:1:25)),'r.');title('Xk-Xkfft');xlabel('k');axis([0,35,0,15]); 0n N-1 ()0 n 0, n N n Q x n ?≤≤=? <≥?11,011)()()(k k 1 nk 1 -=--===∑∑-=-=N k QW Q QW W n x k X N N n N N n N N n ,

北邮DSP数字信号处理Matlab实验一

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

b)利用.m文件 M文件代码: function[x,n]=u(n0,n1,n2) if((n0=0; 实现2u(n-5)的命令是: >> x=2*u(5,-10,10); >> n=-10:10; >> stem(n,x) 图像为:

MATLAB实验报告北京邮电大学

Matlab实验报告 学院:信息与通信工程学院班级:201321113 学号:2013210381 班内序号:18 姓名:石雪原

实验题目1.实现重叠相加和重叠保留算法一.实验原理 重叠相加法和重叠保留法的实质都是以逐段地方式通过循环卷积来完成线性卷积的计算。将输入序列x(n)进行分段,每段长为N,且N≥M(M为有限长因果序列h(n)的长度),x(n)逐段与h(n)进行循环卷积,在重叠保留法中需在x(n)序列首部加入长度为M-1的0序列。 在算法中,在获得N个点的输入后,进行N+M-1点循环卷积计算,之后输出N个点。通过for循环逐段进行循环卷积,使用FFT和IFFT计算两个有限长序列的N点循环卷积结果。 二.源代码和流程图 重叠相加法代码 function [Y]=overpl(x,h,N) Lx=length(x); %序列长度 M=length(h); %h(n)长度 x=[x,zeros(1,N-1)]; t=zeros(1,M-1); Y=zeros(1,Lx+M-1); a=floor(Lx/N); for k=0:a A=x(k*N+1:k*N+N); y1=fft(A,Lx+M-1); %利用fft进行运算 y2=fft(h,Lx+M-1); y3=y1.*y2; q=ifft(y3,Lx+M-1); Y(k*N+1:k*N+M-1)=q(1:M-1)+t(1:M-1); Y(k*N+M:k*N+N)=q(M:N); t(1:M-1)=q(N+1:N+M-1); end Y(1:Lx+M-1);

对应流程图 图二 图一:每段利用fft和ifft实现循环卷积 图二:对x(n)逐段进行循环卷积然后相加得输出线性卷积结果y(n) 重叠保留法代码 function[Y]=overlpsav(x,h,N) Lx=length(x); M=length(h); M1=M -1; L=N-M1; h=[h,zeros(1,N-M)]; x=[zeros(1,M1),x,zeros(1,N-1)];

北邮Matlab仿真 实验

[键入公司名称] Matlab仿真实验 [键入文档副标题] 2010211201陈建文10210987 2012-12-10 实验报告主要内容是对3个实验的完成过程的介绍和总结

目录 数字信号的FFT分析 (2) DTMF信号的编码 (6) FIR数字滤波器的设计和实现 (10) 错误分析 (14) 经验总结 (15) 实验一:数字信号的FFT分析: 实验目的: (1)用傅立叶变换进行分析是基本参数的选择。 (2)经过离散时间傅立叶变换和有限长度离散傅立叶变换后信号频谱上的区别,前者DTMF时间域是离散信号,频率域还是连续的,而DFT在两个区域中都是离散的。 (3)离散傅立叶变换的基本原理、特性,以及经典的快速算法,体会快速算法的效率 (4)获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时域分析的学习和研究大侠基础。 (5)建立DFT从整体上可看成是有窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用是数字音频压缩中的分析滤波器,例如DVD AC3和 MPEG Audio。 实验内容和要求: (1)离散信号的频谱分析: 设信号 x(n)=0.001*cos(0.45n*pi)+sin(0.3n*pi)-cos(0.302n*pi-pi/4) 此信号的0.3pi和0.302pi的两根频谱线相距很近,谱线0.45pi的幅度很小,请选择合适的序列长度N和窗函数,用DFT分析其频谱,要求得到清楚的三根谱线。

(2)DTMF信号频谱分析 用计算机声卡采用一段通信系统中电话双音多频(DTMF)拨号数字0——9的数 据,采用快速傅立叶变换(FFT)分析这10个号码DTMF拨号是的频谱。 设计思路1: 只要将x(n)表达式敲入,再利用fft(x(n),N)函数进行傅立叶变换,之后再用subplot函数进行图形绘制,本题关键在于N的确定,只有合适的大小才能满足题目要求。 代码1: N = 1000; % Length of DFT n = [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); xn1=0.001*cos(0.45*n*pi); Xk1 = fft(xn1,N); xn2=sin(0.3*n*pi); Xk2 = fft(xn2,N); xn3=-cos(0.302*n*pi-pi/4); Xk3 = fft(xn3,N); k=[0:1:N/2]; subplot(5,1,1);stem(k,abs(xn(1:1:(N/2+1))),'.');title('x(n)');xlabel( 'k');axis([140,240,0,4]); subplot(5,1,2);stem(k,abs(Xk(1:1:(N/2+1))),'r.');title('DFT 0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi- pi/4)');xlabel('k');axis([140,240,0,4]); subplot(5,1,3);stem(k,abs(Xk1(1:1:(N/2+1))),'g.');title('DFpi)');xlab el('k');axis([140,240,0,4]); subplot(5,1,4);stem(k,abs(Xk2(1:1:(N/2+1))),'b');title('DFT sin(0.3*n*pi)');xlabel('k');axis([140,240,0,4]); subplot(5,1,5);stem(k,abs(Xk3(1:1:(N/2+1))));title('DFT - cos(0.302*n*pi-pi/4)');xlabel('k');axis([140,240,0,4]); 3 / 15

Matlab仿真实验报告

Matlab仿真实验报告 院系: 专业: 班级: 学号: 姓名: 序号:

实验一:数字信号的 FFT 分析 1. 实验内容及要求 (1) 离散信号的频谱分析 设信号 此信号的0.3pi 和0.302pi 两根谱线相距很近,谱线0.45pi 的幅度很小,请选择合适的序列长度 N 和窗函数,用DFT 分析其频谱,要求得到清楚的三根谱线。 (2) DTMF 信号频谱分析 用计算机声卡采集一段通信系统中电话双音多频(DTMF )拨号数字0~9的数据,采用快速傅立叶变换(FFT )分析这10个号码DTMF 拨号时的频谱。 2. 实验目的 通过本次实验,应该掌握: (1) 用傅立叶变换进行信号分析时基本参数的选择。 (2) 经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别,前者 DTFT 时间域是离散信号,频率域还是连续的,而 DFT 在两个域中都是离散的。 (3) 离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。 (4) 获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。 (5) 建立 DFT 从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用是数字音频压缩中的分析滤波器,例如 DVD AC3 和MPEG Audio 。 3. 实验代码 1) 离散信号的频谱分析 close all;%关闭文件 clear;%清除内存 N=1000; n=0:N-1;%n=0,1, (999) xn=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);%生成含有1000个元素的信号序列 yn=fft(xn,N);%快速傅里叶变换 stem(2*n/N,log(abs(yn)+1),'b');%abs(yn)表示求模,作脉冲图 axis([0.25,0.5,-1,10])%限制坐标范围 title('FFT 频谱分析');%标题 %ylabel('对X(k)的模取对数');%Y 轴标签 text(0.35,8,'电子4班,周爽,2012210931') 2) DTMF 信号频谱分析 close all; clear; tm=[1,2,3,65;4,5,6,66;7,8,9,67;42,0,35,68]; % DTMF 信号代表的16个数 00010450303024().*cos(.)sin(.)cos(.)x n n n n ππππ=+--

北邮大二下 Matlab实验报告

北京邮电大学 《数字信号处理》Matlab实验 学院: 班级: 姓名: 学号: 班内序号:

实验一 【实验要求】 实现重叠相加和重叠保留算法,完成线性卷积的分段计算。 【实验原理】 一、算法产生背景 DFT是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。 对于线性非移变离散系统,可由线性卷积表示时域输入输出关系。即y(n)=x(n)*h(n)。 通常采用循环卷积降低运算量,但实际中往往无法满足对信号处理的实时性要求。因此,产生了重叠相加法和重叠保留法两种典型的算法,用以快速计算线性卷积,成为了DFT的一个重要应用。 二、算法基本思想 1.重叠相加法 重叠相加法是将待过滤的信号分割成长为N的若干段,每一段都可以和有限时宽单位取样响应作卷积,再将过滤后的各段重叠相加。 具体算法实现:建立缓存序列,每次输入N点序列,通过计算x(n)和h(n)的循环卷积实现线性卷积运算,将缓存的M-1点序列和卷积结果相加,并输出前N点作为计算结果,同时缓存后M-1点,如此循环,直至所有分段计算完毕,则输出序列y(n)为最终计算结果。

2.重叠保留法 重叠保留法相当于将x(n)和h(n)作循环卷积,然后找出循环卷积中相当于线性卷积的部分。在这种情况下,将序列y(n)分为长为N的若干段,每个输入段和前一段有M-1个重叠点。此时只需要将发生重叠的前M-1个点舍去,保留重叠的部分并输出,则可获得序列y(n)。

【流程图设计】1.重叠相加法

2.重叠保留法

【MATLAB源代码】 1.重叠相加法 (1)function y = ovrlplus (x,h,N) %重叠相加法实现 M = length(h); %获得h(n)的长度 if N N error('N must be>=the length of x1') end if length(x2)>N error('N must be>=the length of x1') end x1=[x1 zeros(1,N-length(x1))]; x2=[x2 zeros(1,N-length(x2))]; m=[0:1:N-1]; x2=x2(mod(-m,N)+1); H=zeros(N,N); for n=1:1:N H(n,:)=cirshftt(x2,n-1,N); end y=x1*conj(H'); (3)function y=cirshftt(x,m,N)%循环移位实现 if length(x)>N error('N must be >= the length of x') end x=[x zeros(1,N-length(x))];%补零函数(x(n)的长度小于N,将不够的地方全部补

北邮MATLab仿真实验报告DSP

北京邮电大学MATLAB仿真实验报告 姓名: 班级: 学号: 班内序号

实验一:数字信号的FFT 分析 1. 实验内容及要求 离散信号的频谱分析: 设信号 此信号的0.3pi 和 0.302pi 两根谱线相距很近,谱线 0.45pi 的幅度很小,请选择合适的序列长度 N 和窗函数,用 DFT 分析其频谱,要求得到清楚的三根谱线。 2. 实验分析 要得到清晰的三根谱线,用matlab 内置函数fft 对时域信号进行快速傅里叶变换,需要选好变换点数N ,以避免出现频谱模糊现象。程序中选择N=1000 由于谱线0.45pi 的幅度很小,在作图时需要对坐标比例进行控制。使用axis 函数实现。 3. 代码及注释 频谱分析: clf; close all;%关闭所有图形窗口 N=1000;%DFT 点数 n=[1:1:N]; x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4); y=fft(x,N); mag=abs(y);%对FFT 结果求模 w=2*pi/N*[0:1:N-1]; %数字角频率w subplot(2,1,1);%将图形窗分为2行1列 stem(n,x,'.');%画脉冲图 title('时域'); xlabel('n'); ylabel('x(n)'); subplot(2,1,2); stem(w/pi,mag);%归一化角频率 axis([0 0.5 0 2]);%控制坐标范围以使谱线幅度合适 title('1000点DFT'); xlabel('数字频率'); ylabel('X(k)'); grid on; 4. 结果截图 00010450303024().*cos(.)sin(.)cos(.)x n n n n ππππ=+--

北京邮电大学MATLAB实验报告

DSP--MATLAB实验报告 实验名称:MATLAB第一次上级实验 学生姓名: 班级: 班内序号: 学号: 日期: 1.实验要求 (1) 常用数字信号序列的产生: 熟悉Matlab 产生数字信号的基本命令,加深对数字信号概念的理解,并能够用Matlab 产生和绘制出一些常用离散信号序列。请用Matlab 画出下列序列的波形(-10> plot(n,x) 单位阶跃序列 2 u(n-5) :x=stepseq(5,-20,120),n=[-20:120];plot(n,2*x) 矩形序列R(n):x1=stepseq(-10,-10,60),n1=[-10:60],x2==stepseq(10,-10,60),n2=[-10:60],y=x1-x2,n= [-10:60],plot(n,y) y(n)=2sin(0.3πn)+ 0.5cos2(0.6πn):n=[0:0.1:20];x=2*sin(0.3*pi*n)+0.5*cos(2*0.6*pi*n);plot(n,x) 加法:δ(n)+ 2 u(n-5):x1=impseq(0,-20,120);n=[-20:120];

北邮DSP Matlab仿真实验

《数字信号处理》Matlab 实验 一. 离散信号的 FFT 分析 知识点:利用FFT 对信号频谱进行分析,用DFT 进行信号分析时基本参数的选择,以及信号经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别。 实验教学内容: 1.用Matlab 编程上机练习。已知: N=25。这里Q=0.9+j0.3。可以推导出 , 首先根据这个式子计算X(k)的理论值,然后计算输入序列x(n)的32个值,再利用基2时间抽选的FFT 算法,计算x(n)的DFT X(k),与X(k)的理论值比较(要求计算结果最少6位有效数字)。 解: format long Q=0.9+0.3i; WN=exp(-2*pi*1i/32); Xk=(1-Q^32)./(1-Q*WN.^[0:24]); xn=Q.^[0:24]; Xkfft=fft(xn,32); for (k0=1:1:25) difference=Xk(k0)-Xkfft(k0); end; subplot(3,1,1);stem(abs(Xk(1:1:24)),'.');title('DFT x(n)');xlabel('k');axis([0,35,0,15]); subplot(3,1,2);stem(abs(Xkfft(1:1:32)),'g.');title('FFT x(n)');xlabel('k');axis([0,35,0,15]); subplot(3,1,3);stem(abs(difference(1:1:25)),'r.');title('Xk-Xkfft');xlabel('k');axis([0,35,0,15]); 0n N-1 ()0 n 0, n N n Q x n ?≤≤=? <≥?11,011)()()(k k 1 nk 1 -=--===∑∑-=-=N k QW Q QW W n x k X N N n N N n N N n ,

北邮《数字信号处理》Matlab实验——梳状滤波器的应用

实验题目3:梳状滤波器的应用 实验目的: 录制一段自己的话音,时间长度及取样频率自定;对该段声音加入一次反射、三次反射和无穷多次反射。 试验内容: 1、对试验原理的说明 回声可以认为是由原始声音衰减后的多个延迟叠加组成的,因此回声可以用延迟单元来生成。x(n)表示原始声音信号,a为衰减系数,T为延迟周期,回声信号Y(n)=X(n)+a*x(n‐T)+a^2*x(n‐2T)+……+a^k*x(n‐kT)。Z变换后的系统函数H(z)可由梳状滤波器实现。本实验用MATLAB中的filter(b,a,x)函数可用来仿真差分方程 a(1)*y(n)=b(1)*x(n)+b(2)*x(n‐1)+...+b(nb+1)*x(n‐nb)‐a(2)*y(n‐1)‐...‐a(na+1)*y(n‐na)。 2、在同一张图上,绘制原声音序列x(n)、加入一次反射后的声音序列x1(n)、加入三次反射后的声音序列x3(n)和加入无穷多次反射后的声音序列x I(n)。 [x, fs] = wavread('a.wav'); % sound(x, fs); a = 0.6; T = 0.2; y1 = filter([1, zeros(1,T*fs-1), a], 1, x); % sound(y1, fs); wavwrite(y1, fs, 'echo1.wav'); y2 = filter([1, zeros(1,T*fs-1), a, zeros(1,T*fs-1), a^2, zeros(1,T*fs-1), a^3], 1, x); % sound(y2, fs); wavwrite(y2, fs, 'echo2.wav'); y3 = filter(1, [1, zeros(1,T*fs-1), a], x); % sound(y3, fs); wavwrite(y3, fs, 'echo3.wav'); plot(y3, 'm'); hold on; plot(y2, 'r'); hold on; plot(y1, 'g'); hold on; plot(x, 'b');

北邮DSP Matlab实验一

1.实验要求 ●(1) 常用数字信号序列的产生: ●熟悉 Matlab 产生数字信号的基本命令,加深对数字信号概念的理解,并能够 用 Matlab 产生和绘制出一些常用离散信号序列。请用 Matlab 画出下列序列的波形(-10=0];x=2*x; stem(n,x) xlabel('n');ylabel('x(n)');title('单位阶跃序列2 u(n-5)') grid ●矩形序列: no=0; n01=4;

北邮数字信号处理软件实验Matlab

数字信号处理软件实验 MATLAB仿真 2015年12月16日

实验一:数字信号的 FFT 分析 ● 实验目的 通过本次实验,应该掌握: (a) 用傅立叶变换进行信号分析时基本参数的选择。 (b) 经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别,前者 DTFT 时间域是离散信号,频率域还是连续的,而 DFT 在两个域中都是离散的。 (c) 离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。 (d) 获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。 (e) 建立 DFT 从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用是数字音频压缩中的分析滤波器,例如 DVD AC3 和MPEG Audio 。 ● 实验内容及要求 ? 离散信号的频谱分析 设信号 此信号的0.3pi 和 0.302pi 两根谱线相距很近,谱线 0.45pi 的幅度很小,请选择合适的序列长度 N 和窗函数,用 DFT 分析其频谱,要求得到清楚的三根谱线。 ? DTMF 信号频谱分析 用计算机声卡采用一段通信系统中电话双音多频(DTMF )拨号数字 0~9的数据,采用快速傅立叶变换(FFT )分析这10个号码DTMF 拨号时的频谱。 00010450303024().*cos(.)sin(.)cos(.)x n n n n ππππ=+--

●MATLAB代码及结果 ?离散信号的频谱分析 clf; close all; N=1000; n=1:1:N; x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4); y=fft(x,N); mag=abs(y); w=2*pi/N*[0:1:N-1]; stem(w/pi,mag); axis([0.25 0.5 0 2]); xlabel('频率'); ylabel('X(k)'); grid on;

信号与系统matlab实验

习题三 绘制典型信号及其频谱图 1.更改参数,调试程序,绘制单边指数信号的波形图和频谱图。观察参数a对信号波形及 其频谱的影响。 程序代码: close all; E=1;a=1; t=0:0.01:4; w=-30:0.01:30; f=E*exp(-a*t); F=1./(a+j*w); plot(t,f);xlabel('t');ylabel('f(t)'); figure; plot(w,abs(F));xlabel('\omega');ylabel('|F(\omega)|';

E=1,a=1,波形图频谱图更改参数E=2,a=1;

更改参数a,对信号波形及其频谱的影响。(保持E=2)上图为a=1图像 a=2时

a=4时 随着a的增大,f(t)曲线变得越来越陡,更快的逼近0,而对于频谱图,随着a增大,图像渐渐向两边张开,峰值减小,陡度减小,图像整体变得更加平缓。

2.矩形脉冲信号 程序代码: close all; E=1;tao=1; t=-4:0.1:4; w=-30:0.1:30; f=E*(t>-tao/2&tao/2)+0*(t<=-tao/2&t>=tao/2); F=(2*E./w).*sin(w*tao/2); plot(t,f);xlabel('t');ylabel('f(t)'); figure; plot(w,abs(F));xlabel('\omega');ylabel('|F(\omega)|') ; figure; plot(w,20*log10(abs(F))); xlabel('\omega');ylabel('|F(\omega)| in dB'); figure; plot(w,angle(F));xlabel('\omega');ylabel('\phi(\omega )');

【VIP专享】北邮《数字信号处理》Matlab实验——周期序列的谱分析

实验题目2:周期序列的谱分析 实验目的: 利用DFT 分析模拟信号()()cos 16a x t t π=之频谱。 试验内容: 1、设定采样周期T 并说明原因 根据奈奎斯特取样条件,fs>=2f=2*8=16Hz ,所以取fs=20Hz ,T=1/f=0.05s 。 2、若令x(n)=cos(16πnT),确定该序列之周期N 并说明原因 因为4()cos()5x n n π=,2542 5 ππ=,所以周期N=5. 3、绘制10个周期内x(n)的取值情况 T = 1/20; t = 0:T:5-T; N = 5; figure(1); xn = cos(16*pi*t); stem(0:10*N-1, xn(1:10*N)); title('10个周期内x(n)的取值情况'); ylabel('x(n)'); xlabel('n');

4、令x1(n)表示x(n)的主值序列,绘制|DFT(x1(n)|,解释取值情况 figure(2); x1n = xn(1:N); stem(0:N-1, x1n); title('x(n)的主值序列'); ylabel('x1(n)'); xlabel('n'); figure(3); Xk = fft(x1n, N); stem(0:N-1, abs(Xk)); title('|DFT(x1(n))|'); ylabel('X1(k)'); xlabel('k');

所得X1(k)取值即为x(n)的5点(一个周期内)DFT结果,为清晰谱线。 5、令x2(n)表示x(n)的任一周期,绘制|DFT(x2(n)|,解释取值情况 figure(4); r = 4; x2n = xn(r:r+N-1); stem(0:N-1, x2n); title('x(n)的任一周期'); ylabel('x2(n)'); xlabel('n'); figure(5); Xk = fft(x2n, N); stem(0:N-1, abs(Xk)); title('|DFT(x2(n))|'); ylabel('X2(k)'); xlabel('k');

MATLAB实验报告(信号与线性系统分析)

实验一 MATLAB 的基本使用 【一】 实验目的 1.了解MA TALB 程序设计语言的基本特点,熟悉MATLAB 软件的运行环境; 2.掌握变量、函数等有关概念,掌握M 文件的创建、保存、打开的方法,初步具备将一般数学问题转化为对应计算机模型处理的能力; 3.掌握二维图形绘制的方法,并能用这些方法实现计算结果的可视化。 【二】 MATLAB 的基础知识 通过本课程的学习,应基本掌握以下的基础知识: 一. MATLAB 简介 二. MATLAB 的启动和退出 三. MATLAB 使用界面简介 四. 帮助信息的获取 五. MATLAB 的数值计算功能 六. 程序流程控制 七. M 文件 八. 函数文件 九. MATLAB 的可视化 【三】上机练习 1. 仔细预习第二部分内容,关于MATLAB 的基础知识。 2. 熟悉MATLAB 环境,将第二部分所有的例子在计算机上练习一遍 3. 已知矩阵???? ??????=??????????=123456789,987654321B A 。求A*B ,A .* B ,比较二者结果是否相同。并利用MATLAB 的内部函数求矩阵A 的大小、元素和、长度以 及最大值。 解:代码:A=[1,2,3;4,5,6;7,8,9]; B=[9,8,7;6,5,4;3,2,1]; A*B A.*B 两者结果不相同A*B=30 24 18 84 69 54 138 114 90 A.*B= 9 16 21 24 25 24 21 16 9

求A 矩阵的行和列: [M,N]=size(A) M = 3 N = 3 求A 矩阵的长度:x=length(A) x = 3 元素和:sum(sum(A)) ans = 45 最大值:max(max(A)) ans = 9 4. Fibonacci 数组的元素满足Fibonacci 规则:),2,1(,12 =+=++k a a a k k k ; 且121 ==a a 。现要求该数组中第一个大于10000的元素。 1) 在命令窗口中完成; 2) 利用M 文件完成; 3) 自己定义一个函数文件,并在命令窗口中调用该函数完成。 解:(1)代码: b=1; s=2; while s<10000 c=s; s=s+b; b=c; end 结果:s s = 10946 (2)M 文件中代码:(保存文件名为Untitled ) 结果:Untitled s =

相关文档
相关文档 最新文档