北邮DSP Matlab仿真实验
北邮-DSP数字信号处理 实验-实验报告
北京邮电大学电子工程学院电子实验中心<数字信号处理实验>实验报告班级: xxx学院: xxx实验室: xxx 审阅教师:姓名(班内序号): xxx 学号: xxx 实验时间: xxx评定成绩:目录一、常规实验 (3)实验一常用指令实验 (3)1.试验现象 (3)2.程序代码 (3)3.工作原理 (3)实验二数据储存实验 (4)1.试验现象 (4)2.程序代码 (4)3.工作原理 (4)实验三I/O实验 (5)1.试验现象 (5)2.程序代码 (5)3.工作原理 (5)实验四定时器实验 (5)1.试验现象 (5)2.程序代码 (6)3.工作原理 (9)实验五INT2中断实验 (9)1.试验现象 (9)2.程序代码 (9)3.工作原理 (13)实验六A/D转换实验 (13)1.试验现象 (13)2.程序代码 (14)3.工作原理 (18)实验七D/A转换实验 (19)1.试验现象 (19)2.程序代码 (19)3.工作原理 (37)二、算法实验 (38)实验一快速傅里叶变换(FFT)算法实验 (38)1.试验现象 (38)2.程序代码 (38)3.工作原理 (42)实验二有限冲击响应滤波器(FIR)算法实验 (42)1.试验现象 (42)2.程序代码 (42)3.工作原理 (49)实验三无限冲击响应滤波器(IIR)算法实验 (49)1.试验现象 (49)2.程序代码 (49)3.工作原理 (56)作业设计高通滤波器 (56)1.设计思路 (56)2.程序代码 (57)3.试验现象 (64)一、常规实验实验一常用指令实验1.试验现象可以观察到实验箱CPLD右上方的D3按一定频率闪烁。
2.程序代码.mmregs.global _main_main:stm #3000h,spssbx xf ;将XF置1,D3熄灭call delay ;调用延时子程序,延时rsbx xf ;将XF置0,D3点亮call delay ;调用延时子程序,b _main ;程序跳转到"_MAIN"nopnop;延时子程序delay:stm 270fh,ar3 ;将0x270f(9999)存入ar3loop1:stm 0f9h,ar4 ;将0x0f9(249)存入ar4loop2:banz loop2,*ar4- ;*ar4自减1,不为0时跳到loop2的位置banz loop1,*ar3- ;*ar3自减1,不为0时跳到loop1的位置ret ;可选择延迟的返回nopnop.end3.工作原理主程序循环执行:D3熄灭→延时→D3点亮→延时。
北京邮电大学_dsp_matlab实验报告
数字信号处理实验报告实验名称:数字信号处理实验学生姓名:班级:班内序号:1.实验要求假设信号x(n) 由下述信号组成:请选择合适的长度N 和窗函数,用DFT 分析其频谱,得到清楚的三根谱线。
2.实验代码和实验结果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时所得到的谱线非常理想。
DSP第二次matlab实验
实验一设计思路:由题目可知,要求分别用推导的公式和基2FFT算法计算25点的DFT,并进行对比。
有matlab中定义的fft算法,当x(n)长度为2^n时,系统会采用基2FFT算法,否则,则会按DFT算法进行计算。
本题的25点序列需要补0至32点,再调用FFT函数进行计算。
代码分析:format long; %显示15位小数Q=0.9+0.3i;n=0:24;f=Q.^n; %构建25点序列y1=(1-Q^25)./(1-Q.*exp(-j*2*pi*n/25)); %根据公式计算25点DFTf1=[f,zeros(1,7)]; %补0构建32点序列y2=fft(f1,32); %使用基2FFT算法计算subplot(2,1,1);stem(n,abs(y1));n2=0:31;subplot(2,1,2);stem(n2,abs(y2)); %同时显示两组结果,方便对比实验结果:f' %25点序列ans =1.0000000000000000.900000000000000 - 0.300000000000000i 0.720000000000000 - 0.540000000000000i 0.486000000000000 - 0.702000000000000i 0.226800000000000 - 0.777600000000000i -0.029160000000000 - 0.767880000000000i -0.256608000000000 - 0.682344000000000i -0.435650400000000 - 0.537127200000000i -0.553223520000000 - 0.352719360000000i -0.603716976000000 - 0.151480368000000i -0.588789388800000 + 0.044782761600000i -0.516475621440000 + 0.216941302080000i -0.399745668672000 + 0.350189858304000i -0.254714144313600 + 0.435094573075200i -0.098714357959680 + 0.467999359061760i 0.051556885554816 + 0.450813730543488i 0.181645316162381 + 0.390265291822695i 0.280560372092951 + 0.296745167791711i 0.341527885221169 + 0.182902539384655i 0.362245858514449 + 0.062153919879838i 0.344667448626955 - 0.052735229662480i 0.294380134865516 - 0.150861941284319i 0.219683538993669 - 0.224089787615542i 0.130488248809639 - 0.267585870552088i 0.037163662763049 - 0.279973758139771iy1' %公式计算结果ans =1.839921274419313 -2.888509011710853i 10.079297058328029 - 7.634101*********i 0.751947550413978 + 5.860554178694223i 0.231477875261307 + 2.562822534924723i 0.280180444813830 + 1.629731693733070i 0.333453299816167 + 1.185686071198745i 0.374735699173569 + 0.920169346971339i 0.407012287168865 + 0.738970117586464i 0.433274806079868 + 0.603824818398893i0.455541987625173 + 0.496182358055600i 0.475155277162459 + 0.405862004521599i 0.493046734769939 + 0.326701456455335i 0.509909764853209 + 0.254626808976277i 0.526307397696611 + 0.186689794515030i 0.542747712153768 + 0.120528170161401i 0.559746366066824 + 0.054015142343209i 0.577892158929471 - 0.015021881733439i 0.597933759473087 - 0.089095699166109i 0.620916833148354 - 0.171456189100048i 0.648430376586135 - 0.266735687117852i 0.683098509444093 - 0.382147893947660i 0.729675838681312 - 0.529982930055034i 0.797838084104355 - 0.733482202239754i0.910733029555930 - 1.043060111941749i1.139725874274358 - 1.592771079294470i y2' %32点FFT结果ans =1.839921274419313 -2.888509011710854i 4.261857604003703 - 8.575142134343054i 10.024936796171195 + 7.667121202820264i 1.287206446264835 + 2.568988102408119i 0.170500170585689 + 1.941849105411988i 0.465680659647911 + 1.842231376168993i 0.865850909705641 + 1.250333728632583i 0.709367541632795 + 0.634568488246582i 0.361786011793873 + 0.537360345099533i 0.377466143399615 + 0.707116756959139i 0.637130146111438 + 0.615516296570068i 0.669142069745247 + 0.292185217392256i 0.449663564880679 + 0.162353999479585i 0.371812876555883 + 0.295177435885839i 0.549182553438797 + 0.329188745366185i 0.655053399470689 + 0.113392493275962i 0.508892558251772 - 0.058135638778514i 0.375767137748426 + 0.022061626386777i 0.490127144723328 + 0.117904569030691i 0.647142165002108 - 0.030286116888526i 0.564987728278387 - 0.249659384554819i 0.385202089389787 - 0.237075693621112i0.434078757622414 - 0.100955497776882i0.641878593913139 - 0.191054064000270i0.638629111056581 - 0.481008485312392i0.406322945247729 - 0.581390800672254i0.360726958457290 - 0.423855959375335i0.641414327604291 - 0.453716948009610i0.790303252137142 - 0.903673540171139i0.484692829589731 - 1.318198363450280i0.219608120964553 - 1.271585805567844i0.713668112186017 - 1.333102044901677i两个结果图像走势相同,32点的频谱更加细致。
北邮DSP Matlab仿真实验
《数字信号处理》Matlab 实验一. 离散信号的 FFT 分析 知识点:利用FFT 对信号频谱进行分析,用DFT 进行信号分析时基本参数的选择,以及信号经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别。
实验教学内容:1.用Matlab 编程上机练习。
已知: N=25。
这里Q=+。
可以推导出 ,首先根据这个式子计算X(k)的理论值,然后计算输入序列x(n)的32个值,再利用基2时间抽选的FFT 算法,计算x(n)的DFT X(k),与X(k)的理论值比较(要求计算结果最少6位有效数字)。
解:format long Q=+;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 Nn Q x n ⎧≤≤=⎨<≥⎩11,011)()()(k k1nk1-=--===∑∑-=-=N k QW Q QW W n x k X N NnN N n NN n Λ,2.假设信号 x(n) 由下述信号组成:请选择合适的长度 N 和窗函数,用 DFT 分析其频谱,得到清楚的三根谱线。
Matlab仿真实验报告_发布
2、实验目的
通过本次实验,应该掌握: (1) 用傅立叶变换进行信号分析时基本参数的选择。 (2) 经过离散时间傅立叶变换(DTFT)和有限长度离散傅立叶变换(DFT) 后信号频 谱上的区别,前者 DTFT 时间域是离散信号,频率域还是连续的,而 DFT 在两个域中都 是离散的。 (3) 离散傅立叶变换的基本原理、特性,以及经典的快速算法(基 2 时间抽选法) ,体 会快速算法的效率。 (4) 获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨 率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。 (5) 建立 DFT 从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念 的一个典型应用是数字音频压缩中的分析滤波器,例如 DVD AC3 和 MPEG Audio。
~4~
MATLAB 仿真实验报告
N=4000; % N>1/TΔf=1/357*T
n=0:1:N-1; f=fs*n/N;
%DTMF 信号编码 dtmf(1,:)=sin(2*pi*row(1)*T*n)+sin(2*pi*col(1)*T*n); dtmf(2,:)=sin(2*pi*row(1)*T*n)+sin(2*pi*col(2)*T*n); dtmf(3,:)=sin(2*pi*row(1)*T*n)+sin(2*pi*col(3)*T*n); dtmf(4,:)=sin(2*pi*row(2)*T*n)+sin(2*pi*col(1)*T*n); dtmf(5,:)=sin(2*pi*row(2)*T*n)+sin(2*pi*col(2)*T*n); dtmf(6,:)=sin(2*pi*row(2)*T*n)+sin(2*pi*col(3)*T*n); dtmf(7,:)=sin(2*pi*row(3)*T*n)+sin(2*pi*col(1)*T*n); dtmf(8,:)=sin(2*pi*row(3)*T*n)+sin(2*pi*col(2)*T*n); dtmf(9,:)=sin(2*pi*row(3)*T*n)+sin(2*pi*col(3)*T*n); dtmf(10,:)=sin(2*pi*row(4)*T*n)+sin(2*pi*col(2)*T*n); %1 %2 %3 %4 %5 %6 %7 %8 %9 %0
matlab仿真实验报告
matlab仿真实验报告Matlab仿真实验报告引言:Matlab是一种广泛应用于科学和工程领域的数值计算软件,它提供了强大的数学和图形处理功能,可用于解决各种实际问题。
本文将通过一个具体的Matlab 仿真实验来展示其在工程领域中的应用。
实验背景:本次实验的目标是通过Matlab仿真分析一个电路的性能。
该电路是一个简单的放大器电路,由一个输入电阻、一个输出电阻和一个放大倍数组成。
我们将通过Matlab对该电路进行仿真,以了解其放大性能。
实验步骤:1. 定义电路参数:首先,我们需要定义电路的各个参数,包括输入电阻、输出电阻和放大倍数。
这些参数将作为Matlab仿真的输入。
2. 构建电路模型:接下来,我们需要在Matlab中构建电路模型。
可以使用电路元件的模型来表示电路的行为,并使用Matlab的电路分析工具进行仿真。
3. 仿真分析:在电路模型构建完成后,我们可以通过Matlab进行仿真分析。
可以通过输入不同的信号波形,观察电路的输出响应,并计算放大倍数。
4. 结果可视化:为了更直观地观察仿真结果,我们可以使用Matlab的图形处理功能将仿真结果可视化。
可以绘制输入信号波形、输出信号波形和放大倍数的变化曲线图。
实验结果:通过仿真分析,我们得到了以下实验结果:1. 输入信号波形与输出信号波形的对比图:通过绘制输入信号波形和输出信号波形的变化曲线,我们可以观察到电路的放大效果。
可以看到输出信号的幅度大于输入信号,说明电路具有放大功能。
2. 放大倍数的计算结果:通过对输出信号和输入信号的幅度进行计算,我们可以得到电路的放大倍数。
通过比较不同输入信号幅度下的输出信号幅度,可以得到放大倍数的变化情况。
讨论与分析:通过对实验结果的讨论和分析,我们可以得出以下结论:1. 电路的放大性能:根据实验结果,我们可以评估电路的放大性能。
通过观察输出信号的幅度和输入信号的幅度之间的比值,可以判断电路的放大效果是否符合设计要求。
DSP实验报告 (使用MatLab)
××××大学实验报告实验名称采样、系统性质及滤波系统频率响应和样本处理算法实现加窗和离散傅氏变换数字滤波器设计陷波器设计课程名称______数字信号处理_______班级学号_______ __________ 姓名_______ ____________开课时间 20 /20 学年,第学期实验一1实验名称: 采样、系统性质及滤波2实验目的和任务,实验内容一、观察采样引起的混叠设模拟信号为)3sin()2sin(4)5cos()(t t t t x πππ⋅+=,t 的单位为毫秒(ms)。
(1)设采样频率为3kHz ,确定与)(t x 混叠的采样重建信号)(t x a 。
(2)画出)(t x 和)(t x a 在)(60ms t ≤≤范围内的连续波形。
(因数字计算机无法真正画出连续波形,可用较密的离散点的连线来近似。
) (3)分别用"" 和""⨯在两信号波形上标记出3kHz 采样点。
两信号波形是否相同?采样后的两序列是否相同?二、判别离散时间系统的时不变性设输入序列为)(n x ,系统)2()(n x n y =实现对)(n x 的抽取。
(1)设500,...,2,1),1002sin()(==n n n x π。
取延迟量D (例如D =30)。
记)()(D n x n x D -=,画出)(n x 、)(n x D 的序列波形。
(2)编程求出系统对)(n x 的响应)(n y 以及对)(n x D 的响应)(n y D (3)画出)(D n y -、)(n y D 的波形。
三、利用卷积计算出输入信号通过FIR 滤波器的输出,并观察输出信号的input-on 暂态、input-off 暂态和稳态部分。
1.考虑下面两个滤波器,第一个的单位脉冲响应为⎩⎨⎧≤≤*=其它0140)75.0(25.0n h nn ,另一个的单位脉冲响应为]1,5,10,105,1[51--=,-h ;输入为周期方波,在一个周期内⎩⎨⎧≤≤≤≤=492502401)(x x n x 。
【含源代码】北邮dsp-MATLAB试验一重叠相加和重叠保留
Dsp-matlab实验实验一:重叠相加法和重叠保留法的实现设计报告课题名称:学生姓名:级:班班内序号:学号:2015/06/15 日期:目录一、实验原理·········································二、Matlab源代码·································运行结果Matlab三、····························结果分析Matlab四、····································五、遇到的难题与解决方法····························参考文献·························································一、实验原理1、算法来源DFT 是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。
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:aA=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);endY(1:Lx+M-1);对应流程图图一:每段利用fft和ifft实现循环卷积图二:对X (n)逐段进行循环卷积然后相加得输出线性卷积结果y (n)重叠保留法代码fun cti on [Y]二overlpsav(x,h,N)Lx=le ngth(x);M=le ngth(h);M仁M -1;L=N-M1;h=[h,zeros(1,N-M)];图x=[zeros(1,M1),x,zeros(1,N-1)];a 二floor ((Lx+M1-1)/(L))+1; Y=zeros(1,N); for k=0:a-1 xk=x(k*L+1:k*L+N); b=fft(xk,N); C=fft(h,N); Z=b.*C;Y (k+1,:)=ifft(Z,N); end Y=Y (:,M:N): Y=( Y(:))'对应流程图装成单列向量再转置成行向量 输出输入数据 x I 各段搭接长 长度及脉冲 —\度M1,有效 响应长度k数据长度L将h 延长 至循环 长度N㈡把x 前面 加上(M- 1)个零各段进 行卷积把 K+1X N 阶输出矩 阵Y 初始 化Y 中各行均去 掉前M-1个样 Z 本,转置后构V成新的Y三.实验结果重叠相加法x=[1,2,3] h二[1,2,3] N=41 5]? 3X] 1 K 12 9 0緒=1 1 10 12 9 0重叠保留法x=[1,2,3,4,5,6,7,8,9,10] h=[1,0,-1] N=4四.结果分析(有关运算量的定量分析结果)有限长因果序列x (n)h (n)的长度分别为N和M直接计算线性卷积y (n),y(n)可视为N个序列的叠加结果,序列长度为M 所以每生成一个序列需完成M次乘法,共需完成MN次乘法运算。
北邮Matlab仿真 实验
[键入公司名称]Matlab仿真实验[键入文档副标题]2010211201陈建文102109872012-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('DFT0.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('DFTsin(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截图 1:从图中可以看出,后边三幅图片的频谱特性还是有比较明显的区别的。
如何在MATLAB中进行仿真实验
如何在MATLAB中进行仿真实验1. 引言在科学研究和工程设计中,仿真实验是一种重要的手段和工具。
通过建立数学模型和使用计算机来模拟和分析实际系统,可以在较短时间内获得大量有效的数据和结果。
MATLAB是一个功能强大的数值计算软件,广泛应用于仿真实验中。
本文旨在介绍如何在MATLAB中进行仿真实验,并探讨一些实验技巧和注意事项。
2. 确定仿真目标和建立数学模型在进行仿真实验之前,首先需要明确仿真的目标和问题。
例如,如果要研究一个物理系统的动态特性,可以考虑建立相应的微分方程或差分方程模型。
对于控制系统的仿真,可以使用传递函数或状态空间模型。
在MATLAB中,可以使用符号计算工具箱来建立数学模型,并将其转化为可用的形式。
3. 编写仿真程序一旦数学模型建立完成,就可以开始编写仿真程序。
MATLAB提供了丰富的函数和工具箱,可以方便地进行仿真实验。
首先,可以使用ODE或PDE求解器来求解微分方程或差分方程模型。
对于控制系统的仿真,可以使用control工具箱中的函数来进行系统响应和稳定性分析。
4. 参数设置和输入规划在进行仿真实验时,需要对系统的参数和输入进行设置。
参数包括系统的初始条件、物理特性和环境因素等,可以通过改变参数的值来观察系统的响应。
输入规划可以是恒定的、随机的或基于特定函数的,可以根据实际需求进行设定。
MATLAB提供了丰富的函数和工具箱,可以方便地对参数和输入进行设置和规划。
5. 数据可视化和结果分析仿真实验的一个重要任务是对仿真数据进行可视化和结果分析。
MATLAB提供了强大的绘图函数和工具箱,可以绘制各种图表,如曲线图、散点图、三维图等。
可以使用这些功能来展示仿真数据的时域和频域特性,以及系统的稳定性和响应。
同时,还可以使用MATLAB进行数据统计和处理,如求取平均值、方差、相关性等。
6. 优化和参数调整仿真实验可以帮助优化系统设计和参数调整。
通过对仿真结果的观察和分析,可以发现系统存在的问题和改进的空间。
北邮DSP软件仿真MATLAB实验报告
DSP软件仿真实验姓名孙尚威学院电子工程学院专业电子信息科学与技术班级2013211202学号2013210849班内序号04实验一:数字信号的 FFT 分析1、实验内容及要求(1) 离散信号的频谱分析:设信号为:此信号的0.3pi 和 0.302pi 两根谱线相距很近,谱线 0.45pi 的幅度很小,请选择合适的序列长度 N 和窗函数,用 DFT 分析其频谱,要求得到清楚的三根谱线。
(2) DTMF 信号频谱分析用计算机声卡采用一段通信系统中电话双音多频(DTMF )拨号数字 0~9的数据,采用快速傅立叶变换(FFT )分析这10个号码DTMF 拨号时的频谱。
2、实验目的通过本次实验,应该掌握:(a) 用傅立叶变换进行信号分析时基本参数的选择。
(b) 经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别,前者 DTFT 时间域是离散信号,频率域还是连续的,而 DFT 在两个域中都是离散的。
(c) 离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。
(d) 获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。
(e) 建立 DFT 从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用是数字音频压缩中的分析滤波器,例如 DVD AC3 和MPEG Audio 。
3、设计思路(1)由信号可知,频谱分析以后 0.3pi 和 0.302pi 两根谱线相距很近,因此所用的FFT 的N 值要足够大,才能保证看到两条清晰的谱线;而谱线 0.45pi 的幅度很小,所以加窗时应该适当提高幅度。
在加窗的时,如若参数选取不当会产生频谱泄漏,为了满足题设要求得到三根清晰的谱线,根据w=2*pi/N*k => k=w/2/pi*N(k 属于整数),得N 必须是1000的倍数,在程序中设定N 的值为20000.用matlab 提供的fft 函数进行DFT 变换,再利用stem 函数画出频谱图,用axis 函数限定了坐标轴范围。
matlab 仿真实验报告
matlab 仿真实验报告Matlab 仿真实验报告引言:在科学研究和工程应用中,仿真实验是一种非常重要的手段。
通过在计算机上建立数学模型和进行仿真实验,我们可以更好地理解和预测现实世界中的各种现象和问题。
Matlab作为一种强大的科学计算软件,被广泛应用于各个领域的仿真实验中。
本文将介绍我进行的一次基于Matlab的仿真实验,并对实验结果进行分析和讨论。
实验背景:在电子通信领域中,信号的传输和接收是一个重要的研究方向。
而在进行信号传输时,会受到各种信道的影响,如噪声、衰落等。
为了更好地理解信道的特性和优化信号传输方案,我进行了一次关于信道传输的仿真实验。
实验目的:本次实验的目的是通过Matlab仿真,研究不同信道条件下信号传输的性能,并对比分析不同传输方案的优劣。
实验步骤:1. 信道建模:首先,我需要建立信道的数学模型。
根据实际情况,我选择了常见的高斯信道模型作为仿真对象。
通过Matlab提供的函数,我可以很方便地生成高斯噪声,并将其加入到信号中。
2. 信号传输方案设计:接下来,我需要设计不同的信号传输方案。
在实验中,我选择了两种常见的调制方式:频移键控(FSK)和相移键控(PSK)。
通过调整不同的调制参数,我可以模拟不同的传输效果。
3. 信号传输仿真:在信道模型和传输方案设计完成后,我开始进行信号传输的仿真实验。
通过Matlab提供的信号处理函数,我可以很方便地生成调制后的信号,并将其传输到信道中。
4. 信号接收和解调:在信号传输完成后,我需要进行信号接收和解调。
通过Matlab提供的信号处理函数,我可以很方便地对接收到的信号进行解调,并还原出原始的信息信号。
5. 仿真结果分析:最后,我对仿真结果进行分析和讨论。
通过对比不同信道条件下的传输性能,我可以评估不同传输方案的优劣,并得出一些有价值的结论。
实验结果与讨论:通过对不同信道条件下的信号传输仿真实验,我得到了一些有价值的结果。
首先,我观察到在高斯噪声较大的信道条件下,PSK调制比FSK调制具有更好的抗干扰性能。
北邮dsp实验报告
北邮dsp实验报告北邮DSP实验报告一、引言数字信号处理(Digital Signal Processing,简称DSP)是一门研究如何对数字信号进行分析、处理和合成的学科。
作为一门重要的电子信息科学与技术专业的实验课程,北邮DSP实验旨在让学生通过实践掌握DSP的基本理论和实际应用。
本实验报告将对北邮DSP实验进行详细介绍和总结。
二、实验目的北邮DSP实验的主要目的是让学生通过实际操作,深入理解数字信号处理的基本概念和方法,并掌握DSP实验的基本流程和技巧。
具体目标包括:1. 熟悉DSP实验平台的硬件结构和软件环境;2. 掌握数字信号的采样、量化和编码方法;3. 学习常见的数字滤波器设计和实现方法;4. 理解信号频谱分析和频域滤波的原理和应用;5. 实现音频信号的处理和效果增强。
三、实验内容北邮DSP实验主要包括以下内容:1. DSP实验平台的介绍:包括硬件结构和软件环境的说明,学生需要了解DSP实验平台的基本构成和使用方法。
2. 数字信号的采样与重构:学生需要通过实际操作,了解采样定理的原理和应用,以及数字信号的重构方法。
3. 数字信号的量化与编码:学生需要学习数字信号的量化误差和编码方法,并通过实验验证量化误差的影响。
4. FIR数字滤波器设计与实现:学生需要学习FIR滤波器的设计原理和方法,并通过实验实现低通、高通和带通滤波器。
5. IIR数字滤波器设计与实现:学生需要学习IIR滤波器的设计原理和方法,并通过实验实现巴特沃斯和切比雪夫滤波器。
6. 音频信号的处理与效果增强:学生需要学习音频信号的基本特性和处理方法,包括均衡器、混响器和压缩器等效果器的实现。
四、实验过程北邮DSP实验的具体过程如下:1. 实验准备:学生需要提前熟悉实验平台的硬件结构和软件环境,并准备好实验所需的音频信号和滤波器设计参数。
2. 实验操作:学生按照实验指导书的步骤进行实验操作,包括采样与重构、量化与编码、滤波器设计与实现等。
计算机仿真-Matlab通信系统链路级仿真
常用统计信号处理函数
BUPT Information Theory & Technology Education & Research Center
• xcov与其类似
21
BUPT Information Theory & Technology Education & Research Center
26
BUPT Information Theory & Technology Education & Research Center
常用变换函数
• ifft函数的使用方法与fft非常类似。 • 注意fft和ifft函数对于输出功率的影响。 • fft函数之后总功率为fft之前的N倍,ifft之 后总功率则减小到原来的1/N。
Re f c ( t ) jf s ( t ) cos c t j sin c t f c ( t )cos c t f s ( t )sin c t
9
BUPT Information Theory & Technology Education & Research Center
24
BUPT Information Theory & Technology Education & Research Center
常用变换函数
• fft函数当输入参数个数为1,且为一个向量时 ,执行该向量的DFT计算 • 当输入参数为一个矩阵时,计算每列的DFT。
• • • • • • • • • t = (0:1/100:10-1/100); x = sin(2*pi*15*t) + sin(2*pi*40*t); y = fft(x); % Compute DFT of x m = abs(y); p = unwrap(angle(y)); f = (0:length(y)-1)*99/length(y); % Frequency vector plot(f,m); title('Magnitude'); set(gca,'XTick',[15 40 60 85]); figure; plot(f,p*180/pi); title('Phase'); set(gca,'XTick',[15 40 60 85]);
北邮《数字信号处理》Matlab实验——周期序列的谱分析
所得 X4(k)是非周期整数倍点数的 DFT,不是清晰谱线。因为选取了 1.3 个周期,不是周 期的整数倍,选取的 x4(n)没有体现出 x(n)的周期特性,所以得到的谱线的形状特征必然与 X1(k)、X2(k)、X3(k)不同。
所得 X2(k)取值与 x(n)主值序列 DFT 结果相同。因为 DFT 是反映信号的频域特性,所以 同为一个周期,频域特性一定相同,无论起始位置如何,其 DFT 情况都相同。
6、令 x3(n)表示 x(n)的 2 个周期,绘制|DFT(x3(n)|,解释取值情况
figure(6); x3n = xn(1:2*N); stem(0:2*N-1, x3n); title('x(n)的 2 个周期'); ylabel('x3(n)'); xlabel('n'); figure(7); Xk = fft(x3n, 2*N); stem(0:2*N-1, abs(Xk)); title('|DFT(x3(n))|'); ylabel('X3(k)'); xlabel('k');
因为 x(n) cos(
北京邮电大学MATLAB实验报告
DSP--MATLAB实验报告实验名称:MATLAB第一次上级实验学生姓名:班级:班内序号:学号:日期:1.实验要求(1) 常用数字信号序列的产生:熟悉Matlab 产生数字信号的基本命令,加深对数字信号概念的理解,并能够用Matlab 产生和绘制出一些常用离散信号序列。
请用Matlab 画出下列序列的波形(-10<n<10):a) δ(n)b) 单位阶跃序列2 u(n-5)c) 矩形序列R(n)d) y(n)=2sin(0.3πn)+ 0.5cos2(0.6πn)(2)加、减、尺度(乘除)和移位是数字信号处理中最基本的算术运算,将上述基本序列进行这些基本运算,得到多个序列构成的组合序列。
(3)请用您的计算机声卡采用一段您自己的声音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) 的时域波形;2关键算法分析产生δ(n),单位阶跃序列 2 u(n-5),矩形序列R(n),y(n)=2sin(0.3πn)+ 0.5cos2(0.6πn)序列,首先在matlab中新建一个m文件,将各种序列的定义写进去,再在命令窗口中写入命令语句,便可得到。
单位取样序列x=impseq(0,-20,120);n=[-20:120]; >> 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];x2=2*stepseq(5,-20,120),n=[-20:120];y=x1+x2,plot(n,y)减法:δ(n)- 2 u(n-5):x1=impseq(0,-20,120);n=[-20:120]; x2=2*stepseq(5,-20,120),n=[-20:120];y=x1-x2,plot(n,y)乘法: δ(n)- 2 u(n-5): x1=impseq(0,-20,120);n=[-20:120]; x2=2*stepseq(5,-20,120),n=[-20:120];y=x1.*x2,plot(n,y)一个figure中显示多个波形:[y,fs,bits]=wavread('我的声音'),t1=(0:length(y)-1)/fs;[x,fs,bits]=wavread('天空之城'),t2=(0:length(x)-1)/fs;subplot(2,2,1),plot(t1,y);subplot(2,2,2),plot(t2,x);3. 程序运行结果单位取样序列单位阶跃序列2 u(n-5)矩形序列:y(n)=2sin(0.3πn)+ 0.5cos2(0.6πn)::加法:δ(n)+ 2 u(n-5) 乘法: u(n)*R5:移位:一个figure中显示多个波形:4. 总结通过这次实验,我对MATLAB的使用了解了许多,尤其是在对声音和图像的处理方面。
《MATLAB仿真实验》课件
欢迎来到《MATLAB仿真实验》课件!在这个课件中,我们将介绍MATLAB仿真 实验的基本概念、原理和步骤,并通过实验结果与分析展示其重要性。我们 还将解释相关概念并展示一些实验案例。最后,我们将总结与展望。
课件介绍
这节课我们将介绍《MATLAB仿真实验》的目的和内容。通过课件,您将了解 到仿真实验的概念和在现代科学领域中的重要性。
实验原理及目的
在这一部分中,我们将详细介绍MATLAB仿真实验的原理,并阐述它们在科学研究和工程领域中的具体目的。
仿真实验步骤
1
模型构建
2
接下来,我们将学习如何构建仿真模型,
包括选择适当的数学模型和参数。
3Байду номын сангаас
准备工作
在开始仿真实验之前,我们需要做一些 准备工作,包括环境设置、数据准备等。
仿真运行
一旦模型构建完成,我们将进行仿真运 行,并观察模型在不同条件下的行为。
介绍如何使用MATLAB进行自 动驾驶车辆的仿真测试,以 优化车辆控制和避免碰撞。
机器学习算法仿真
展示如何使用MATLAB仿真机 器学习算法,并评估其性能、 准确性和鲁棒性。
总结与展望
在本课件中,我们详细介绍了《MATLAB仿真实验》的概念、原理和步骤,并 通过实验案例展示了其应用领域。我们希望您通过学习本课件,能够更好地 理解和应用MATLAB仿真技术。
实验结果与分析
数据分析
通过对仿真结果进行详细的数据 分析,我们可以从中获得有关系 统行为的重要信息。
图形展示
仿真对比
将仿真结果可视化为图形和图表, 有助于我们更好地理解模型的行 为和性能。
通过与现实实验或其他仿真结果 进行对比,我们可以验证模型的 准确性并进一步优化它。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数字信号处理》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 ,
2. 假设信号 x(n) 由下述信号组成:
请选择合适的长度 N 和窗函数,用 DFT 分析其频谱,得到清楚的三根谱线。
解:
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);
00010450303024
().*cos(.)sin(.)cos(.)
x n n n n π
πππ=+--
k=[0:1:N/2];
subplot(5,1,1);stem(k,abs(xn(1:1:(N/2+1))),'.');title('x(n)');xlabel('k');a xis([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('DFT
0.001*cos(0.45*n*pi)');xlabel('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]);
二. IIR 数字滤波器的设计和实现
DTMF 信号的编码: 把你的联系电话号码 DTMF 编码生成为一个 .wav 文件。
技术指标:
根据 ITU Q.23 建议,DTMF 信号的技术指标是:传送/接收率为每秒 10 个号码,或每个号码 100ms。
每个号码传送过程中,信号存在时间至少 45ms,且不多于 55ms,100ms 的其余时间是静音。
在每个频率点上允许有不超过±1.5% 的频率误差。
任何超过给定频率±3.5% 的
信号,均被认为是无效的,拒绝接收。
代码如下:
clc
for(K=1:10)
clear
phone=input('请输入电话号码','s');
sum=length(phone);
fs=8000;
total_x=[];
fH=[1336,1209,1336,1477,1209,1336,1477,1209,1336,1477];
fL=[941,697,697,697,770,770,770,852,852,852];
for i=1:sum
num=phone(i)-48+1;
n=1:400;
x=sin(2*pi*n*fL(num)/fs)+ sin(2*pi*n*fH(num)/fs);
x=[x,zeros(1,400)];
total_x=[total_x,x];
end
wavwrite(total_x,'num_sound')
sound(total_x);
plot(total_x);axis([0,10000,-2,2]);
title('电话号码时域波形')
k=[18,20,22,25,32,35,38];
N=210;
tm=[49,50,51;52,53,54;55,56,57;0,48,0];
for i=1:sum
j=800*(i-1);
X=goertzel(total_x(j+1:j+N),k+1);
value=abs(X);
figure(2)
subplot(2,6,i);
stem(k,value,'.','r');
title('FFT x(n)');xlabel('k');ylabel('|X(k)|'); limit=20;
for i1=5:7
if value(i1)>limit
break;
end
end
for j1=1:4
if value(j1)>limit
break;
end
end
buffer(i)=tm(j1,i1-4);
end
disp(['接收端检测到的号码'])
disp(setstr(buffer))
end
三. FIR 数字滤波器的设计和实现
录制自己的一段声音,长度为 45秒,取样频率 32kHz,然后叠加一个高斯白噪声,使得信噪比为 20dB。
请采用窗口法设计一个 FIR 带通滤波器,滤波噪声提高质量。
请随实验报告同时提交原始加噪和滤波后的声音文件(.mp3 格式)。
提示:。