当前位置:文档之家› 利用Matlab simulink实现DPSK通信

利用Matlab simulink实现DPSK通信

利用Matlab simulink实现DPSK通信
利用Matlab simulink实现DPSK通信

利用Matlab simulink实现DPSK通信

刘易 2011001010010

工作简介

此次工作完成了以下几个任务:

1.Simulink的DPSK实现:利用MATLAB simulink模块实现了自定义的DPSK信号的调制和解调,其中通信是利用simulink的UDP send和UDP receive来实现的,将两台电脑直接用网线连接起来,便可在两边分别运行UDP send和UDP receive实现通信,其中目的IP用“255.255.255.255”以进行广播。

2.考虑噪声的通信:在考虑噪声的情况下传输自定义信号,并成功复原原信号。

3.语音信号的传输:在实现任意信号的通信后,用一段语音信号进行DPSK通信。先对语音信号进行量化,然后通过DPSK调制,再用相干解调得到原传输信号,最后复原语音信号并进行播放。信号的传输是在有噪声的情况下进行的。

下面分别介绍上述工作:

Simulink的DPSK实现

1.1 首先展示simulink的发送方的模块:

1.2 定义需要传输的信号:{1 0 1 0 1 0 1 0 1 1}

1.3 生成需要传输的信号:

题目中要求:Tc=1800HZ,Rb=1200bps,但是为了模拟显示得更方便直观,我仅保持了这两个量的比例,将两个量改为了:Tc=3HZ,Rb=2bps。(消息信号生成的代码参考附录1:产生消息信号)

1.4 将消息信号与载波信号相乘得到需要传输的信号:

需要指出,我只定义了10个需要传输的信号,即需要传输5秒,但我都是以6秒来发送后的,后面的5-6秒的两个信号用0填充了,其原因是后面接收方的低通滤波器有延迟,需要留足够的空间来显示完整信号。

下面给出传输信号的功率谱密度,这里的计算是利用离散信号做FFT再除以信号长度得到的(由于主要集中在某一范围因此仅给出部分范围的频谱):

1.5然后UDP send模块需要将小心信号发送到接收端。

2.1 接收方的Simulink模块

2.2接收方的接收信号(由scope6显示):

从接收模块可以看到,在直接接收的信号到scope6之间有一个我自己定义的模块。其原因是在直接接收到的信号中,有许多不相关的信号,且一般都比需要的信号要小。如果将直接接收的信号存下来观察,可以得到的是255×1×6001的信号,但我们所需要的只是1×6001的信号,因此我添加了一个模块来滤去其他无关信号。(该模块代码参考附录2:接收信号的提取)

下面是处理过后的接收信号:

2.3 将接收信号再乘一个与载波信号同频率的正弦信号(由scope8显示):

2.4 将信号通过低通滤波器,得到如下信号(由scope5显示):

可以看到这个低通滤波器在时间上延迟了大概0.75秒,这就是为什么一开始要以6秒的长度来传输数据。

2.5 接着通过一个自定义的模块,进行抽样判决,大于0记为1,小于0为0,这样便复原了原信号:(抽样判决模块代码参考附录3:抽样判决)

考虑时延后,抽样判决输出的序列为{1 0 1 0 1 0 1 1},和原序列相同。

以上便完成了DPSK调制通信的全部过程,成功地复原了原信号。其实这个系统可以跑在两台电脑上,通过网线连接,用UDP通信,但在实行的时候出现了些问题,我在报告最后再来说说两台电脑的通信问题。

以上虽然成功地完成了DPSK的通信,但是很重要的是没有考虑噪声,在实际生活中是不可能不考虑噪声的,因此下面在考虑噪声的情况下实现DPSK通信。

考虑噪声的通信

只需在发送方的模块中添加一个产生噪声的模块即可模拟有噪声的通信:

下面依次给出接收方收到的信号以及处理之后的信号波形:

1.接收的信号:

2.乘cos(2πfct)后的信号:

3.经过低通滤波器后的信号:

4.抽样判决输出:

看到这个信号,我的确有点吃惊,滤波出来的波形居然会这么好,但仔细想想,我发送的信号的波特率很低,也就很靠近0频,而带宽也很小。而且我把滤波器的通带调得很小,因此噪声的大部分能量都被滤去了。因此结果能够达到这么好。

语音信号的传输

语音信号这个部分我就没用使用simulink来模拟了,主要原因是语音信号较长,而且一面simulink模块中,运行低通滤波器需要很大消耗,因此我考虑编程来模拟语音信号的量化,调制,以及解调。其中的滤波器我需要重新设计,以减

少程序运行时间。

下面是一段自己录制的语音信号(大概1秒左右,内容是“你好”):

当前语音信号的最大值为0.1290,最小值为-0.1333。因此我将其进行从-0.15到0.15的均匀量化,并采用格雷码进行编码(量化代码参考附录4:语音信号的量化,以及格雷码的生成代码,参考附录5:格雷码的产生)。之所以采用格雷码进行编码,是因为如果接收产生误码,可以不至于声音差得太多。

下面是量化后的语音信号,是采用8位二进制数进行量化,即将-0.15到0.15均匀分成了256份。试听以后效果不错,声音基本没有失真。

通过以上处理可以得到一串语音的二进制码,采用与上文中相同的DPSK传输方法,将语音信号调制并传送出去(代码参考附录6:语音信号的调制)。由于信号量化后序列较长,因此仅给出一小部分波形:

给信号添加噪声,以模拟真实的噪声信道,添加噪声后信号的部分波形如下:

给信号乘上与载波同频的正弦信号,得到如下波形:

这里自行设计了滤波器,采用切比雪夫2型滤波器,阶数为9,阻带为80dB,阻带频为0.07(代码参考附录7:切比雪夫低通滤波器),通过低通滤波器后得到如下波形(对应序列为000000100):

由于有噪声影响,滤除的效果并不算特别好,但仍然能进行较准确的抽样判决了。接下来就通过抽样判决的函数输出原量化后的语音信号的序列(代码参考附录8:抽样判决),接着就根据格雷码对信号进行复原了(代码参考附录9:语音信号的复原)。下面给出抽样判决后的部分序列,和格雷码复原后的信号波形:

通过上面的操作,便完成了语音信号的量化、调制、加噪、解调,成功的,模拟了语音信号利用DPSK的通信过程,最后播放得到的语音信号,声音辨识度很高,基本没有失真。

最后的一点话:

其实本次工作一开始我是希望能够在两台电脑上实现通信的,由于没有串口线,我想我们都有网线,就可以直接把两台电脑用网线相连,利用运输层的协议就可以实现通信了,如下图一样:

之后我就分别在两台电脑上运行下面两个Simulink模块:

可以说,和我预想的一样,可以接收到发送的信号,但是接收到的信号却让人琢磨不透,如下图(是多维的信号,第一个模块接收到的信号,其余三个是部分信号的部分波形):

和在本机模拟的一样,接收到的都是255×1×6001的信号,但是不同的是本机接收到的信号中,只需通过能量最大就可以找出需要的信号,而在两台电脑

上通信时,接收方接收到的就是一些有规律但完全看不出什么的信号,我在这个问题上困扰了很久,最终也没有解决。后来又想通过互联网来传送,但是在simulink的UDP模块中设置好目的IP,和目的端口号后,接收方却没有收到任何信号,也没有解决这个问题。于是最后只好折中,采用本机模拟两电脑基于UDP的通信。

但好在的是,除了上面的问题,其他方面虽然遇到的问题,都被一一解决了,比如滤波器始终不理想的问题。总的来说我觉得这次工作对我帮助还是挺大的,至少我在simulink仿真方面有了很大进步。

程序附录:

附录1:产生消息信号(simulink模块)

function y = fcn2(t)

a=[1 -1 1 -1 1 -1 1 -1 1 1 0 0];

if t==6

y=a(10);

return;

end

y=a(floor(t/0.5)+1);

附录2:接收信号的提取(simulink模块)

function y=fun2(u)

[n,m,c]=size(u);

sum1=0;

index=1;

for i=1:n

sum2=sum(abs(u(i,:,:)));

if sum2>sum1

sum1=sum2;

index=i;

end

end

y=zeros(1,c);

y(1:c)=u(index,1,1:c);

附录3:抽样判决(simulink模块)

function y=funpanjue(u)

if u>=0

y=1;

else

y=0;

end

附录4:语音信号的量化

function [out_voice_seq,out_voice_signal]=voice_signal_quantization(voice_seq) n=length(voice_seq);

m=8;

out_voice_seq=zeros(n*m,1);

out_voice_signal=zeros(n,1);

interval=0.3/(2^m);

code1=grey_code(m);

for i=1:n

for j=1:2^m

if voice_seq(i)<=(-0.15+j*interval)

out_voice_seq((i-1)*m+1:i*m)=code1(:,j);

out_voice_signal(i)=-0.15+j*interval-interval/2;

break;

end

end

end

附录5:格雷码的产生

function code=grey_code(m)

code=zeros(m,2^m);

code(1,2)=1;

for i=2:m

code(i,2^(i-1)+1:2^i)=1;

for j=1:2^(i-1)

code(1:i-1,2^(i-1)+j)=code(1:i-1,2^(i-1)-j+1);

end

end

end

附录6:语音信号的调制

function [modulated_signal,cos_sample]=voice_signal_modulation(voice_signal) n=length(voice_signal);

modulated_signal=zeros(n*100,1);

cos_sample=zeros(n*100,1);

for i=1:n

for j=1:100

t=(i-1)+(j-1)*1/100;

cos_sample((i-1)*100+j)=cos(3*pi*t);

modulated_signal((i-1)*100+j)=cos(3*pi*t)*voice_signal(i);

end

end

end

附录7:切比雪夫低通滤波器

function output_signal=lowpassdesign(input_signal,p1,p2,p3) [A,B]=cheby2(p1,p2,p3);

output_signal=filter(A,B,input_signal);

end

附录8:抽样判决

function output_seq=sample_judge(input)

n=length(input);

m=n/100;

output_seq=zeros(m,1);

for i=1:m

if input(i*100)>=0

output_seq(i)=1;

else

output_seq(i)=0;

end

end

附录9:语音信号的复原

function output=signal_restoration(input)

n=length(input);

m=n/8;

greycode=grey_code(8);

output=zeros(m,1);

for i=1:m

for j=1:2^8

if sum(input((i-1)*8+1:i*8)==greycode(:,j))==8

output(i)=-0.15+j*0.3/(2^8)-0.3/(2^9);

break;

end

end

end

end

Matlab Simulink 仿真步骤

MATLAB基础与应用简明教程 张明等编著 北京航空航天大学出版社(2001.01) MATLAB软件环境是美国New Mexico大学的Cleve Moler博士首创的,全名为MATrix LABoratory(矩阵实验室)。它建立在20世纪七八十年代流行的LINPACK(线性代数计算)和ESPACK(特征值计算)软件包的基础上。LINPACK和ESPACK软件包是从Fortran语言开始编写的,后来改写为C语言,改造过程中较为复杂,使用不便。MA TLAB是随着Windows环境的发展而迅速发展起来的。它充分利用了Windows环境下的交互性、多任务功能语言,使得矩阵计算、数值运算变得极为简单。MA TLAB语言是一种更为抽象的高级计算机语言,既有与C语言等同的一面,又更为接近人的抽象思维,便于学习和编程。同时,它具有很好的开放性,用户可以根据自己的需求,利用MA TLAB提供的基本工具,灵活地编制和开发自己的程序,开创新的应用。 本书重点介绍了MA TLAB的矩阵运算、符号运算、图形功能、控制系统分析与设计、SimuLink仿真等方面的内容。 Chap1 MATLAB入门与基本运算 本章介绍MATLAB的基本概念,包括工作空间;目录、路径和文件的管理方式;帮助和例题演示功能等。重点介绍矩阵、数组和函数的运算规则、命令形式,并列举了可能得到的结果。由于MA TLAB的符号工具箱是一个重要分支,其强大的运算功能在科技领域有特殊的帮助作用。 1.1 MATLAB环境与文件管理 1.2 工作空间与变量管理 1.2.1 建立数据 x1=[0.2 1.11 3]; y1=[1 2 3;4 5 6]建立一维数组x1和二维矩阵y1。分号“;”表示不显示定义的数据。 MATLAB还提供了一些简洁方式,能有规律地产生数组: xx=1:10 %xx从1到10,间隔为1 xx=-2:0.5:1 %xx从-2到1,间隔为0.5 linespace命令等距离产生数组,logspace在对数空间中等距离产生数组。对于这一类命令,只要给出数组的两端数据和维数就可以了。 xx=linespace(d1,d2,n) %表示xx从d1到d2等距离取n个点 xx=logspace(d1,d2,n) %表明xx从10d1到10d2等距离取n个点 1.2.2 who和whos命令 who: 查看工作空间中有哪些变量名 whos: 了解这些变量的具体细节 1.2.3 exist命令 查询当前的工作空间内是否存在一个变量,可以调用exist()函数来完成。 调用格式:i=exist(…A?); 式中,A为要查询的变量名。返回的值i表示A存在的形式: i=1 表示当前工作空间内存在一个变量名为A的矩阵; i=2 表示存在一个名为A.m的文件; i=3 表示MATLAB的工作路径下存在一个名为A.mex的文件;

matlab频谱分析

设计出一套完整的系统,对信号进行频谱分析和滤波处理; 1.产生一个连续信号,包含低频,中频,高频分量,对其进行采样,进行频谱分析,分别设计三种高通,低通,带通滤波器对信号进行滤波处理,观察滤波后信号的频谱。 2.采集一段含有噪音的语音信号(可以录制含有噪音的信号,或者录制语音后再加进噪音信号),对其进行采样和频谱分析,根据分析结果设计出一合适的滤波器滤除噪音信号。 %写上标题 %设计低通滤波器: [N,Wc]=buttord() %估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wc [a,b]=butter(N,Wc); %设计Butterworth低通滤波器 [h,f]=freqz(); %求数字低通滤波器的频率响应 figure(2); % 打开窗口2 subplot(221); %图形显示分割窗口 plot(f,abs(h)); %绘制Butterworth低通滤波器的幅频响应图 title(巴氏低通滤波器''); grid; %绘制带网格的图像 sf=filter(a,b,s); %叠加函数S经过低通滤波器以后的新函数 subplot(222); plot(t,sf); %绘制叠加函数S经过低通滤波器以后的时域图形 xlabel('时间(seconds)'); ylabel('时间按幅度'); SF=fft(sf,256); %对叠加函数S经过低通滤波器以后的新函数进行256点的基—2快速傅立叶变换 w= %新信号角频率 subplot(223); plot()); %绘制叠加函数S经过低通滤波器以后的频谱图 title('低通滤波后的频谱图'); %设计高通滤波器 [N,Wc]=buttord() %估算得到Butterworth高通滤波器的最小阶数N和3dB截止频率Wc [a,b]=butter(N,Wc,'high'); %设计Butterworth高通滤波器 [h,f]=freqz(); %求数字高通滤波器的频率响应 figure(3); subplot(221); plot()); %绘制Butterworth高通滤波器的幅频响应图 title('巴氏高通滤波器'); grid; %绘制带网格的图像 sf=filter(); %叠加函数S经过高通滤波器以后的新函数 subplot(222); plot(t,sf); ;%绘制叠加函数S经过高通滤波器以后的时域图形 xlabel('Time(seconds)'); ylabel('Time waveform'); w; %新信号角频率 subplot(223);

信号的频谱分析及MATLAB实现

第23卷第3期湖南理工学院学报(自然科学版)Vol.23 No.3 2010年9月 Journal of Hunan Institute of Science and Technology (Natural Sciences) Sep. 2010信号的频谱分析及MATLAB实现 张登奇, 杨慧银 (湖南理工学院信息与通信工程学院, 湖南岳阳 414006) 摘 要: DFT是在时域和频域上都已离散的傅里叶变换, 适于数值计算且有快速算法, 是利用计算机实现信号频谱分析的常用数学工具. 文章介绍了利用DFT分析信号频谱的基本流程, 重点阐述了频谱分析过程中误差形成的原因及减小分析误差的主要措施, 实例列举了MATLAB环境下频谱分析的实现程序. 通过与理论分析的对比, 解释了利用DFT分析信号频谱时存在的频谱混叠、频谱泄漏及栅栏效应, 并提出了相应的改进方法. 关键词: MA TLAB; 频谱分析; 离散傅里叶变换; 频谱混叠; 频谱泄漏; 栅栏效应 中图分类号: TN911.6 文献标识码: A 文章编号: 1672-5298(2010)03-0029-05 Analysis of Signal Spectrum and Realization Based on MATLAB ZHANG Deng-qi, YANG Hui-yin (College of Information and Communication Engineering, Hunan Institute of Science and Technology, Yueyang 414006, China) Abstract:DFT is a Fourier Transform which is discrete both in time-domain and frequency-domain, it fits numerical calculation and has fast algorithm, so it is a common mathematical tool which can realize signal spectrum analysis with computer. This paper introduces the basic process of signal spectrum analysis with DFT, emphasizes the causes of error producing in spectrum analysis process and the main ways to decrease the analysis error, and lists the programs of spectrum analysis based on MATLAB. Through the comparison with the theory analysis, the problems of spectrum aliasing, spectrum leakage and picket fence effect are explained when using DFT to analyze signal spectrum, and the corresponding solution is presented. Key words:MATLAB; spectrum analysis; DFT; spectrum aliasing; spectrum leakage; picket fence effect 引言 信号的频谱分析就是利用傅里叶分析的方法, 求出与时域描述相对应的频域描述, 从中找出信号频谱的变化规律, 以达到特征提取的目的[1]. 不同信号的傅里叶分析理论与方法, 在有关专业书中都有介绍, 但实际的待分析信号一般没有解析式, 直接利用公式进行傅里叶分析非常困难. DFT是一种时域和频域均离散化的傅里叶变换, 适合数值计算且有快速算法, 是分析信号的有力工具. 本文以连续时间信号为例, 介绍利用DFT分析信号频谱的基本流程, 重点阐述频谱分析过程中可能存在的误差, 实例列出MATLAB 环境下频谱分析的实现程序. 1 分析流程 实际信号一般没有解析表达式, 不能直接利用傅里叶分析公式计算频谱, 虽然可以采用数值积分方法进行频谱分析, 但因数据量大、速度慢而无应用价值. DFT在时域和频域均实现了离散化, 适合数值计算且有快速算法, 是利用计算机分析信号频谱的首选工具. 由于DFT要求信号时域离散且数量有限, 如果是时域连续信号则必须先进行时域采样, 即使是离散信号, 如果序列很长或采样点数太多, 计算机存储和DFT计算都很困难, 通常采用加窗方法截取部分数据进行DFT运算. 对于有限长序列, 因其频谱是连续的, DFT只能描述其有限个频点数据, 故存在所谓栅栏效应. 总之, 用DFT分析实际信号的频谱, 其结果必然是近似的. 即使是对所有离散信号进行DFT变换, 也只能用有限个频谱数据近似表示连续频 收稿日期: 2010-06-09 作者简介: 张登奇(1968? ), 男, 湖南临湘人, 硕士, 湖南理工学院信息与通信工程学院副教授. 主要研究方向: 信号与信息处理

matlabsimulink初级教程

S i m u l i n k仿真环境基础学习Simulink是面向框图的仿真软件。 7.1演示一个Simulink的简单程序 【例7.1】创建一个正弦信号的仿真模型。 步骤如下: (1)在MATLAB的命令窗口运行simulink命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(SimulinkLibraryBrowser)窗口,如图7.1所示。

图7.1Simulink界面 (2)单击工具栏上的图标或选择菜单“File”——“New”——“Model”,新建一个名为“untitled”的空白模型窗口。 (3)在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink下的Source子模块库,便可看到各种输入源模块。 (4)用鼠标单击所需要的输入信号源模块“SineWave”(正弦信号),将其拖放到的空白模型窗口“untitled”,则“SineWave”模块就被添加到untitled窗口;也可以用鼠标选中“SineWave”模块,单击鼠标右键,在快捷菜单中选择“addto'untitled'”命令,就可以将“SineWave”模块添加到untitled窗口,如图7.2所示。

(5) Scope ”模块(示波器)拖放到“untitled ”窗口中。 (6)在“untitled ”窗口中,用鼠标指向“SineWave ”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope ”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图7.3所示。 (7)开始仿真,单击“untitled ”模型窗口中“开始仿真”图标 ,或者选择菜单“Simulink ”——“Start ”,则仿真开始。双击“Scope ” 模块出现示波器显示屏,可以看到黄色的正弦波形。如图7.4所示。 图7.2Simulink 界面

Matlab Simulink中异步电机模型说明文档

Description The Asynchronous Machine block operates in either generator or motor mode. The mode of operation is dictated by the sign of the mechanical torque: Mechanical System s ls

Preset model Provides a set of predetermined electrical and mechanical parameters for various asynchronous machine ratings of power (HP), phase-to-phase voltage (V), frequency (Hz), and rated speed (rpm). Select one of the preset models to load the corresponding electrical and mechanical parameters in the entries of the dialog box. Note that the preset models do not include predetermined saturation parameters. Select No if you do not want to use a preset model, or if you want to modify some of the parameters of a preset model, as described below. When you select a preset model, the electrical and mechanical parameters in the Parameters tab of the dialog box become unmodifiable (grayed out). To start from a given preset model and then modify machine parameters, you have to do the following: Select the desired preset model to initialize the parameters. 1. 2. Change the Preset model parameter value to No. This will not change the machine parameters. By doing so, you just break the connection with the particular preset model. 3. Modify the machine parameters as you wish, then click Apply. Mechanical input Allows you to select either the torque applied to the shaft or the rotor speed as the Simulink signal applied to the block's input. Select Torque Tm to specify a torque input, in N.m or in pu, and change labeling of the block's input to Tm. The machine speed is determined by the machine Inertia J (or inertia constant H for the pu machine) and by the difference between the applied mechanical torque Tm and the internal electromagnetic torque Te. The sign convention for the mechanical torque is the following: when the speed is positive, a positive torque signal indicates motor mode and a negative signal indicates generator mode. Select Speed w to specify a speed input, in rad/s or in pu, and change labeling of the block's input to w. The machine speed is imposed and the mechanical part of the model (Inertia J) is ignored. Using the speed as the mechanical input allows modeling a mechanical coupling between two machines and interfacing with SimMechanics? and SimDriveline? models. The next figure indicates how to model a stiff shaft interconnection in a motor-generator set when friction torque is ignored in machine 2. The speed output of machine 1 (motor) is connected to the speed input of machine 2 (generator), while machine 2 electromagnetic torque output Te is applied to the mechanical torque input Tm of machine 1. The Kw factor takes into account speed units of both machines (pu or rad/s) and gear box ratio w2/w1. The KT factor takes into account torque units of both machines (pu or N.m) and machine ratings. Also, as the inertia J2 is ignored in machine 2, J2 referred to machine 1 speed must be added to machine 1 inertia J1.

simulink-matlab仿真教程

simulink matlab 仿真环境教程 Simulink 是面向框图的仿真软件。 演示一个Simulink 的简单程序 【例1.1】创建一个正弦信号的仿真模型。 步骤如下: (1) 在MATLAB 的命令窗口运行simulink 命令,或单击工具栏中的图标,就可以打开Simulink 模块库浏览器 (Simulink Library Browser) 窗口,如图1.1所示。 (2) 单击工具栏上的图标或选择菜单“File ”——“New ”——“Model ”,新建一个名为“untitled ”的空白 模型窗口。 (3) 在上图的右侧子模块窗口中,单击“Source ”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink 下的Source 子模块库,便可看到各种输入源模块。 (4) 用鼠标单击所需要的输入信号源模块“Sine Wave ”(正弦信号),将其拖放到的空白模型窗口“untitled ”,则“Sine Wave ”模块就被添加到untitled 窗口;也可以用鼠标选中“Sine Wave ”模块,单击鼠标右键,在快捷菜单中选择“add to 'untitled'”命令,就可以将“Sine Wave ”模块添加到untitled 窗口,如图1.2 所示。 图7.1 Simulink 界面

(5) 用同样的方法打开接收模块库“Sinks”,选择其中的“Scope ”模块(示波器)拖放到“untitled”窗口中。 (6) 在“untitled”窗口中,用鼠标指向“Sine Wave”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图1.3所示。 (7) 开始仿真,单击“untitled”模型窗口中“开始仿真”图标,或者选择菜单“Simulink”——“Start”,则仿真开始。双击“Scope”模块出现示波器显示屏,可以看到黄色的正弦波形。如图1.4所示。 (8) 保存模型,单击工具栏的图标,将该模型保存为“Ex0701.mdl”文件。 1.2 Simulink的文件操作和模型窗口 1.2.1 Simulink的文件操作 1. 新建文件 新建仿真模型文件有几种操作: ?在MATLAB的命令窗口选择菜单“File”“New”“Model”。 图7.2 Simulink界面 图7.3 Simulink模型窗口 图7.4 示波器窗口

matlab-simulink 初级教程

Simulink仿真环境基础学习 Simulink是面向框图的仿真软件。 7.1演示一个Simulink的简单程序 【例7.1】创建一个正弦信号的仿真模型。 步骤如下: (1) 在MATLAB的命令窗口运行simulink命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(Simulink Library Browser) 窗口,如图7.1所示。

(2) 单击工具栏上的图标或选择菜单“File ”——“New ”——“Model ”,新建一个名为“untitled ”的空白模型窗口。 (3) 在上图的右侧子模块窗口中,单击“Source ”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink 下的Source 子模块库,便可看到各种输入源模块。 (4) 用鼠标单击所需要的输入信号源模块“Sine Wave ”(正弦信号),将其拖放到的空白模型窗口“untitled ”,则“Sine Wave ”模块就被添加到untitled 窗口;也可以用鼠标选中“Sine Wave ”模块,单击鼠标右键,在快捷菜单中选择“add to 'untitled'”命令,就可以将“Sine Wave ”模块添加到untitled 窗口,如图7.2所示。 图7.1 Simulink 界面

(5) 用同样的方法打开接收模块库“Sinks”,选择其中的“Scope”模块(示波器)拖放到“untitled”窗口中。 (6) 在“untitled”窗口中,用鼠标指向“Sine Wave”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图7.3所示。 (7) 开始仿真,单击“untitled ”模型窗口中“开始仿真”图标,或者选择菜单“Simulink”——“Start”,则仿真开始。双击“Scope”模块出现示波器显示屏, 可以看到黄色的正弦波形。如图7.4所示。 图7.2 Simulink界面

基于matlab的信号分析与处理

基于m a t l a b的信号分 析与处理 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

山东建筑大学 课程设计说明书题目:基于MATLAB的信号分析与处理课程:数字信号处理课程设计 院(部):信息与电气工程学院 专业:通信工程 班级:通信111班 学生姓名: 学号: 指导教师: 完成日期: 2014年1月

目录4

摘要 这次是基于MATLAB的信号分析与处理。所谓数字滤波器,就是输入、输出都是数字信号的,通过数值计算处理改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序。常用的经典滤波器有低通、高通、带通、带阻。 首先产生一个连续信号,包含低频、中频、高频分量;对其进行采样,得到数字信号;对数字信号进行FFT频谱分析,绘制其频谱图;根据信号频谱分析的结果,分别设计高通、低通、带通滤波器,绘制滤波器的幅频及相频特性;用所设计的滤波器对信号滤波,并绘制出滤波后的频谱图。 关键词:MATLAB; FFT;滤波器;信号产生;频谱分析

1设计目的和要求 产生一个连续信号,包含低频,中频,高频分量,对其进行采样,进行频谱分析,分别设计三种高通,低通,带通滤波器对信号进行滤波处理,观察滤波后信号的频谱。 2设计原理 信号的采样要符合奈奎斯特采样定律,一般为被采信号最高频率的2倍,只有这样,才能保证频域不混叠,也就是采样出来数字信号中包含了被采信号的所有信息,而且没有引入干扰。这就是信号的时域采样。 频谱分析是指对信号进行频域谱的分析,观察其频域的各个分量的功率大小,其理论基础是傅立叶变换,现在一般采用数字的方法,也就是将时域信号数字化后做FFT,可以得到频域的波形。 数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号的某些特定的频率成分进行过滤,这就是滤波器的基本原理。 IIR滤波器的设计原理: IIR数字滤波器的设计一般是利用目前已经很成熟的模拟滤波器的设计方法来进行设计,通常采用模拟滤波器原型有butterworth函数、chebyshev函数、bessel函数、椭圆滤波器函数等。 IIR数字滤波器的设计步骤: (1)按照一定规则把给定的滤波器技术指标转换为模拟低通滤波器的技术指标; (2)根据模拟滤波器技术指标设计为响应的模拟低通滤波器; (3)很据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器; (4)如果要设计的滤波器是高通、带通或带阻滤波器,则首先把它们的技术指标转化为模拟低通滤波器的技术指标,设计为数字低通滤波器,最后通过频率转换的方法来得到所要的滤波器。 本课程设计设计思想:首先利用MATLAB分别产生低频、中频、高频信号,然后进行叠加得到连续时间信号;对所产生的连续时间信号进行采样,得到数字信号;对信

matlab的Simulink简介

Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。 Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI) ,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。 Simulink;是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。. 构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。Simulink与MATLAB® 紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。 丰富的可扩充的预定义模块库 交互式的图形编辑器来组合和管理直观的模块图 以设计功能的层次性来分割模型,实现对复杂设计的管理 通过Model Explorer 导航、创建、配置、搜索模型中的任意信号、参数、属性,生成模型代码 提供API用于与其他仿真程序的连接或与手写代码集成 使用Embedded MATLAB?模块在Simulink和嵌入式系统执行中调用MATLAB算法 使用定步长或变步长运行仿真,根据仿真模式(Normal,Accelerator,Rapid Accelerator)来决定以解释性的方式运行或以编译C代码的形式来运行模型 图形化的调试器和剖析器来检查仿真结果,诊断设计的性能和异常行为 可访问MATLAB从而对结果进行分析与可视化,定制建模环境,定义信号参数和测试数据 模型分析和诊断工具来保证模型的一致性,确定模型中的错误 平面连杆机构 英文名称: planar linkage mechanism

实验三用FFT对信号进行频谱分析和MATLAB程序

实验三 用FFT 对信号进行频谱分析 一 实验目的 1 能够熟练掌握快速离散傅立叶变换的原理及应用FFT 进行频谱分析的基本方法; 2了解用FFT 进行频谱分析可能出现的分析误差及其原因; 二 实验原理 1.用DFT 对非周期序列进行谱分析 单位圆上的Z 变换就是序列的傅里叶变换,即 ()()j j z e X e X z ωω== (3-1) ()j X e ω是ω的连续周期函数。对序列()x n 进行N 点DFT 得到()X k ,则()X k 是在区间[]0,2π上对()j X e ω的N 点等间隔采样,频谱分辨率就是采样间隔 2N π。因此序列的傅里叶变换可利用DFT (即FFT )来计算。 用FFT 对序列进行谱分析的误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而非周期序列的频谱是连续谱,只有当N 较大时,离散谱的包络才能逼近连续谱,因此N 要适当选择大一些。 2.用DFT 对周期序列进行谱分析 已知周期为N 的离散序列)(n x ,它的离散傅里叶级数DFS 分别由式(3-2)和(3-3) 给出: DFS : ∑-=-=1 2)(1N n kn N j k e n x N a π , n =0,1,2,…,N -1 (3-2) IDFS : ∑-==1 02)(N k kn N j k e a n x π , n =0,1,2,…,N -1 (3-3) 对于长度为N 的有限长序列x (n )的DFT 对表达式分别由式(3-4)和(3-5)给出: DFT : ∑-=-=1 02)()(N n kn N j e n x k X π , n =0,1,2,…,N -1 (3-4) IDFT : ∑-==1 02)(1)(N k kn N j e k X N n x π , n =0,1,2,…,N -1 (3-5) FFT 为离散傅里叶变换DFT 的快速算法,对于周期为N 的离散序列x (n )的频谱分析便可由式(3-6)和(3-7)给出:

应用MATLAB对信号进行频谱分析

数字信号处理课程设计报告书 2011年7 月 1日 课题名称 应用MATLAB 对信号进行频谱分析 姓 名 张炜玮 学 号 20086377 院、系、部 电气系 专 业 电子信息工程 指导教师 刘鑫淼 ※※※※※※※※※ ※※ ※※ ※※ ※※ ※※※※※ ※※ 2008级数字信号处理课程设计

应用MATLAB对信号进行频谱分析 20086377 张炜玮 一、设计目的 用MATLAB语言进行编程,绘出所求波形,并且运用FFT求对连续信号进行分析。 二、设计要求 1、用Matlab产生正弦波,矩形波,并显示各自的时域波形图; 2、进行FFT变换,显示各自频谱图,其中采样率、频率、数据长度自选,要求注明; 3、绘制三种信号的均方根图谱; 4、用IFFT回复信号,并显示恢复的正弦信号时域波形图。 三、系统原理 用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行频谱分析的信号是模拟信号和时域离散信号。频谱分辨率直接和FFT的变换区间N 有关,因为FFT能够实现频率分辨率是2π/N。 x(n)是一个长度为M的有限长序列,则x(n)的N点离散傅立叶变换为: X(k)=DFT[x(n)]= kn N W N n n x ∑ - = 1 ) ( ,k=0,1,...,N-1 N j e N Wπ2- = 逆变换:x(n) =IDFT[X(k)]= kn N W k X N n N - ∑ - = 1 ) ( 1 ,k=0,1,...,N-1 但FFT是一种比DFT更加快速的一种算法,提高了DFT的运算速率,为数字信号处理技术应用于各种信号处理创造了条件,大大提高了数字信号处理技术的发展。本实验就是采用FFT,IFFT对信号进行谱分析。 四、程序设计 fs=input('please input the fs:');%设定采样频率 N=input('please input the N:');%设定数据长度 t=0:0.001:1; f=100;%设定正弦信号频率 %生成正弦信号 x=sin(2*pi*f*t);

(完整word版)MATLABsimulink中的基本模块的参数、含义、应用..

电力线路模块 PI Section Line 单项π型线路单相传输线模块。 电阻,电感和电容的传输线,沿着线是均匀分布的。级联几个相同的PI部分是通过以下方式获得一个近似的分布参数线路模型的Three-Phase PI Section Line 三相电力线路模块实现了一个平衡的三相传输线模型参数集中在π部分。相反,沿着线的电阻,电感和电容是均匀分布的分布参数线路模型,三相PI剖面线块肿块行参数在一个单一的π部分所示,在图中只有一相下代表。 被指定为正序和零序的,要考虑到的参数之间的感性和容性耦合的三相导体,以及地面参数的参数R,L,和C线。在此方法的指定行参数假设,这三个阶段是平衡的。 使用一个单一的PI部分的模型是适当的传输线或短,在感兴趣的频率范围是有限的基频周围建模。你可以得到更准确的模型通过级联多个相同的块。见PI剖面线的最大频率范围的说明,通过PI线模型,可以实现。

频率用于R L C规范 指定行参数所用的频率,以赫兹(Hz)。这通常是标称系统频率(50赫兹或60赫兹)。 正序和零序电阻 正序和零序电阻欧姆/公里(Ω/公里)。 正序和零序电感 正序和零序电感:亨利/公里(H/公里)。 正序和零序电容 正序和零序电容法拉/公里(F /公里)。 线路段长度(KM) 该生产线部分长度在千米(公里)。 Three-Phase Transformer (Two Windings) 三相变压器(两个绕组) 使用三个单相变压器,三相变压器三相变压器两个绕组块实现了。您可以模拟饱和的核心不是简单地通过在参数菜单中设置相应的复选框块。线性变压器块和可饱和变压器块部分的单相变压器的电气模型的详细说明,请参阅。 可以以下列方式连接的两个绕组的变压器: 1)Y 2)Y与中性点 3)接地Y 4)三角洲三角洲(D1),30度的滞后Y通过 5)D11)三角洲,三角洲领先的Y通过30度 Three-Phase V-I Measurement 三相电压-电流测量

基于matlab的信号分析与处理

山东建筑大学 课程设计说明书题目:基于MATLAB的信号分析与处理课程:数字信号处理课程设计 院(部):信息与电气工程学院 专业:通信工程 班级:通信111班 学生姓名: 学号: 指导教师: 完成日期:2014年1月

目录 摘要 (Ⅰ) 1 设计目的和要求 (1) 2 设计原理 (2) 3 设计内容 (3) 3.1 程序源代码 (4) 3.2 调试分析与过程描述 (7) 3.3 结果分析 (12) 总结 (13) 致谢 (14) 参考文献 (15)

摘要 这次是基于MATLAB的信号分析与处理。所谓数字滤波器,就是输入、输出都是数字信号的,通过数值计算处理改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序。常用的经典滤波器有低通、高通、带通、带阻。 首先产生一个连续信号,包含低频、中频、高频分量;对其进行采样,得到数字信号;对数字信号进行FFT频谱分析,绘制其频谱图;根据信号频谱分析的结果,分别设计高通、低通、带通滤波器,绘制滤波器的幅频及相频特性;用所设计的滤波器对信号滤波,并绘制出滤波后的频谱图。 关键词:MATLAB; FFT;滤波器;信号产生;频谱分析

1设计目的和要求 产生一个连续信号,包含低频,中频,高频分量,对其进行采样,进行频谱分析,分别设计三种高通,低通,带通滤波器对信号进行滤波处理,观察滤波后信号的频谱。 2设计原理 信号的采样要符合奈奎斯特采样定律,一般为被采信号最高频率的2倍,只有这样,才能保证频域不混叠,也就是采样出来数字信号中包含了被采信号的所有信息,而且没有引入干扰。这就是信号的时域采样。 频谱分析是指对信号进行频域谱的分析,观察其频域的各个分量的功率大小,其理论基础是傅立叶变换,现在一般采用数字的方法,也就是将时域信号数字化后做FFT,可以得到频域的波形。 数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号的某些特定的频率成分进行过滤,这就是滤波器的基本原理。 IIR滤波器的设计原理: IIR数字滤波器的设计一般是利用目前已经很成熟的模拟滤波器的设计方法来进行设计,通常采用模拟滤波器原型有butterworth函数、chebyshev函数、bessel函数、椭圆滤波器函数等。 IIR数字滤波器的设计步骤: (1)按照一定规则把给定的滤波器技术指标转换为模拟低通滤波器的技术指标; (2)根据模拟滤波器技术指标设计为响应的模拟低通滤波器; (3)很据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器; (4)如果要设计的滤波器是高通、带通或带阻滤波器,则首先把它们的技术指标转化为模拟低通滤波器的技术指标,设计为数字低通滤波器,最后通过频率转换的方法来得到所要的滤波器。 本课程设计设计思想:首先利用MATLAB分别产生低频、中频、高频信号,然后进行叠加得到连续时间信号;对所产生的连续时间信号进行采样,得到数字信号;对信号进行FFT频谱分析,绘制其频谱图;根据信号频谱分析的结果,分别设计高通,低通,带通滤波器,得到滤波器的幅频及相频特性。

基于MATLAB仿真的数字信号调制的性能比较和分析

2ASK、2FSK、2PSK数字调制系统的 Matlab实现及性能分析比较 指导教师: 班级: 学号: 姓名:

引言:数字信号有两种传输方式,分别是基带传输方式和调制传输方式,即带通,在实际应用中,因基带信号含有大量低频分量不利于传送,所以必须经过载波和调制形成带通信号,通过数字基带信号对载波某些参量进行控制,使之随机带信号的变化而变化,这这一过程即为数字调制。数字调制为信号长距离高效传输提供保障,现已广泛应用于生活和生产中。另外根据控制载波参量方式的不同,数字调制主要有调幅(ASK ),调频(FSK),调相(PSK) 三种基本形式。本次课题针对于二进制的2ASK 、2FSK 、2PSK 进行讨论,应用Matlab 矩阵实验室进行仿真,分析和修改,通过仿真系统生成一个人机交互界面,以利于仿真系统的操作。通过对系统的仿真,更加直观的了解数字调制系统的性能及影响其性能的各种因素,以便于比较,评论和改进。 关键词: 数字,载波,调制,2ASK ,2FSK ,2PSK ,Matlab ,仿真,性能,比较,分析 正文: 一 .数字调制与解调原理 1.1 2ASK (1)2ASK 2ASK 就是把频率、相位作为常量,而把振幅作为变量,信息比特是通过载波的幅度来传递的。由于调制信号只有0或1两个电平,相乘的结果相当于将载频或者关断,或者接通,它的实际意义是当调制的数字信号"1时,传输载波;当调制的数字信号为"0"时,不传输载波。 表达式为: ???===0 01,cos )(2k k c ASK a a t A t s 当, 当ω

1.2 2FSK 2FSK可以看做是2个不同频率的2ASK的叠加,其调制与解调方法与2ASK差不多,主要频率F1和F2,不同的组合产生所要求的2FSK调制信号。 公式如下: ? ? ? = = = cos 1 , cos )( 2 1 2 k k FSK a t A a t A t s 当 , 当 ω ω

实验三--用FFT对信号进行频谱分析及MATLAB程序

实验三--用FFT对信号进行频谱分析及MATLAB程序

实验三 用FFT 对信号进行频谱分析 一 实验目的 1 能够熟练掌握快速离散傅立叶变换的原理及应用FFT 进行频谱分析的基本方法; 2了解用FFT 进行频谱分析可能出现的分析误差及其原因; 二 实验原理 1.用DFT 对非周期序列进行谱分析 单位圆上的Z 变换就是序列的傅里叶变换,即 ()() j j z e X e X z ω ω== (3-1) () j X e ω是ω的连续周期函数。对序列()x n 进行N 点 DFT 得到()X k ,则()X k 是在区间[]0,2π上对()j X e ω 的N 点等间隔采样,频谱分辨率就是采样间隔2N π 。因 此序列的傅里叶变换可利用DFT (即FFT )来计算。 用FFT 对序列进行谱分析的误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而非周期序列的频谱是连续谱,只有当N 较大时,离散谱的包络才能逼近连续谱,因此N 要适当选择大一些。 2.用DFT 对周期序列进行谱分析

已知周期为N 的离散序列)(n x ,它的离散傅里叶级数DFS 分别由式(3-2)和(3-3) 给出: DFS : ∑-=-=1 2)(1N n kn N j k e n x N a π , n =0,1,2,…,N -1 (3-2) IDFS : ∑-==1 02)(N k kn N j k e a n x π , n =0,1,2,…,N -1 (3-3) 对于长度为N 的有限长序列x (n )的DFT 对表达式分别由式(3-4)和(3-5)给出: DFT : ∑-=-=1 02)()(N n kn N j e n x k X π , n =0,1,2,…,N -1 (3-4) IDFT : ∑-==1 2)(1)(N k kn N j e k X N n x π , n =0,1,2,…,N -1 (3-5) FFT 为离散傅里叶变换DFT 的快速算法,对于周期为N 的离散序列x (n )的频谱分析便可由式(3-6)和(3-7)给出: DTFS : 1 *(())k a fft x n N = (3-6) IDTFS : ()*() k x n N ifft a =

相关主题
文本预览
相关文档 最新文档