当前位置:文档之家› 基于matlab的汉明码4FSK通信仿真实验报告

基于matlab的汉明码4FSK通信仿真实验报告

基于matlab的汉明码4FSK通信仿真实验报告
基于matlab的汉明码4FSK通信仿真实验报告

河海大学计算机及信息工程学院(常

州)

课程设计报告

题目不同信道下汉明码4FSK系统仿真

专业通信工程

学号 0962310312 学生姓名程海粟

指导教师高远

目录

一、实验目的 (3)

二、实验器材 (3)

三、实验内容及原理 (3)

(一)汉明码编解码原理 (3)

(二)4FSK调制解调原理 (6)

(三)三种信道模型简介 (9)

(四)程序调用函数介绍………………………………………

10

四、实验仿真效果图 (12)

五、心得体会 (15)

六、附录 (15)

七、参考文献 (18)

不同信道下汉明码的4FSK 系统仿真

一、实验目的

1、了解熟悉Matlab 仿真软件使用;

2、掌握4进制频移键控(4FSK )的调制与解调基本原理;

3、掌握Matlab 仿真软件仿真4FSK 的系统设计;

4、熟悉无线通信仿真过程及物理层仿真。

二、实验器材

Matlab 仿真软件。

三、实验内容及原理

(一)汉明码编解码原理

1、编码原理

一般来说,若汉明码长为n ,信息位数为k ,则监督位数r=n-k 。若希望用r 个监督位构造出r 个监督关系式来指示一位错码的n 种可能位置,则要求

21r n -≥或211r

k r -≥++ (1)

下面以(7,4)汉明码为例说明原理:

设汉明码(n,k )中k=4,为了纠正一位错码,由式(1)可知,要求监督位数r ≥3。若取r=3,则n=k+r=7。我们用

6543210

a a a a a a a 来表示这7个码元,用

123

s s s 的值表示3个监督关系式中的校正子,则123

s s s 的值与错误码元位置的对应关系

可以规定如表1所列。

表1 校正子和错码位置的关系

则由表1可得监督关系式: 1654s a a a a =⊕⊕⊕ ()2

2653s a a a a

=⊕⊕⊕

()3 36430

s a a a a =⊕⊕⊕

()4

在发送端编码时,信息位6543a a a a 的值决定于输入信号,因此它们是随机的。监督位

2

a 、1a 、0a

应根据信息位的取值按监督关系来确定,即监督位应使式(2)

~式(4)中1s 、2s 、3s

的值为0(表示编成的码组中应无错码)

654265316

430000

a a a a a a a a a a a a ⊕⊕⊕=??

⊕⊕⊕=??⊕⊕⊕=? (5)

式(5)经过移项运算,接触监督位

2654

16530

643a a a a a a a a a a a a

=⊕⊕??

=⊕⊕??=⊕⊕? (6)

式(5)其等价形式为:

6543210111010001101010010110010a a a a a a a ??

????

????????????=????????????????

????????

(7)

式(6)还可以简记为

0T T H A ?=或0T A H ?= (8)

其中

111010011010101011001H ??

??=??

???? []6543210A a a a a a a

a =

[]000

=

111011011011P ??

??=??

????

10001000

1r I ??

??=??????

所以有

[]

r H PI = (9)

式(6)等价于

[][][]2

1

06

54

3654

3111110101011a a a a a a a a a a a Q

????

?

?==??????

(10)

其中Q 为P 的转置,即

T Q P = (11)

式(10)表示,信息位给定后,用信息位的行矩阵乘矩阵Q 就产生出监督位。 我们将Q 的左边加上一个k ×k 阶单位方阵,就构成一个矩阵G

10001

11010011000101

0100010

11k G I Q ????????==????

?

???

(12)

G 称为生成矩阵,因为由它可以产生整个码组,即有

[][]65432106543a a a a a a a a a a a G =? (13)

或者

[]6

54

3A a a a a G

=? (14)

式(13)即汉明码的编码原理

2、解码和纠错原理

当数字信号编码成汉明码形式(本文中即A )后在信道中传输,由于信道中噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行

汉明码纠错,以提高通信系统的抗干扰能力及可靠性。

一般来说接收码组与A 不一定相同。若设接收码组为一n 列的行矩阵B ,即

[]

6543210B b b b b b b b = (15)

则发送码组和接收码组之差为

B A E -= (16)

E 就是传输中产生的错码行矩阵

[]

6543210E e e e e e e e = (17)

若ei=0,表示接收码元无错误,若ei=1,则表示该接收码元有错。式(16)可改写成

B A E =+ (18)

若E=0,即接收码组无错,则B A E A =+=,将它代人式(8),该是仍成立,即有

0T B H ?= (19)

当接收码组有错时,E ≠0,将B 带入式(8)后,该式不一定成立。在未超过检错能力时,式(19)不成立。假设此时式(19)的右端为S,即

T B H S ?= ()20

将 B A E =+代入式(20),可得

()T T T S A E H A H E H =+=?+?

由式(8)可知,所以

T S E H =? ()21

此处S 与前面的

123

s s s 有着一一对应关系,则S 能代表错码位置。

因此,纠错原理即,接收端收到码组后按式(20)计算出S,再根据表1判断错码情况,进行差错纠正。

(二)4FSK 调制解调原理

1、调制原理

二进制频移键控是数字信号调制的基本方式之一。而多进制(MFSK )的可降低信道系统信噪比的要求。2FSK 信号的产生方法主要有两种:采用模拟调频

电路实现;采用键控法来实现,即在二进制基带脉冲序列的控制下通过开关电路对两个不同的独立频率源进行选通,使其在每个码元期间输出f1和f2两个载波之一。频移键控是利用载波的频率变化来传递信息的。在2FSK中,载波的频率随二进制基带信号在f1和f2两个频率点间变化。同理4FSK中基带脉冲序列四个码元(00 01 10 11)可用f1,f2,f3,f4四个载波之一;本文讨论4FSK是通过并联输入两位基带信号,两位二进制来表示四进制的频移键控。

2FSK键控法调频原理图如下:

图 1.1(1) 2FSK调制原理

4FSK可通过基带信号(00,01,10,11)并联传输0或1来分别用f1,f2,f3,f4四个载频表示,两路基带信号作为控制选通选通开关,1路选通开关发送0时选通载频f1, 发送0时选通载频f2, 1路选通开关发送0时选通载频f3, 送1时选通载频f4。两路不同载频通过相加器得到已调信号发送出去。

4FSK键控法调频原理图(图1.1)如下:

图 3.1.1(2) 4FSK调制原理

2、解调原理

4FSK信号的相干解调法原理框图如图1.2所示。其原理是:4FSK信号先经过带通滤波器去除调制信号频带以外的在信道中混入的噪声,此后该信号分为四路,每路信号与相应载波相乘,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决,抽样判决器的输出分别得到两路原基带信号表示四进制得到原始码元。

图 1.2 4FSK解调原理

(三)三种信道模型简介

1、瑞利信道

瑞利衰落信道(Rayleigh fading channel)是一种无线电信号传播环境的统计模型。这种模型假设信号通过无线信道之后,其信号幅度是随机的,即“衰落”,并且其包络服从瑞利分布。这一信道模型能够描述由电离层和对流层反射的短波信道,以及建筑物密集的城市环境。12瑞利衰落只适用于从发射机到接收机不存在直射信号(LoS,Line of Sight)的情况,否则应使用莱斯衰落信道作为信道模型。

瑞利分布是一个均值为0,方差为σ2的平稳窄带高斯过程,其包络的一维分布是瑞利分布。其表达式及概率密度如图所示。

瑞利分布函数

瑞利分布是最常见的用于描述平坦衰落信号接收包络或独立多径分量接受包络统计时变特性的一种分布类型。两个正交高斯噪声信号之和的包络服从瑞利分布。

瑞利衰落能有效描述存在能够大量散射无线电信号的障碍物的无线传播环境。若传播环境中存在足够多的散射,则冲激信号到达接收机后表现为大量统计独立的随机变量的叠加,根据中心极限定理,则这一无线信道的冲激响应将是一个高斯过程。如果这一散射信道中不存在主要的信号分量,通常这一条件是指不存在直射信号(LoS),则这一过程的均值为0,且相位服从0 到2π的均匀分布。即,信道响应的能量或包络服从瑞利分布。若信道中存在一主要分量,例如直射信号(LoS),则信道响应的包络服从莱斯分布,对应的信道模型为莱斯衰落信道。

通常将信道增益以等效基带信号表示,即用一复数表示信道的幅度和相位特性。由此瑞利衰落即可由这一复数表示,它的实部和虚部服从于零均值的独立同分布高斯过程。

2、多径信道

一种扩频通信系统的多径解扩方法:将来自n个信道的数据分别经过模/数转换电路进行量化,然后把经过量化后的数据保存在各对应的数据存储器中,之后根据多径的峰值和多径延时的值,从各数据存储器的不同位置依序读出n个信道的多径数据后,进行该多径解扩:首先是预解扩;其次是二次解扩累加;再者是多次解扩累加;最后输出n个信道的多径解扩数据。

3、高斯信道

高斯信道是一个射频通信信道,其包含了各种频率的特定噪声频谱密度的的

特征,从而导致了信道中错误的任意分布。常指加权高斯白噪声(AWGN)信道。这种噪声假设为在整个信道带宽下功率谱密度(PDF)为常数,并且振幅符合高斯概率分布。

信号经过高斯信道会受到加性干扰的影响。

(四)程序调用函数介绍

MATLAB中提供了汉明码的编解码、4FSK调制解调函数和不同通信信道模型函数,本程序直接调用进行编程。

1、encode函数

功能:编码函数

语法:code=encode(msg,N,K,’hamming’)

说明:该函数对二进制信息msg进行汉明编码,K为信息位长度,N为码字长度。msg是一个K列矩阵。

2、decode函数

功能:译码函数

语法:rcvcode=decode(code,N,K,’hamming’)

说明:该函数对接受码字进行译码,恢复出原始信息,译码参数及方式必须和编码时采用的完全相同。

3、dmod函数

功能:调制函数

语法:fskout=dmod(signal,Fc,Fd,Fs,'fsk',M,df)

说明:该函数可以对输入的数字信号进行4FSK调制,Fs为系统的采样频率,Fc 为载波频率,Fd为码元速率,df为频差。

4、ddemod函数

功能:调制函数

语法:y=ddemod(signal,Fc,Fd,Fs,'fsk',M,df)

说明:该函数可以对输入的4FSK信号进行解调,Fs为系统的采样频率,Fc为载波频率,Fd为码元速率,df为频差。

5、rayleighchan函数

功能:瑞利(多径)信道模型

语法:chan = rayleighchan(ts,fd,tau,pdb);y = filter(chan,x)

说明:其中,ts---为输入信号的采样周期,fd---就是Doppler频偏,以Hz为单位,与速率的换算关系为v×fc/c,fc是载频,tau---输入的信道参数,一个向量,包含了各径的延时,以s为单位,pdb---输入的信道参数,一个向量,包含了各径的功率(当然是均值啦,实际产生的能量都是以此为均值的随机量),以dB为单位。然后y = filter(chan,x),即可将信道的影响加在输入的数据x上。

6、awgn函数

功能:高斯白信道模型

语法:y = awgn(x,SNR,SIGPOWER)

说明:在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。如果SIGPOWER是数值,则其代表以dBW 为单位的信号强度;如果SIGPOWER为'measured',则函数将在加入噪声之前测定信号强度。

四、实验仿真效果图

Matlab仿真效果图如下:

五、心得体会

通信系统仿真MATLAB是现在很流行的用于科学计算的软件工具,它集数值分析、矩阵运算、信号处理、图像显示等多种功能于一体,提供了一个高性能的科学计算环境,因此在通信、自动化等领域都得到了广泛的应用。同时也是理论教学和实验教学的有力工具。借助于MATLAB可大大地拓宽研究分析的视野提高研究设计的效率,具有重要的推广和应用价值。

六、附录

主程序:

%Function:(7,4)Hamming Code and 4FSK Modulation

%Author:HarryChing

%Date:2012/11/03

function main

N=1200;%Set data bits of random binary number

K=7*N/4;%The data bits after£¨7,4£?Hamming Code

M = 4;%4FSK

SNRpBit=0:2:20;%Signal to Noise Ratio per bit

SNR=SNRpBit./log2(M);%Signal to Noise Ratio per symbol

x=randint(1,N,2);%Generate N bits binary number

x1=hammingcode(x);%Hamming Code

x2=reshape(x1,K/2,2);%1*K array to 2*K/2 array

x3=bi2de(x2);%Change 2 to 4 scale

x4=reshape(x3,1,K/2);%Reshape to 1*K/2 array

figure(1)

bar(x4);

axis([0 4.5 0 3])

title('???ú2úéúμ?êy×?D??¢','FontName','??ì?','FontSize',20)

y = fsk4mod(x4);%4FSK modulation

y1 = raychannel(y);%4FSK pass Rayleigh Channel

y11 = raymultipathchannel(y);%4FSK pass Rayleigh Multi-path Channel

%%%%%%The BER of two channel models is as follows%%%%%%

for i = 1:length(SNR)

if i==1

y2=awgnchannel(y1,SNR(i));%Pass Gaussian noise Channel

Fs=1280;%Sampling Frequency

numPlot=4;%Set plot number

numModPlot=numPlot*Fs;

t=[0:numModPlot-1]./Fs;

figure(5)

plot(t,y2(1:length(t)));

title('èeà?D?μà???óè????1°×??éùoóμ?4FSKD?o?','FontSize',20)

xlabel('Time','FontSize',15);

ylabel('Amplitude','FontSize',15);

y3=fsk4demod(y2);

y4=reshape(y3,K/2,1);

y5=de2bi(y4);

y6=reshape(y5,1,K);

y7=decode(y6,7,4,'hamming');

[errorSym ratioSym]=symerr(x,y7);

Pe1(i)=ratioSym;

else

y2=awgnchannel(y1,SNR(i));%Pass Gaussian noise Channel

y3=fsk4demod(y2);

y4=reshape(y3,K/2,1);

y5=de2bi(y4);

y6=reshape(y5,1,K);

y7=decode(y6,7,4,'hamming');

[errorSym ratioSym]=symerr(x,y7);

Pe1(i)=ratioSym;

end

end

for i = 1:length(SNR)

if i==1

y22=awgnchannel(y11,SNR(i));%Pass Gaussian noise Channel

Fs=1280;%Sampling Frequency

numPlot=4;%Set plot number

numModPlot=numPlot*Fs;

t=[0:numModPlot-1]./Fs;

figure(6)

plot(t,y2(1:length(t)));

title('?à??D?μà???óè????1°×??éùoóμ?4FSKD?o?','FontSize',20)

xlabel('Time','FontSize',15);

ylabel('Amplitude','FontSize',15);

y33=fsk4demod(y22);

y44=reshape(y33,K/2,1);

y55=de2bi(y44);

y66=reshape(y55,1,K);

y77=decode(y66,7,4,'hamming');

[errorSym ratioSym]=symerr(x,y77);

Pe11(i)=ratioSym;

else

y22=awgnchannel(y11,SNR(i));%Pass Gaussian noise Channel

y33=fsk4demod(y22);

y44=reshape(y33,K/2,1);

y55=de2bi(y44);

y66=reshape(y55,1,K);

y77=decode(y66,7,4,'hamming');

[errorSym ratioSym]=symerr(x,y77);

Pe11(i)=ratioSym;

end

end

figure(7)

semilogy(SNR,Pe1,'o-b',SNR,Pe11,'*-r','LineWidth',3);

xlabel('SNR','FontSize',15);

ylabel('Pe','FontSize',15);

legend('èeà?D?μà','?à??D?μà')

title('2?í?D?μà???ó???ê-D???±è?ú??','FontName','??ì?','FontSize',20) grid on

八、参考文献

[1] 樊昌信.徐炳祥等.通信原理(第五版).国防工业出版社.2001.

[2] 罗新民.张传生.薛少丽.现代通信原理..高等教育出版社.2003.

[3] 徐明远.邵玉斌.仿真在通信原理与电子工程中的应用.西安电子科技大学出版社.2005.

[4] 张志德.林霖.基于Simulink仿真的数字调制系统性能分析.现代电子技术.

Matlab通信系统仿真实验报告

Matlab通信原理仿真 学号: 2142402 姓名:圣斌

实验一Matlab 基本语法与信号系统分析 一、实验目的: 1、掌握MATLAB的基本绘图方法; 2、实现绘制复指数信号的时域波形。 二、实验设备与软件环境: 1、实验设备:计算机 2、软件环境:MATLAB R2009a 三、实验内容: 1、MATLAB为用户提供了结果可视化功能,只要在命令行窗口输入相应的命令,结果就会用图形直接表示出来。 MATLAB程序如下: x = -pi::pi; y1 = sin(x); y2 = cos(x); %准备绘图数据 figure(1); %打开图形窗口 subplot(2,1,1); %确定第一幅图绘图窗口 plot(x,y1); %以x,y1绘图 title('plot(x,y1)'); %为第一幅图取名为’plot(x,y1)’ grid on; %为第一幅图绘制网格线 subplot(2,1,2) %确定第二幅图绘图窗口 plot(x,y2); %以x,y2绘图 xlabel('time'),ylabel('y') %第二幅图横坐标为’time’,纵坐标为’y’运行结果如下图: 2、上例中的图形使用的是默认的颜色和线型,MATLAB中提供了多种颜色和线型,并且可以绘制出脉冲图、误差条形图等多种形式图: MATLAB程序如下: x=-pi:.1:pi; y1=sin (x); y2=cos (x); figure (1); %subplot (2,1,1); plot (x,y1); title ('plot (x,y1)'); grid on %subplot (2,1,2); plot (x,y2);

12.实验心理学 实验报告 河内塔

河内塔 XXX 应用心理学X班 摘要本实验主要通过被试对河内塔游戏的问题解决的过程,记录问题解决的时间,以及圆盘的移动数量,分析被试所用的思维策略,思考在实验过程中遇到的问题,从而找出解决河内塔的最优方法。一般情况下,被试第一一次参与实验的时间比较长,若成功之后一遍一遍做,时间会慢慢缩短。分析可得最好的策略应当是模式策略。实验存在练习效应和疲劳效应,且极易受环境影响。 关键词河内塔问题循环子目标知觉策略模式策略机械记忆策略 1.引言 河内塔问题是问题解决研究中的经典实验。给出柱子1、2、3。在柱1上,有一系列圆盘,自上而下圆盘的大小是递增的,构成金字塔状。要求被试将柱1的所有圆盘移到柱3上去,且最终在柱3上仍构成金字塔排列,规则是每次只能移动一个圆盘,且大盘不可压在小盘之上,可以利用圆柱2。完成河内塔作业的最少移动次数为2的n次方减1,其中n为圆盘的数目。 解决河内塔问题有以下四种常用策略,分别为循环子目标,知觉

策略,模式策略,机械记忆策略 循环子目标思路是要把最大的金字塔移到柱3,就要先把次大的金字塔移到柱2;而要把次大的金字塔移到柱2, 就要先把比它小一层的金字塔移到柱3。依次类推,直到只需要移动最上面的盘为止。这种策略类似计算机的递归,它是内部指导的策略,被试不必看具体刺激,只是把内部目标记在脑中,然后-步步循环执行,直到解决问题。知觉策略:这种策略是刺激指导的策略,根据所看到的情景与目标的关系,排除当前最大的障碍,从而一步步达到目标。 模式策略:也是内部指导的策略,但不涉及目标,而是按-定规则来采取行动。解决河内塔的通用规则是,当圆盘的总数为奇数时,最小的圆盘按1->3->2->1->3->2的顺序移动;当总数为偶数时,按1->2->3->1- >2- >3的顺序移动。 机械记忆策略是将做对的一系列步骤死记硬背下来,但无法创新,不可迁移。 2 对象与方法 2.1 被试 教师教育学院应用心理学班2班同学1名,矫正视力正常,色觉正常。 2.2 仪器 实验仪器为计算机,PsyKey实验平台 2.3 实验材料

汉明码编码实验报告

重庆工程学院 电子信息学院 实验报告 课程名称:_ 数据通信原理开课学期:__ 2015-2016/02_ 院(部): 电子信息学院开课实验室:实训楼512 学生姓名: 舒清清梁小凤专业班级: 1491003 学号: 149100308 149100305

重庆工程学院学生实验报告 课程名 称 数据通信原理实验项目名称汉明码编译实验 开课院系电子信息学院实验日期 2016年5月7 日 学生姓名舒清清 梁小凤 学号 149100308 149100305 专业班级网络工程三班 指导教 师 余方能实验成绩 教师评语: 教师签字:批改时间:

一、实验目的和要求 1、了解信道编码在通信系统中的重要性。 2、掌握汉明码编译码的原理。 3、掌握汉明码检错纠错原理。 4、理解编码码距的意义。 二、实验内容和原理 汉明码编码过程:数字终端的信号经过串并变换后,进行分组,分组后的数据再经过汉明码编码,数据由4bit变为7bit。 三、主要仪器设备 1、主控&信号源、6号、2号模块各一块 2、双踪示波器一台 3连接线若干

四、实验操作方法和步骤 1、关电,按表格所示进行连线 2、开电,设置主控菜单,选择【主菜单】→【通信原理】→【汉明码】。 (1)将2号模块的拨码开关S12#拨为10100000,拨码开关S22#、S32#、S42#均拨为00000000;(2)将6号模块的拨码开关S16#拨为0001,即编码方式为汉明码。开关S36#拨为0000,即无错模式。按下6号模块S2系统复位键。 3、此时系统初始状态为:2号模块提供32K编码输入数据,6号模块进行汉明编译码,无差错插入模式。 4、实验操作及波形观测。 (1)用示波器观测6号模块TH5处编码输出波形。 (2)设置2号模块拨码开关S1前四位,观测编码输出并填入下表中: 五、实验记录与处理(数据、图表、计算等) 校对输入0000,编码0000000 输入0001,编码0001011 输入0010,编码0010101 输入0011,编码0011110 输入0100,编码0100110 输入0101,编码0101101 输入0110,编码0110011输入0111,编码0111000

MATLAB通信建模实验仿真实验报告

实验1:上采样与内插 一、实验目的 1、了解上采样与内插的基本原理和方法。 2、掌握上采样与内插的matlab程序的设计方法。 二、实验原理 上采样提高采样频率。上采样使得周期降低M倍,即新采样周期Tu和原有采样周期Ts的关系是T u=T s/M,根据对应的连续信号x(t),上采样过程从原有采样值x(kT s)生成新采样值x(kT u)=x(kT s/M)。操作的结果是在每两个采样值之间放入M-1个零值样点。 更实用的内插器是线性内插器,线性内插器的脉冲响应定义如下: 上采样值x(kT u)=x(kT s/M)通过与线性内插器的脉冲响应的卷积来完成内插。 三、实验内容 仿真正弦波采样和内插,通过基本采样x(k),用M=6产生上采样x u(k),由M=6线性内插得到样点序列x i(k)。 四、实验程序 % File: c3_upsampex.m M = 6; % upsample factor h = c3_lininterp(M); % imp response of linear interpolator t = 0:10; % time vector tu = 0:60; % upsampled time vector x = sin(2*pi*t/10); % original samples xu = c3_upsamp(x,M); % upsampled sequence subplot(3,1,1) stem(t,x,'k.') ylabel('x') subplot(3,1,2) stem(tu,xu,'k.') ylabel('xu') xi = conv(h,xu); subplot(3,1,3) stem(xi,'k.') ylabel('xi') % End of script file. % File: c3_upsample.m function out=c3_upsamp(in,M)

MATLAB仿真实验报告

MATLAB 仿真实验报告 课题名称:MATLAB 仿真——图像处理 学院:机电与信息工程学院 专业:电子信息科学与技术 年级班级:2012级电子二班 一、实验目的 1、掌握MATLAB处理图像的相关操作,熟悉相关的函数以及基本的MATLAB语句。 2、掌握对多维图像处理的相关技能,理解多维图像的相关性质 3、熟悉Help 命令的使用,掌握对相关函数的查找,了解Demos下的MATLAB自带的原函数文件。 4、熟练掌握部分绘图函数的应用,能够处理多维图像。 二、实验条件

MATLAB调试环境以及相关图像处理的基本MATLAB语句,会使用Help命令进行相关函数查找 三、实验内容 1、nddemo.m函数文件的相关介绍 Manipulating Multidimensional Arrays MATLAB supports arrays with more than two dimensions. Multidimensional arrays can be numeric, character, cell, or structure arrays. Multidimensional arrays can be used to represent multivariate data. MATLAB provides a number of functions that directly support multidimensional arrays. Contents : ●Creating multi-dimensional arrays 创建多维数组 ●Finding the dimensions寻找尺寸 ●Accessing elements 访问元素 ●Manipulating multi-dimensional arrays操纵多维数组 ●Selecting 2D matrices from multi-dimensional arrays从多维数组中选择二维矩 阵 (1)、Creating multi-dimensional arrays Multidimensional arrays in MATLAB are created the same way as two-dimensional arrays. For example, first define the 3 by 3 matrix, and then add a third dimension. The CAT function is a useful tool for building multidimensional arrays. B = cat(DIM,A1,A2,...) builds a multidimensional array by concatenating(联系起来)A1, A2 ... along the dimension DIM. Calls to CAT can be nested(嵌套). (2)、Finding the dimensions SIZE and NDIMS return the size and number of dimensions of matrices. (3)、Accessing elements To access a single element of a multidimensional array, use integer subscripts(整数下标). (4)、Manipulating multi-dimensional arrays

人工智能 实验三 汉诺塔的深度有界搜索求解

< 人工智能 > 实验报告 3 一、实验目的: 掌握汉诺塔的深度有界搜索求解算法的基本思想。 二、实验要求: 用C语言实现汉诺塔的深度有界搜索求解 三、实验语言环境: C语言 四、设计思路: 含有深度界限的深度优先搜索算法如下: (1) 把起始节点S放到未扩展节点OPEN表中。如果此节点为一目标节点,则得到一个解。 (2) 如果OPEN为一空表,则失败退出。 (3) 把第一个节点(节点n)从OPEN表移到CLOSED表。 (4) 如果节点n的深度等于最大深度,则转向(2)。 (5) 扩展节点n,产生其全部后裔,并把它们放入OPEN表的前头。如果没有后裔,则转向(2)。 (6) 如果后继节点中有任一个为目标节点,则求得一个解,成功退出;否则,转向(2)。 五、实验代码: #include #include typedef struct node { long map;

long floor; //记录第几层 } node; node queue[362880 / 2 + 1]; //奇偶各一半 long tail, head; long hash[362880 / 32 + 1]; int main() { void Solve(); while (scanf("%ld", &queue[0].map) && queue[0].map) { memset(hash, 0, sizeof(hash)); queue[0].floor = 1; //(根节点)第一层 tail = head = 0; Solve(); printf("max_floor == %d\n", queue[head].floor); printf("total node == %d\n", head + 1); printf("total node in theory [%d]\n", 362880 / 2); } return 0; } void Solve() { node e; long i, map[9], space; long Compress(long *); int V isited(long *); void swap(long &, long &); while (tail <= head) { e = queue[tail++]; for (i=8; i>=0; i--) { map[i] = e.map % 10; if (map[i] == 0) { space = i; } e.map /= 10; } V isited(map); //根节点要置为访问过 if (space >= 3) { //can up swap(map[space - 3], map[space]); if (!Visited(map)) { queue[++head].map = Compress(map); queue[head].floor = queue[tail - 1].floor + 1;

自动控制原理MATLAB仿真实验报告

实验一 MATLAB 及仿真实验(控制系统的时域分析) 一、实验目的 学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、预习要点 1、 系统的典型响应有哪些? 2、 如何判断系统稳定性? 3、 系统的动态性能指标有哪些? 三、实验方法 (一) 四种典型响应 1、 阶跃响应: 阶跃响应常用格式: 1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。 2、),(Tn sys step ;表示时间范围0---Tn 。 3、),(T sys step ;表示时间范围向量T 指定。 4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。 2、 脉冲响应: 脉冲函数在数学上的精确定义:0 ,0)(1)(0 ?==?∞ t x f dx x f 其拉氏变换为:) ()()()(1)(s G s f s G s Y s f === 所以脉冲响应即为传函的反拉氏变换。 脉冲响应函数常用格式: ① )(sys impulse ; ② ); ,();,(T sys impulse Tn sys impulse ③ ),(T sys impulse Y = (二) 分析系统稳定性 有以下三种方法: 1、 利用pzmap 绘制连续系统的零极点图; 2、 利用tf2zp 求出系统零极点; 3、 利用roots 求分母多项式的根来确定系统的极点 (三) 系统的动态特性分析 Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.

12-C程序设计实验(十二)模版

计算机程序设计基础实验报告 实验十二:实验名称函数(二) 实验地点机房 姓名张三专业班级学号 2 日期 【实验目的】 (1)掌握函数的嵌套调用的方法 (2)掌握函数的递归调用的方法 (3)掌握全局变量和局部变量的概念和用法 【实验要求】 (1)熟练掌握函数的嵌套调用的方法 (2)熟练掌握函数的递归调用的方法 【实验环境】 (1) Microsoft XP操作系统 (2) Microsoft VC++ 6.0 【实验内容】 1.极值问题 题目描述:编写一个函数,其功能是求给定数组中的最小值与最大值的元素。 输入:第一行是测试数据的组数,第二行是数组的大小(n<=10)和数组元素输出:最大值和最小值 样例输入: 2 10 10 15 21 54 87 15 15 12 45 32 5 1 2 3 9 10 样例输出: 87 10 10 1 2.渊子赛马 题目描述: 赛马是一古老的游戏,古代战国时期就有田忌赛马。现在渊子也来赛一赛马。假设每匹马都有恒定的速度,所以速度大的马一定比速度小的马先到终点(没有

意外!!)。不允许出现平局。最后谁赢的场数多于一半(不包括一半),谁就是赢家(可能没有赢家)。渊子有N(1≤N≤1000)匹马参加比赛。对手的马的数量与渊子马的数量一样,并且知道所有的马的速度。聪明的你编写一个函数,来预测一下这场世纪之战的结果,看看渊子能否赢得比赛。 输入: 输入有多组测试数据。每组测试数据包括3行: 第一行输入N(1≤N≤1000)。表示马的数量。第二行有N个整型数字,即渊子的N匹马的速度。第三行有N个整型数字,即对手的N匹马的速度。当N为0时退出。 输出: 若通过聪明的你精心安排,如果渊子能赢得比赛,那么输出“YES”。否则输出“NO”。 样例输入: 5 2 3 3 4 5 1 2 3 4 5 4 2 2 1 2 2 2 3 1 样例输出: YES NO 提示:参见P160 例7.9 “按值传递参数” 3.进制转换 题目描述:请你用函数递归,输入一个十进制数整数N,将它转换成R进制数输出。 输入: 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R (2<=R<=16, R<>10)。输入以文件结束符结束。 输出:

汉明码编译码

汉明码编译码 一设计思想 汉明码是一种常用的纠错码,具有纠一位错误的能力。本实验使用Matlab平台,分别用程序语言和simulink来实现汉明码的编译码。用程序语言实现就是从原理层面,通过产生生成矩阵,错误图样,伴随式等一步步进行编译码。用simulink实现是用封装好的汉明码编译码模块进行实例仿真,从而验证程序语言中的编译码和误码性能分析结果。此外,在结合之前信源编码的基础上,还可实现完整通信系统的搭建。 二实现流程 1.汉明码编译码 图 1 汉明码编译码框图 1)根据生成多项式,产生指定的生成矩阵G 2)产生随机的信息序列M 得到码字 3)由C MG 4)进入信道传输 S RH得到伴随式 5)计算=T 6)得到解码码流 7)得到解码信息序列 2.汉明码误码性能分析 误码率(SER)是指传输前后错误比特数占全部比特数的比值。 误帧率(FER)是指传输前后错误码字数占全部码字数的比值。 通过按位比较、按帧比较可以实现误码率和误帧率的统计。

3. 构建完整通信系统 图 2 完整通信系统框图 三 结论分析 1. 汉明码编译码 编写了GUI 界面方便呈现过程和结果。 图 3 汉明码编译码演示GUI 界面 以产生(7,4)汉明码为例说明过程的具体实现。 1) 根据生成多项式,产生指定的生成矩阵G 用[H,G,n,k] = hammgen(3,'D^3+D+1')函数得到系统码形式的校验矩阵H 、G 以及码字长度n 和信息位数k 100101101011100010111H ????=?????? 1 10100001101001 1100101 010001G ????? ?=?? ?? ?? 2) 产生随机的信息序列M 输入信息序列 Huffman 编码 Hamming 编码 信道Hamming 译码 Huffman 译码输出信息序列噪声

MATLAB Simulink系统建模与仿真 实验报告

MATLAB/Simulink 电力系统建模与仿真 实验报告 姓名:****** 专业:电气工程及其自动化 班级:******************* 学号:*******************

实验一无穷大功率电源供电系统三相短路仿真 1.1 无穷大功率电源供电系统仿真模型构建 运行MATLAB软件,点击Simulink模型构建,根据电路原理图,添加下列模块: (1)无穷大功率电源模块(Three-phase source) (2)三相并联RLC负荷模块(Three-Phase Parallel RLC Load) (3)三相串联RLC支路模块(Three-Phase Series RLC Branch) (4)三相双绕组变压器模块(Three-Phase Transformer (Two Windings)) (5)三相电压电流测量模块(Three-Phase V-I Measurement) (6)三相故障设置模块(Three-Phase Fault) (7)示波器模块(Scope) (8)电力系统图形用户界面(Powergui) 按电路原理图连接线路得到仿真图如下: 1.2 无穷大功率电源供电系统仿真参数设置 1.2.1 电源模块 设置三相电压110kV,相角0°,频率50Hz,接线方式为中性点接地的Y形接法,电源电阻0.00529Ω,电源电感0.000140H,参数设置如下图:

1.2.2 变压器模块 变压器模块参数采用标幺值设置,功率20MVA,频率50Hz,一次测采用Y型连接,一次测电压110kV,二次侧采用Y型连接,二次侧电压11kV,经过标幺值折算后的绕组电阻为0.0033,绕组漏感为0.052,励磁电阻为909.09,励磁电感为106.3,参数设置如下图: 1.2.3 输电线路模块 根据给定参数计算输电线路参数为:电阻8.5Ω,电感0.064L,参数设置如下图: 1.2.4 三相电压电流测量模块 此模块将在变压器低压侧测量得到的电压、电流信号转变成Simulink信号,相当于电压、电流互感器的作用,勾选“使用标签(Use a label)”以便于示波器观察波形,设置电压标签“Vabc”,电流标签“Iabc”,参数设置如下图:

数据结构实验报告汉诺塔

实验报告书 课程名:数据结构 题目:汉诺塔 班级: 学号: 姓名: 评语: 成绩:指导教师: 批阅时间:年月日

一、目的与要求 1)掌握栈与队列的数据类型描述及特点; 2)熟练掌握栈的顺序和链式存储存表示与基本算法的实现; 3)掌握队列的链式存储表示与基本操作算法实现; 4) 掌握栈与队列在实际问题中的应用和基本编程技巧; 4)按照实验题目要求独立正确地完成实验内容(提交程序清单及相关实验数据与运行结果); 5)认真书写实验报告,并按时提交。 二、实验内容或题目 汉诺塔问题。程序结果:给出程序执行过程中栈的变化过程与圆盘的搬动状态。 三、实验步骤与源程序 源程序: / *编译环境Visual C++6.0 */ #include "stdafx.h" #include #include void move(int h,char c,char f) { printf("%d:%c--->%c\n",h,c,f); } void hanoi(int n,char x,char y,char z) { if(n==1) move(1,x,z); else { hanoi(n-1,x,z,y); move(n,x,z); hanoi(n-1,y,x,z); } } void main(void) { int flag; do { printf(" 汉诺塔问题\n\n"); printf("[1] 开始\n"); printf("[2] 退出\n"); printf("1--2请选择:"); scanf("%d",&flag); printf("\n"); switch(flag) { case 1:

汉明码编译码实验

汉明码编译码实验 一、实验目的 1、掌握汉明码编译码原理 2、掌握汉明码纠错检错原理 二、实验内容 1、汉明码编码实验。 2、汉明码译码实验。 3、汉明码纠错检错能力验证实验。 三、实验器材 LTE-TX-02E通信原理综合实验系统----------------------------------------------模块8 四、实验原理 在随机信道中,错码的出现是随机的,且错码之间是统计独立的。例如,由高斯白噪声引起的错码就具有这种性质。因此,当信道中加性干扰主要是这种噪声时,就称这种信道为随机信道。由于信息码元序列是一种随机序列,接收端是无法预知的,也无法识别其中有无错码。为了解决这个问题,可以由发送端的信道编码器在信息码元序列中增加一些监督码元。这些监督码元和信码之间有一定的关系,使接收端可以利用这种关系由信道译码器来发现或纠正可能存在的错码。在信息码元序列中加入监督码元就称为差错控制编码,有时也称为纠错编码。不同的编码方法有不同的检错或纠错能力。有的编码就只能检错不能纠错。 那么,为了纠正一位错码,在分组码中最少要加入多少监督位才行呢?编码效率能否提高呢?从这种思想出发进行研究,便导致汉明码的诞生。汉明码是一种能够纠正一位错码且编码效率较高的线性分组码。下面我们介绍汉明码的构造原理。 一般说来,若码长为n,信息位数为k,则监督位数r=n?k。如果希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求 2r? 1 ≥n 或2r ≥k + r + 1 (14-1)下面我们通过一个例子来说明如何具体构造这些监督关系式。 设分组码(n,k)中k=4,为了纠正一位错码,由式(14-1)可知,要求监督位数r≥3。若取r=3,则n= k + r =7。我们用α6α5…α0表示这7个码元,用S1、S2、S3表示三个监督关系式中的校正子,则S1 S2 S3的值与错码位置的对应关系可以规定如表14-1所列。 表14-1

matlab与通信仿真实验指导书(上)

《Matlab与通信仿真》实验指导书(上) 刘毓杨辉徐健和煦黄庆东吉利萍编著 通信与信息工程学院 2011-1

目录 第一章 MALTAB基础知识 (1) 1.1MATLAB基础知识 (1) 1.2MATLAB基本运算 (2) 1.3MATLAB程序设计 (7) 第二章 MATLAB计算结果可视化和确知信号分析 (13) 2.1计算结果可视化 (13) 2.2确知信号分析 (17) 第三章随机信号与数字基带仿真 (23) 3.1基本原理 (23) 3.2蒙特卡罗算法 (30) 第四章模拟调制MATLAB实现 (34) 4.1模拟调制 (34) 4.2信道加性高斯白噪声 (35) 4.3AM调制解调的MATLAB实现 (36) 第五章模拟信号的数字传输 (45) 5.1脉冲编码调制 (45) 5.2低通抽样定理 (45) 5.3均匀量化原理 (46) 5.4非均匀量化 (48) 第六章数字频带传输系统 (52) 6.1数字频带传输原理 (52) 6.2数字频带传输系统的MATLAB实现 (53) 第七章通信系统仿真综合实验 (67) 7.1基本原理 (67) 7.2实验内容 (67)

第一章 MALTAB基础知识 本章目标 ●了解MATLAB 程序设计语言的基本特点,熟悉MATLAB软件运行环境 ●掌握创建、保存、打开m文件及函数的方法 ●掌握变量等有关概念,具备初步的将一般数学问题转化为对应的计算机模型并进行处理的能力 1.1 MATLAB基础知识 1.1.1 MATLAB程序设计语言简介 MATLAB,Matrix Laboratory的缩写,是由MathWorks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。与大家常用的Fortran和C等高级语言相比,MATLAB的语法规则更简单,更贴近人的思维方方式,被称为“草稿纸式的语言”。MATLAB软件主要由主包、仿真系统(simulink)和工具箱(toolbox)三大部分组成。 1.1.2 MATLAB界面及帮助 MATLAB基本界面如图1-1所示,命令窗口包含标题栏、菜单栏、工具栏、命令行区、状态栏、垂直和水平波动条等区域。 图1-1 MATLAB基本界面 (1)菜单栏

控制理论实验报告MATLAB仿真实验解析

实验报告 课程名称:控制理论(乙) 指导老师:林峰 成绩:__________________ 实验名称:MATLAB 仿真实验 实验类型:________________同组学生姓名:__________ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 实验九 控制系统的时域分析 一、 实验目的: 1.用计算机辅助分析的办法,掌握系统的时域分析方法。 2.熟悉Simulink 仿真环境。 二、实验原理及方法: 系统仿真实质上就是对系统模型的求解,对控制系统来说,一般模型可转化成某个微分方程或差分方程表示,因此在仿真过程中,一般以某种数值算法从初态出发,逐步计算系统的响应,最后绘制出系统的响应曲线,进而可分析系统的性能。控制系统最常用的时域分析方法是,当输入信号为单位阶跃和单位冲激函数时,求出系统的输出响应,分别称为单位阶跃响应和单位冲激响应。在MATLAB 中,提供了求取连续系统的单位阶跃响应函数step ,单位冲激响应函数impulse ,零输入响应函数initial 等等。 二、实验内容: 二阶系统,其状态方程模型为 ? 1x -0.5572 -0.7814 1x 1 = + u ? 2x 0.7814 0 2x 0 1x y = [1.9691 6.4493] +[0] u 2x 四、实验要求: 1.编制MATLAB 程序,画出单位阶跃响应曲线、冲击响应曲线、系统的零输入响应、斜坡输入响应; (1)画出系统的单位阶跃响应曲线; A=[-0.5572 -0.7814;0.7814 0 ]; B=[1;0];

汉诺塔问题

实验二知识表示方法 梵塔问题实验 1.实验目的 (1)了解知识表示相关技术; (2)掌握问题规约法或者状态空间法的分析方法。 2.实验内容(2个实验内容可以选择1个实现) (1)梵塔问题实验。熟悉和掌握问题规约法的原理、实质和规约过程;理解规约图的表示方法; (2)状态空间法实验。从前有一条河,河的左岸有m个传教士、m个野人和一艘最多可乘n人的小船。约定左岸,右岸和船上或者没有传教士,或者野人数量少于传教士,否则野人会把传教士吃掉。搜索一条可使所有的野人和传教士安全渡到右岸的方案。 3.实验报告要求 (1)简述实验原理及方法,并请给出程序设计流程图。 我们可以这样分析: (1)第一个和尚命令第二个和尚将63个盘子从A座移动到B座; (2)自己将底下最大的盘子从A移动到C; (3)再命令第二个和尚将63个盘子从B座移动到C;(4)第二个和尚命令第三个和尚重复(1)(2)(3);以此类推便可以实现。这明显是个递归的算法科技解决的问

题。 (2)源程序清单: #include #include using namespace std; void main() { void hanoi(int n,char x,char y,char z);

int n; printf("input the number of diskes\n"); scanf("%d",&n); hanoi(n,'A','B','C'); } void hanoi(int n,char p1,char p2,char p3) { if(1==n) cout<<"盘子从"<

汉明码编译码

汉明码编译码

汉明码编译码 一设计思想 汉明码是一种常用的纠错码,具有纠一位错误的能力。本实验使用Matlab平台,分别用程序语言和simulink来实现汉明码的编译码。用程序语言实现就是从原理层面,通过产生生成矩阵,错误图样,伴随式等一步步进行编译码。用simulink实现是用封装好的汉明码编译码模块进行实例仿真,从而验证程序语言中的编译码和误码性能分析结果。此外,在结合之前信源编码的基础上,还可实现完整通信系统的搭建。 二实现流程 1.汉明码编译码 生成矩阵G 信息序列M 产生码字C 信道 计算伴随式S接收码流R 校验矩阵H 解码码流C2 解码信息序列 M2 图 1 汉明码编译码框图 1)根据生成多项式,产生指定的生成矩阵G 2)产生随机的信息序列M 3)由C MG 得到码字 4)进入信道传输

三 结论分析 1. 汉明码编译码 编写了GUI 界面方便呈现过程和结果。 图 2 汉明码编译码演示GUI 界面 以产生(7,4)汉明码为例说明过程的具体实现。 1) 根据生成多项式,产生指定的生成矩阵G 用[H,G,n,k] = hammgen(3,'D^3+D+1')函数得到系统码形式的校验矩阵H 、G 以及码字长度n 和信息位数k 100101101011100010111H ????=?????? 1 10100001101001 1100101010001G ????? ?=?? ?? ?? 2) 产生随机的信息序列M 0010=01000111M ?? ???? ????

3) 由C MG =得到码字 010001101101000010111C ?? ??=?? ???? 4) 进入信道传输 假设是BSC 信道,错误转移概率设定为0.1 传输后接收端得到的码流为 000011110100000111101R ?? ??=?? ???? 红色表示错误比特。 5) 计算=T S RH 得到伴随式 011=100001S ?? ???? ???? 错误图样 0000001 0000010 0000100 0001000 0010000 0100000 1000000 伴随式 101 111 011 110 001 010 100 查表可知第一行码字错误图样为0100000,第二行码字错误图样为1000000,第三行码字错误图样为0000001。 进行??=+C R E 即可得到纠错解码的码字C2。 6) 得到解码码流 0110100200000001110010C ?? ??=?? ????

MATLAB仿真实验报告

MATLA仿真实验报告 学院:计算机与信息学院 课程:—随机信号分析 姓名: 学号: 班级: 指导老师: 实验一

题目:编写一个产生均值为1,方差为4的高斯随机分布函数程序, 求最大值,最小值,均值和方差,并于理论值比较。 解:具体的文件如下,相应的绘图结果如下图所示 G仁random( 'Normal' ,0,4,1,1024); y=max(G1) x=mi n(G1) m=mea n(G1) d=var(G1) plot(G1);

实验二 题目:编写一个产生协方差函数为CC)=4e":的平稳高斯过程的程序,产生样本函数。估计所产生样本的时间自相关函数和功率谱密度,并求统计自相关函数和功率谱密度,最后将结果与理论值比较。 解:具体的文件如下,相应的绘图结果如下图所示。 N=10000; Ts=0.001; sigma=2; beta=2; a=exp(-beta*Ts); b=sigma*sqrt(1-a*a); w=normrnd(0,1,[1,N]); x=zeros(1,N); x(1)=sigma*w(1); for i=2:N x(i)=a*x(i-1)+b*w(i); end %polt(x); Rxx=xcorr(x0)/N; m=[-N+1:N-1]; Rxx0=(sigma A2)*exp(-beta*abs(m*Ts)); y=filter(b,a,x) plot(m*Ts,RxxO, 'b.' ,m*Ts,Rxx, 'r');

periodogram(y,[],N,1/Ts); 文件旧硯化)插入(1〕 ZMCD 克闻〔D ]窗口曲) Frequency (Hz) 50 100 150 200 250 300 350 400 450 500 NH---.HP)&UO 二 balj/ 」- □歹

(7,4)汉明码编译码系统设计.doc

南华大学电气工程学院 《通信原理课程设计》任务书 设计题目:(7, 4)汉明码编译码系统设计 专业:通信工程 学生姓名: 马勇学号:20114400236 起迄日期:2013 年12月20日~2014年1月3日指导教师:宁志刚副教授 系主任:王彦教授

《通信原理课程设计》任务书

《通信原理课程设计》设计说明书格式 一、纸张和页面要求 A4纸打印;页边距要求如下:页边距上下各为2.5 厘米,左右边距各为2.5厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。 二、说明书装订页码顺序 (1)任务书 (2)论文正文 (3)参考文献,(4)附录 三、课程设计说明书撰写格式 见范例 引言(黑体四号) ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(首行缩进两个字,宋体小四号) 1☆☆☆☆(黑体四号) 正文……(首行缩进两个字,宋体小四号) 1.1(空一格)☆☆☆☆☆☆(黑体小四号) 正文……(首行缩进两个字,宋体小四号) 1.2 ☆☆☆☆☆☆、☆☆☆ 正文……(首行缩进两个字,宋体小四号) 2 ☆☆☆☆☆☆ (黑体四号) 正文……(首行缩进两个字,宋体小四号) 2.1 ☆☆☆☆、☆☆☆☆☆☆,☆☆☆(黑体小四号) 正文……(首行缩进两个字,宋体小四号) 2.1.1☆☆☆,☆☆☆☆☆,☆☆☆☆(楷体小四号) 正文……(首行缩进两个字,宋体小四号) (1)……

图1. 工作波形示意图(图题,居中,宋体五号) ………… 5结论(黑体四号) ☆☆☆☆☆☆(首行缩进两个字,宋体小四号) 参考文献(黑体四号、顶格) 参考文献要另起一页,一律放在正文后,不得放在各章之后。只列出作者直接阅读过或在正文中被引用过的文献资料,作者只写到第三位,余者写“等”,英文作者超过3人写“et al”。 几种主要参考文献著录表的格式为: ⑴专(译)著:[序号]著者.书名(译者)[M].出版地:出版者,出版年:起~止页码. ⑵期刊:[序号]著者.篇名[J].刊名,年,卷号(期号):起~止页码. ⑶论文集:[序号]著者.篇名[A]编者.论文集名[C] .出版地:出版者,出版者. 出版年:起~止页码. ⑷学位论文:[序号]著者.题名[D] .保存地:保存单位,授予年. ⑸专利文献:专利所有者.专利题名[P] .专利国别:专利号,出版日期. ⑹标准文献:[序号]标准代号标准顺序号—发布年,标准名称[S] . ⑺报纸:责任者.文献题名[N].报纸名,年—月—日(版次). 附录(居中,黑体四号)

北邮dsp软件matlab仿真实验报告

题目: 数字信号处理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 ππππ=+--

汉诺塔程序实验报告

实验题目: Hanoi 塔问题 一、问题描述: 假设有三个分别命名为 A , B 和C 的塔座,在塔座 B 上插有n 个直径大小各不相同、从小到 大编号为1, 2,…,n 的圆盘。现要求将塔座 B 上的n 个圆盘移至塔座 A 上并仍按同样顺序 叠排,圆盘移动时必须遵守以下规则: (1 )每次只能移动一个圆盘; (2)圆盘可以插在 A , B 和C 中任一塔上; ( 3)任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。 要求: 用程序模拟上述问题解决办法,并输出移动的总次数, 圆盘的个数从键盘输入; 并想 办法计算出程序运行的时间。 二、 算法思路: 1 、建立数学模型: 这个问题可用递归法解决,并用数学归纳法又个别得出普遍解法: 假设塔座B 上有3个圆盘移动到塔座 A 上: (1) "将塔座B 上2个圆盘借助塔座 A 移动到塔座C 上; (2) "将塔座B 上1个圆盘移动到塔座 A 上; (3) "将塔座C 上2个圆盘借助塔座 B 移动到塔座A 上。 其中第 2步可以直接实现。第 1步又可用递归方法分解为: 1.1"将塔座B 上1个圆盘从塔座 1.2"将塔座B 上1个圆盘从塔座 1.3"将塔座A 上1个圆盘从塔座 第 3 步可以分解为: 3.1将塔座C 上1个圆盘从塔座 3.2将塔座C 上1个圆盘从塔座 3.3将塔座B 上1个圆盘从塔座 综上所述:可得到移动 3 个圆盘的步骤为 B->A,B->C, A->C, B->A, C->B, C->A, B->A, 2、算法设计: 将n 个圆盘由B 依次移到A , C 作为辅助塔座。当 n=1时,可以直接完成。否则,将塔 座B 顶上的n-1个圆盘借助塔座 A 移动到塔座C 上;然后将圆盘B 上第n 个圆盘移到塔 座A 上;最后将塔座 C 上的n-1个圆盘移到塔座 A 上,并用塔座B 作为辅助塔座。 三、原程序 #include #include #include int times = 0; void move(char a, char b) { printf("%c > %c \n", a,b); } void hno(int n,char a , char b, char c) { if (n==1) { move(a,c); times ++; } X 移动到塔座 A ; X 移动到塔座 C ; Z 移动到塔座 C 。 Y 移动到塔座 Y 移动到塔座 X 移动到塔座 B ; A ;

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