北邮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时所得到的谱线非常理想。
matlab 模拟 实验报告
matlab 模拟实验报告Matlab模拟实验报告引言:Matlab作为一种功能强大的数学软件,广泛应用于科学研究和工程领域。
本文将通过模拟实验的方式,探讨Matlab在信号处理和控制系统中的应用。
一、信号处理实验在信号处理领域,Matlab提供了丰富的工具和函数,可以对各种类型的信号进行处理和分析。
我们选择了音频信号作为实验对象,通过Matlab模拟实验,探索不同的信号处理技术。
1.1 信号生成与显示首先,我们使用Matlab生成一个正弦信号,并通过plot函数将其显示出来。
代码如下:```matlabt = 0:0.001:1; % 时间范围为0到1秒,采样率为1000Hzf = 10; % 信号频率为10Hzx = sin(2*pi*f*t); % 生成正弦信号plot(t, x); % 显示信号```通过运行以上代码,我们可以在Matlab的图形界面中看到一个频率为10Hz的正弦信号波形。
1.2 信号滤波接下来,我们将对生成的正弦信号进行滤波处理,以去除其中的高频噪声。
我们使用Matlab中的滤波函数fir1来实现。
代码如下:```matlabfs = 1000; % 采样率为1000Hzfc = 100; % 截止频率为100HzN = 50; % 滤波器阶数b = fir1(N, fc/(fs/2)); % 生成滤波器系数y = filter(b, 1, x); % 对信号进行滤波plot(t, y); % 显示滤波后的信号```通过运行以上代码,我们可以观察到滤波后信号中高频成分的减弱。
二、控制系统实验在控制系统领域,Matlab提供了丰富的工具和函数,可以进行系统建模、控制器设计和系统仿真等操作。
我们选择了一个简单的控制系统作为实验对象,通过Matlab模拟实验,探索不同的控制策略。
2.1 系统建模首先,我们需要对控制系统进行建模。
假设我们的控制系统是一个带有传感器、控制器和执行器的闭环系统。
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 。
matlab仿真实验总结
matlab仿真实验总结摘要:本文旨在介绍基于Matlab的仿真实验,从基本的Matlab 代码编写开始,到分析参数变化的影响,再到定量分析实验结果。
实验结果表明,通过Matlab的仿真实验,可以很容易地理解模型的参数变化对模型性能的影响,并对模型调整做出科学决策。
关键词:Matlab;仿真实验;参数变化;定量分析Matlab仿真实验总结一、实验目标1、掌握Matlab基本的语法、操作和使用;2、掌握利用Matlab进行模型仿真及参数调优的基本方法;3、熟悉Matlab程序运行过程,熟悉Matlab调试程序的基本方法;4、通过程序仿真实验,了解系统及模型的基本特性,定性分析及定量分析系统特性;二、实验内容1、基于Matlab的程序编写:(1)建立Matlab编辑器环境,熟悉编辑环境基本操作;(2)了解Matlab程序编写的基本方法,熟悉调试Matlab程序的基本方法;(3)编写模型仿真程序。
2、Matlab仿真实验:(1)分析仿真实验结果,收集数据;(2)定性分析实验结果,观察参数变化对结果的影响;(3)计算参数变化后的结果,定量分析实验结果;(4)将实验结果以图形的形式展示,完成Matlab仿真实验报告。
三、实验结果通过本次Matlab仿真实验,可以得出:1、通过Matlab的仿真实验,可以很容易地理解模型的参数变化对模型性能的影响,从而有效地进行模型调整;2、可以定量分析实验结果,从而更好地进行科学决策;3、Matlab操作安全,程序编写简单实用,可以有效地减少实验工时。
四、实验总结本次Matlab仿真实验对于掌握Matlab程序编写及仿真实验的基本方法,了解实验结果的定性及定量分析等方面有着很大的帮助,为今后更深入的Matlab程序及仿真研究打下了基础。
北邮DSPMatlab仿真实验
北邮DSPMatlab仿真实验《数字信号处理》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 longQ=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('DFTx(n)');xlabel('k');axis([0,35,0,15]);subplot(3,1,2);stem(abs(Xkfft(1:1:32)),'g 、');title('FFTx(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 k 10nk 10-=--===∑∑-=-=N k QW Q QW W n x k X N N nN N n NN n Λ,2、假设信号 x(n) 由下述信号组成: 请选择合适的长度 N 与窗函数,⽤ DFT 分析其频谱,得到清楚的三根谱线。
北京邮电大学DSP数字信号处理软件实验报告 MATLAB仿真
北京邮电大学数字信号处理软件实验Matlab仿真实验学院:电子工程学院班级:2011211207姓名:被偷吃的巧克力学号:2011XXXXXX班序:XX号目录一、实验任务要求及目的 (1)二、实验时间安排 (2)三、Matlab代码与仿真结果 (3)四、结论与总结 (13)一、实验任务要求及目的:1.1 实验一:数字信号的 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 。
1.2 实验二:DTMF 信号的编码1、实验内容及要求(1) 把您的联系电话号码 通过DTMF 编码生成为一个 .wav 文件:◆ 技术指标:(时域)◆ 根据 ITU Q.23 建议,DTMF 信号的技术指标是:传送/接收率为每秒 10 个号码,每个号码 100ms 。
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仿真实验报告
实验三PID控制仿真实验一、实验目的1.掌握MATLAB 6.5软件的使用方法。
2.完成直流伺服电机PID典型控制系统结构图设计及调试。
二、实验内容1.熟悉MATLAB 6.5软件各菜单作用。
2.完成直流伺服电机PID典型系统结构图设计并调试成功。
三、实验设备微型计算机1台四、实验步骤1.双击桌面MATLAB 6.5 快捷图标,进入MATLAB仿真环境。
2.单击菜单simulink 选项,进入其界面。
单击file –new-- model 进入新建文件界面。
3.在新建文件界面中,通过simulink 选项的下拉菜单中选择仿真需要的函数及器件,组成仿真系统结构图。
4.仿真调试:鼠标单击“黑三角”图标,再双击“SCOPE”示波器,即可显示仿真结果。
5.改变参数,观察调试结果。
五、实验报告要求1.写出实验具体过程。
2.画出仿真结果图和仿真系统结构图。
实验四直流电机双闭环系统仿真实验一、实验目的1.掌握MATLAB 6.5软件的使用方法。
2.完成双闭环典型系统结构图设计及调试。
二、实验内容1.熟悉MATLAB 6.5软件各菜单作用。
2.完成PID典型系统结构图设计并调试成功。
三、实验设备微型计算机1台四、实验步骤1.双击桌面MATLAB 6.5 快捷图标,进入MATLAB仿真环境。
2.单击菜单simulink 选项,进入其界面。
单击file newmodel进入新建文件界面。
3.在新建文件界面中,通过simulink 选项的下拉菜单中选择仿真需要的函数及器件,组成仿真系统结构图。
4.仿真调试:鼠标单击“黑三角”图标,再双击“SCOPE”示波器,即可显示仿真结果。
5.改变参数,观察调试结果。
五、实验报告要求1.写出实验具体过程。
2.画出仿真结果图和仿真系统结构图。
实验五直流电机控制模型仿真实验一、实验目的1.掌握MATLAB 6.5软件的使用方法。
2.完成直流电机仿真系统结构图设计及调试。
二、实验内容1.熟悉MATLAB 6.5软件各菜单作用。
matlab 仿真实验报告
matlab 仿真实验报告Matlab 仿真实验报告引言:在科学研究和工程应用中,仿真实验是一种非常重要的手段。
通过在计算机上建立数学模型和进行仿真实验,我们可以更好地理解和预测现实世界中的各种现象和问题。
Matlab作为一种强大的科学计算软件,被广泛应用于各个领域的仿真实验中。
本文将介绍我进行的一次基于Matlab的仿真实验,并对实验结果进行分析和讨论。
实验背景:在电子通信领域中,信号的传输和接收是一个重要的研究方向。
而在进行信号传输时,会受到各种信道的影响,如噪声、衰落等。
为了更好地理解信道的特性和优化信号传输方案,我进行了一次关于信道传输的仿真实验。
实验目的:本次实验的目的是通过Matlab仿真,研究不同信道条件下信号传输的性能,并对比分析不同传输方案的优劣。
实验步骤:1. 信道建模:首先,我需要建立信道的数学模型。
根据实际情况,我选择了常见的高斯信道模型作为仿真对象。
通过Matlab提供的函数,我可以很方便地生成高斯噪声,并将其加入到信号中。
2. 信号传输方案设计:接下来,我需要设计不同的信号传输方案。
在实验中,我选择了两种常见的调制方式:频移键控(FSK)和相移键控(PSK)。
通过调整不同的调制参数,我可以模拟不同的传输效果。
3. 信号传输仿真:在信道模型和传输方案设计完成后,我开始进行信号传输的仿真实验。
通过Matlab提供的信号处理函数,我可以很方便地生成调制后的信号,并将其传输到信道中。
4. 信号接收和解调:在信号传输完成后,我需要进行信号接收和解调。
通过Matlab提供的信号处理函数,我可以很方便地对接收到的信号进行解调,并还原出原始的信息信号。
5. 仿真结果分析:最后,我对仿真结果进行分析和讨论。
通过对比不同信道条件下的传输性能,我可以评估不同传输方案的优劣,并得出一些有价值的结论。
实验结果与讨论:通过对不同信道条件下的信号传输仿真实验,我得到了一些有价值的结果。
首先,我观察到在高斯噪声较大的信道条件下,PSK调制比FSK调制具有更好的抗干扰性能。
dsp-软件实验报告(精)
数字信号处理MATLAB仿真实验报告学院:电子工程学院班级: 2011211203学号: 2011210876姓名:孙月鹏班内序号: 04一、实验一:数字信号的 FFT 分析、实验内容及要求(1 离散信号的频谱分析:设信号此信号的0.3pi 和 0.302pi两根谱线相距很近,谱线 0.45pi 的幅度很小,请选择合适的序列长度 N 和窗函数,用 DFT 分析其频谱,要求得到清楚的三根谱线。
(2 DTMF 信号频谱分析用计算机声卡采用一段通信系统中电话双音多频(DTMF)拨号数字 0~9的数据,采用快速傅立叶变换(FFT)分析这10个号码DTMF拨号时的频谱。
2、实验结果x(n的时域图与频谱:得到三根清晰的谱线号码9的频谱号码8的频谱号码7的频谱号码6的频谱、实现代码及分析(1第一小题:k=1000; %DFT点数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; %进行K点DFT变换w=2*pi/k*[0:1:k-1]; %数字角频率subplot(2,1,2;stem(w/pi,abs(xk; %画出频谱图axis([0.2,0.5,0,2]; %设置窗函数的宽度与限幅title('1000点dft';xlabel('数字频率';ylabel('|xk(k|';% 此题关键在于DFT点数N的确定。
经过计算和实验,当N=1000时能满足题目要求,看到3条清晰地谱线(2)第二小题clear;close all;f=[941 1336;697 1209;697 1336;697 1477;770 1209;770 1336;770 1477;852 1209;852 1336;852 1477] %0-9的频率n=1:400;fs=4000; %取样频率为4000hzfprintf('请输入数字(0 to 9:\n'k=input (''f1=f(k+1,1; %因为从0开始计算,+1得输f2=f(k+1,2; %入数字的两个频率N=400;x1=sin(2*pi*f1*n/fs+sin(2*pi*f2*n/fs;%DTMF的输入信号时域xn=[x1,zeros(1,400]; %补零subplot(2,1,1;plot(xn %画出时域图xlabel('n'ylabel('xn'subplot(2,1,2;fn=fs*n/N; %取样点的频率plot(fn,abs(fft(xn(1:400; %400点fft变换,画出频谱图axis([0,4000,0,300]xlabel('f'ylabel('FFT'二、实验二: DTMF 信号的编码1、实验内容及要求1)把您的联系电话号码通过DTMF 编码生成为一个 .wav 文件。
MatLab仿真实验报告
实验一 一阶系统及二阶系统时域特性MatLab 仿真实验 一:实验目的1、通过实验中的系统设计及理论分析方法,进一步理解自动控制系统的设计与分析方法。
2、熟悉仿真分析软件。
3、利用Matlab 对一、二阶系统进行时域分析。
4、掌握一阶系统的时域特性,理解常数T 对系统性能的影响。
5、掌握二阶系统的时域特性,理解二阶系统重要参数对系统性能的影响。
二、实验设备计算机和Matlab 仿真软件。
三、实验内容1、一阶系统时域特性 一阶系统11)(+=Ts s G ,影响系统特性的参数是其时间常数T ,T 越大,系统的惯性越大,系统响应越慢。
Matlab 编程仿真T=0.4,1.2,2.0,2.8,3.6,4.4系统单位阶跃响应。
2、二阶系统时域特性a 、二阶线性系统 16416)(2++=s s s G 单位脉冲响应、单位阶跃响应、单位正弦输入响应的 Matlab 仿真。
b 、二阶线性系统3612362++s s ξ,当ξ为0.1,0.2,0.5,0.7,1.0,2.0时,完成单位阶跃响应的Matlab 仿真,分析ξ值对系统响应性能指标的影响。
四、实验步骤1、一阶系统时域特性clearclcnum=1for del=0.4:0.8:4.4den=[del 1];step(tf(num,den))hold onendlegend('t=0.4','t=1.2','t=2.0','t=2.8','t=3.6','t=4.4') 2、二阶系统时域特性a、clearclcnum=16den=[1 4 16]sys=tf(num,den)[y1,t1]=impulse(sys)impulse(sys)figure ,plot(t1,y1)[y2,t2]=step(sys)step(sys)figure ,plot(t2,y2)hold ont=0:0.1:20figure,lsim(sys,sin(t),t)hold onc、clearclcnum=[0 0 4];den=[1 0.5 4];t=0:0.1:10;step(num,den,t)gridtitle('Step-Response Curves of G(s)=4/[s^2+2s+4]')num=[0 0 36]; den1=[1 1.2 36]; den2=[1 2.4 36]; den3=[1 4.8 36]; den4=[1 8.4 36]; den5=[1 12 36]; den6=[1 24 36];t=0:0.1:10; step(num,den1,t)gridtext(4,1.7,'Zeta=0.1'); holdstep(num,den2,t)text(3.3,1.5,'0.2')step(num,den3,t)text(3.5,1.2,'0.4')step(num,den4,t)text(3.3,0.9,'0.7')step(num,den5,t)text(3.3,0.6,'1.0')step(num,den6,t)text(3.0,0.4,'2.0')title('Step-Response Curves for G(s)=36/[s^2+12(zeta)s+1]')五、实验结果1、2、a、b、。
DSP实验报告_matlab
按时间抽取的基2-FFT算法实现一、实验目的1.掌握按时间抽取的基2-FFT 的原理及具体实现方法。
2.编程实现按时间抽取的基2-FFT 算法。
3.加深理解按时间抽取FFT 算法的特点二、实验内容1.编程实现序列长度为N = 8的按时间抽取的基2-FFT 算法。
给定一个8 点序列,采用编写的程序计算其DFT,并与MATLAB 中fft 函数计算的结果相比较,以验证结果的正确性。
程序代码disp ('请输入一个N=8的序列');for ii=1:8 %用户输入一个N=8的序列x(ii)= input(['x(',num2str(ii),')=']);endnxd=bin2dec(fliplr(dec2bin([0:7])))+1; %求数列序号的倒序y=x(nxd); %将x的倒序序列给yfor m=1:3 %做3级蝶形运算,每级2^(3-m)组Nz=2^m; %蝶形运算间隔序号数NzWN=exp(-1i*2*pi/Nz); %定义旋转因子u=WN^0;for j=1: Nz/2 %每组需要Nz/2个蝶形运算for k=j:Nz:8 %蝶形运算第一个因数kp=k+Nz/2; %蝶形运算的二个因数t=y(kp)*u; %蝶形运算乘积项y(kp)=y(k)-t; %蝶形运算y(k)=y(k)+t; %蝶形运算每级2^m个endu=u*WN; %修改旋转因子endendy1=fft(x); %结果核对subplot(211); %绘出通过程序变换后的谱线stem(1:8,y);xlabel('k');ylabel('X(k)');grid off;subplot(212); %绘出通过函数调用后的谱线stem(1:8,y1);xlabel('k');ylabel('X(k)');grid off;进行试验请输入一个 N=8的序列 x(1)=2 x(2)=67 x(3)=3 x(4)=3 x(5)=45 x(6)=44 x(7)=21 x(8)=1输出图像:具体数据:Y=1.8600 -0.2815 + 0.0032i 0.2300 - 1.0700i -0.5785 - 0.3568i -0.4400 -0.5785 + 0.3568i 0.2300 + 1.0700i -0.2815 - 0.0032iY1=1.8600 -0.2815 + 0.0032i 0.2300 - 1.0700i -0.5785 - 0.3568i -0.4400 -0.5785 + 0.3568i 0.2300 + 1.0700i -0.2815 - 0.0032i对比Y 与Y1,完全一样,确认实验结果无误,完成题目要求2. 将第 1 题的 FFT 程序推广到N=2v 的情况,要求利用原位运算。
北邮《数字信号处理》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的使用了解了许多,尤其是在对声音和图像的处理方面。
bupt—DSP实验报告
y=filter([1,zeros(1,10920),0.2],1,x);
sound(y,54600)
plot(y,'r')
%hold on;
y1=filter([1,zeros(1,21840),0.2^2],1,x);
sound(y1,54600);
0.002402
0.000787
0.000687
0.011107
10000
0.05674
0.023194
0.006122
0.003941
0.011083
100000
0.558865
0.216818
0.039175
0.026044
0.042643
1000000
5.221879
2.144089
0.357428
5、令 表示 的任一周期,绘制 ,解释取值情况;
m=21:30;
x1=cos(m*(0.8*pi));
y=fft(x1);
stem(abs(y));
gridon
任意周期序列的频谱应该和主值序列的频谱相同。
6、令 表示 的2个周期,绘制 ,解释取值情况(参照习题3.7、3.8或3.16分析);
m=21:40;
4.总结实验过程中出现的问题以及解决问题的具体措施。
开始的时候对matlab软件的使用不太熟练,所以首先对软件进行了基本的学习.
在写好代码之后的测试中,当输入点数为1000、10000或者更大时卷积运算最后M-1个结果为0。反复测试发现,不仅1000和10000,只要是分段数N的倍数的输入点数都存在同样问题,而其他非倍数的输入,运算与conv()函数运算结果完全一致。通过设置断点,逐句调试,最终发现问题的症结,当输入序列为N的倍数时,最后的一段卷积实际上没有做。因而将循环次数增加1,将最后一次保留的M-1个点补全N个0,做最后一次分段卷积。修改后,测试结果正确。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目: 数字信号处理MATLAB仿真实验姓名学院专业班级学号班内序号实验一:数字信号的 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)N=5000;n=1:1:N;x=0.001*cos(0.45*pi*n)+sin(0.3*pi*n)-cos(0.302*pi*n-pi/4); y=fft(x,N);magy=abs(y(1:1:N/2+1));k=0:1:N/2;w=2*pi/N*k;stem(w/pi,magy)axis([0.25,0.5,0,50])(2)column=[1209,1336,1477,1633];line=[697,770,852,941];fs=10000;N=1024;00010450303024().*cos(.)sin(.)cos(.)x n n n n ππππ=+--ts=1/fs;n=0:N-1;f=0:fs/N:fs/N*(N-1);key=zeros(16,N);key(1,:)=cos(2*pi*column(1)*n*ts)+cos(2*pi*line(1)*n*ts); key(2,:)=cos(2*pi*column(2)*n*ts)+cos(2*pi*line(1)*n*ts); key(3,:)=cos(2*pi*column(3)*n*ts)+cos(2*pi*line(1)*n*ts); key(4,:)=cos(2*pi*column(1)*n*ts)+cos(2*pi*line(2)*n*ts); key(5,:)=cos(2*pi*column(2)*n*ts)+cos(2*pi*line(2)*n*ts); key(6,:)=cos(2*pi*column(3)*n*ts)+cos(2*pi*line(2)*n*ts); key(7,:)=cos(2*pi*column(1)*n*ts)+cos(2*pi*line(3)*n*ts); key(8,:)=cos(2*pi*column(2)*n*ts)+cos(2*pi*line(3)*n*ts); key(9,:)=cos(2*pi*column(3)*n*ts)+cos(2*pi*line(3)*n*ts); key(10,:)=cos(2*pi*column(2)*n*ts)+cos(2*pi*line(4)*n*ts); for i=1:10subplot(4,4,i)plot(f,abs(fft(key(i,:))))grid;end4、实验结果(1)实验二:DTMF 信号的编码1、实验内容及要求(1)把您的联系电话号码通过DTMF 编码生成为一个.wav 文件。
~~技术指标:~~根据ITU Q.23 建议,DTMF 信号的技术指标是:传送/接收率为每秒10 个号码,或每个号码100ms。
~~每个号码传送过程中,信号存在时间至少45ms,且不多于55ms,100ms 的其余时间是静音。
~~在每个频率点上允许有不超过±1.5% 的频率误差。
任何超过给定频率±3.5% 的信号,均被认为是无效的,拒绝接收。
(其中关键是不同频率的正弦波的产生。
可以使用查表方式模拟产生两个不同频率的正弦波。
正弦表的制定要保证合成信号的频率误差在±1.5%以内,同时使取样点数尽量少)(2)对所生成的DTMF文件进行解码。
~~DTMF 信号解码可以采用FFT 计算N 点频率处的频谱值,然后估计出所拨号码。
但FFT计算了许多不需要的值,计算量太大,而且为保证频率分辨率,FFT的点数较大,不利于实时实现。
因此,FFT 不适合于DTMF 信号解码的应~~由于只需要知道 8 个特定点的频谱值,因此采用一种称为 Goertzel 算法的 IIR 滤波器可以有效地提高计算效率。
其传递函数为:2、实验目的(a)复习和巩固 IIR 数字滤波器的基本概念;(b)掌握 IIR 数字滤波器的设计方法;(c)掌握 IIR 数字滤波器的实现结构;(d)能够由滤波器的实现结构分析滤波器的性能(字长效应);(e)了解通信系统电话 DTMF 拨号的基本原理和 IIR 滤波器实现方法。
3、程序代码(1)编码d=input('请键入电话号码','s');sum=length(d);total_x=[];sum_x=[];sum_x=[sum_x,zeros(1,800)];for a=1:sumsymbol=abs(d(a));tm=[49,50,51,65;52,53,54,66;55,56,57,67;42,48,35,68];for p=1:4;for q=1:4;if tm(p,q)==abs(d(a));break ,endendif tm(p,q)==abs(d(a));break ,endendf1=[697,770,852,941];f2=[1209,1336,1477,1633];n=1:400;x=sin(2*pi*n*f1(p)/8000)+sin(2*pi*n*f2(q)/8000);x=[x,zeros(1,400)];sum_x=sum_x+x;total_x=[total_x,x];endwavwrite(total_x,'soundwave')sound(total_x);t=(1:8800)/8000;subplot(2,1,1);plot(t,total_x);axis([0,1.2,-2,2]);xlabel('时间/s')title('DTMF 信号时域波形')2/1121()12cos(2/)j k N k e z H z k N z z ππ-----=-+xk=fft(x);mxk=abs(xk);subplot(2,1,2);k=(1:800)*sum*8000/800;plot(k,mxk);xlabel('频率');title('DTMF信号频谱');disp('双频信号已生成并发出')(2)解码k=[18 20 22 24 31 34 38 42];N=205;disp(['接收端检测到的号码为'])for a=1:summ=800*(a-1);X=goertzel(total_x(m+1:m+N),k+1); val=abs(X);xk2=val.^2;xk2limit=80;for s=5:8if val(s)>limit,break,endfor r=1:4if val(r)>limit,break,endenddisp([setstr(tm(r,s-4))])endend4、实验结果(1)编码(2)解码实验三:FIR 数字滤波器的设计和实现1、实验内容及要求:~~录制自己的一段声音,长度为 45秒,取样频率 32kHz ,然后叠加一个高斯白噪声,使得信噪比为 20dB 。
请采用窗口法设计一个 FIR 带通滤波器,滤除噪声提高质量。
~~提示:~~滤波器指标参考:通带边缘频率为4kHz,阻带边缘频率为4.5kHz,阻带衰减大于50dB;~~Matlab 函数y = awgn(x,snr,'measured') ,首先测量输入信号x 的功率,然后对其叠加高斯白噪声;2、实验目的~~通过本次实验,掌握以下知识:~~FIR 数字滤波器窗口设计法的原理和设计步骤;~~Gibbs 效应发生的原因和影响;~~不同类型的窗函数对滤波效果的影响,以及窗函数和长度N 的选择。
3、程序代码fs=32000;[y,fs,nbits]=wavread('shengyin.wav');snr=20;x2=awgn(y,snr,'measured','db');wavwrite(x2,fs,16,'shengyin-1.wav');t=0:1/fs:(size(x2)-1)/fs;wp=8000*pi/32000;ws=9000*pi/32000;wdelta=ws-wp;N=ceil(11*pi/wdelta);wn=(ws+wp)/2;b=fir1(N,wn/pi,blackman(N+1));figure(1)freqz(b,1,512)f2=filter(b,1,x2);title('滤波器幅频、相频特性');figure(2)subplot(2,1,1)plot(t,x2)title('滤波前时域波形');subplot(2,1,2)plot(t,f2)title('滤波后时域波形');F0=fft(f2,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x2,1024);subplot(2,1,1)plot(f,abs(y2(1:512)));title('滤波前频谱')xlabel('Hz');ylabel('幅度');subplot(2,1,2)F2=plot(f,abs(F0(1:512)));title('滤波后频谱')xlabel('Hz');ylabel('幅度');wavwrite(f2,fs,16,'shengyin-2.wav');4、实验结果生成的声音文件:实验总结在这次实验之前,除开大一时期的专业选修课,我在课下也经常自学matlab。