通信原理MATLAB仿真基础(新)
通信原理MATLAB仿真教程-数字信号的频带传输
![通信原理MATLAB仿真教程-数字信号的频带传输](https://img.taocdn.com/s3/m/764cddd6b9f3f90f76c61b4a.png)
现设 s (t ) 的功率谱密度为 Ps ( f ) ,e0 (t )的功率谱密度 为 Pe ( f ) ,则由式(8-4)可以证得
1 Pe ( f ) = [( Ps ( f + f c ) + Ps ( f − f c )] 4
1 1 2 Ps ( f ) = Tb Sa (π f Tb ) + δ( f ) 4 4
图8-1 2ASK信号产生方法与波形示例
8
二、MATLAB实现 以数字信号序列10110010为例,给出产生2ASK 信号的MATLAB程序如下(函数文件askdigital.m), 流程图如图8-2所示。
开始 为变量赋初值 生成2ASK信号 画出原始二进制代码波形 画出2ASK信号波形 结束 图8-2 2ASK流程图
y (t ) = e0 (t ) = s (t ) cos ωc t ,包络检波器输出为 s (t )。经抽样、
判决后将码元再生,即可恢复出数字序列{
an }。
12
2ASK信号 BPF
半波或 全波整流
LPF
抽样 判决器
e0 (t )
y (t )
包检器 图 8-4 2ASK信号的包络解调
s (t )
5
ωc
8.1.1二进制数字幅度调制
一、一般原理与实现方法 数字幅度调制又称幅度键控(ASK),二进制幅度键控 记作2ASK。2ASK是利用代表数字信息“0”或“1”的基带矩形 脉冲去键控一个连续的载波,使载波时断时续地输出。有载 波输出时表示发送“1”,无载波输出时表示发送“0”。根据幅 度调制的原理,2ASK信号可表示为:
其中,s (t ) 为单极性非归零矩形脉冲序列
s (t ) = ∑ an g (t − nTb )
Matlab与通信仿真_第一章 Matlab基础知识
![Matlab与通信仿真_第一章 Matlab基础知识](https://img.taocdn.com/s3/m/451d8c1f52d380eb62946d80.png)
• A=[1,2,3;4,5,6];
• A(1,2) • ans=2 • B=[1,2,3;4,5,6]; • B(3) • ans=2 • 显然在Matlab中矩阵是按列存储的。 • 注:“;”在每条语句结束后可以出现,此时的作用是在Command
Window中不显示运行结果,如果语句后没有“;”则在Command
主讲教师:李莉
通信基础实验教学中心
第2-1页
内容提要
1 2 3
Matlab基础知识 Matlab计算结果可视化和确知信号分析 随机信号和数字基带仿真
4
5 6 7
模拟调制Matlab实现
模拟信号的数字传输 数字频带传输系统
通信系统仿真综合实验
第2-2页
本章目标
• 了解MATLAB 程序设计语言的基本特点,熟悉
• clc命令用于清空命令窗口(Command Window)中的变量;
• who命令在Command Window中显示出驻留变量的名称; • whos在给出变量名的同时,还给出它们的大小、所占字节数及数据 类型等信息。 • (2)内存变量文件 • 利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地 保留下来,扩展名是.mat。MAT文件的生成和装入由save和load命令 来完成。常用格式为: • save 文件名 [变量名表] [-append][-ascii] • load 文件名 [变量名表] [-ascii]
置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终 的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1
组成。
• 当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的 每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最
通信原理matlab仿真
![通信原理matlab仿真](https://img.taocdn.com/s3/m/5e7c2b2891c69ec3d5bbfd0a79563c1ec5dad7be.png)
通信原理matlab仿真通信原理是现代通讯技术的基础。
它研究的是信息的传递过程,包括信号的生成、传输、接收、处理和解调等多个环节。
MATLAB是一种强大的仿真工具,可以用于构建和分析各种通信系统。
本文将介绍如何使用MATLAB进行通信原理仿真。
1. 基本概念在开始MATLAB仿真之前,我们需要了解一些基本概念。
最基本的通信系统是由三个部分组成的:发送器、信道和接收器。
发送器将信息转换为一种可以传输的信号,信道将信号从发送器传输到接收器,接收器将信号转换回信息。
信号可以是模拟信号或数字信号。
模拟信号是连续的,数字信号是离散的。
在数字通信中,一般使用的是数字信号。
2. 发送器仿真在MATLAB中,我们可以使用生成函数来模拟发送器的行为。
常用的生成函数包括sine、cosine、sawtooth等。
例如,如果我们要发送一个正弦波信号,可以使用以下代码:t = 0:0.001:1; % 生成时间序列f = 10; % 正弦波频率A = 1; % 正弦波幅值s = A*sin(2*pi*f*t); % 生成正弦波信号上述代码中,t表示时间序列,f表示正弦波频率,A表示幅值,s表示生成的正弦波信号。
在实际系统中,发送器一般会对信号进行一定的调制,例如调频调幅等。
这些调制方式也可以使用MATLAB进行仿真。
3. 信道仿真信道是一个复杂的环节,其影响因素很多。
常见的信道包括添加噪声信道、多径信道等。
在MATLAB中,常用的信道模型包括AWGN信道和瑞利信道。
AWGN信道是指添加高斯白噪声的信道,可以使用以下代码模拟:s_noise = awgn(s,SNR,'measured');其中,s_noise是添加高斯白噪声后的信号,SNR是信噪比,可以修改为不同的值进行仿真。
瑞利信道是一种多径衰落信道,可以使用以下代码模拟:h = rayleighchan(1/1000,60); % 生成瑞利信道对象s_r = filter(h,s_noise);其中,h是瑞利信道对象,1/1000表示信噪比,60表示长度。
通信原理MATLAB仿真
![通信原理MATLAB仿真](https://img.taocdn.com/s3/m/1b96758aa216147916112845.png)
小学期报告实习题目通信原理Matlab仿真专业通信与信息工程班级学号学生姓名实习成绩指导教师2010年通信原理Matlab仿真目录一、实验目的------------------------------------------------------------------------------------------------2二、实验题目------------------------------------------------------------------------------------------------2三、正弦信号波形及频谱仿真------------------------------------------------------------------------2 (一)通信原理知识--------------------------------------------------------------------------------------2 (二)仿真原理及思路--------------------------------------------------------------------------------------2 (三)程序流程图------------------------------------------------------------------------------------------- 3 (四)仿真程序及运行结果------------------------------------------------------------------------------3 (五)实验结果分析---------------------------------------------------------------------------------------5四、单极性归零波形及其功率谱密度仿真--------------------------------------------------------5 (一)通信原理知识--------------------------------------------------------------------------------------6 (二)仿真原理及思路------------------------------------------------------------------------------ -------6 (三)程序流程图-------------------------------------------------------------------------------------------6 (四)仿真程序及运行结果--------------------------------------------------------------------------------6 (五)实验结果分析-------------------------------------------------------------------------------- -------6五、升余弦滚降波形的眼图及功率谱密度仿真-------------------------------------------------8 (一)通信原理知识--------------------------------------------------------------------------------------8 (二)仿真原理及思路------------------------------------------------------------------------------ -------9 (三)程序流程图------------------------------------------------------------------------------- -----------9 (四)仿真程序及运行结果------------------------------------------------------------------------------10 (五)实验结果分析---------------------------------------------------------------------------------------11六、PCM编码及解码仿真-----------------------------------------------------------------------------12 (一)通信原理知识---------------------------------------------------------------------------------- ---12 (二)仿真原理及思路------------------------------------------------------------------------------ ------ 13 (三)程序流程图------------------------------------------------------------------------------- -----------14 (四)仿真程序及运行结果------------------------------------------------------------------------------15 (五)实验结果分析---------------------------------------------------------------------------------------18七、实验心得---------------------------------------------------------------------------- -------------------18一、实验目的1、学会MATLAB 软件的最基本运用。
MATLAB仿真实例(通信原理)
![MATLAB仿真实例(通信原理)](https://img.taocdn.com/s3/m/cfb958c80c22590102029dc0.png)
一、实验目的 (1)二、实验题目 (1)三、实验内容 (1)3.1傅里叶变换与傅里叶反变换 (1)3.2题目一:正弦信号波形及频谱 (2)3.2.1仿真原理及思路 (2)3.2.2程序流程图 (3)3.2.3仿真程序及运行结果 (3)3.2.4实验结果分析 (5)3.3题目二:单极性归零(RZ)波形及其功率谱 (5)3.3.1仿真原理及思路 (5)3.3.2程序流程图 (6)3.3.3仿真程序及运行结果 (6)3.3.4实验结果分析 (8)3.4题目三:升余弦滚降波形的眼图及其功率谱 (8)3.4.1仿真原理及思路 (8)3.4.2程序流程图 (8)3.4.3仿真程序及运行结果 (8)3.4.4实验结果分析: (10)3.5题目四:完成PCM编码及解码的仿真 (11)3.5.1仿真原理及思路 (11)3.5.2程序流程图 (12)3.5.3仿真程序及运行结果 (12)3.5.4实验结果分析 (15)3.6附加题一:最佳基带系统的Pe~Eb\No曲线,升余弦滚降系数a=0.5,取样值的偏差是Ts/4 (16)3.6.1仿真原理及思路 (16)3.6.2程序流程图 (16)3.6.3仿真程序及运行结果 (16)3.6.4实验结果分析 (18)3.7附加题二:试作出Pe~Eb/No曲线。
升余弦滚降系数a=0.5,取样时间无偏差,但信道是多径信道,C(f)=|1-0.5-j2 ft|,t=T s/2 (18)3.7.1仿真原理及思路 (18)3.7.2程序流程图 (19)3.7.3仿真程序及运行结果 (19)3.7.4实验结果分析 (21)四、实验心得 (21)一、 实验目的⏹ 学会MATLAB 软件的最基本运用。
MATLAB 是一种很实用的数学软件,它易学易用。
MATLAB 对于许多的通信仿真类问题来说是很合适的。
⏹ 了解计算机仿真的基本原理及方法,知道怎样通过仿真的方法去研究通信问题。
⏹ 加深对通信原理课程有关内容的理解。
通信原理基于matlab的计算机仿真
![通信原理基于matlab的计算机仿真](https://img.taocdn.com/s3/m/472c2fbf6bd97f192279e9cf.png)
例1-1%周期信号(方波)的展开,fb_jinshi.mclose all;clear all;N=100; %取展开式的项数为2N+1项T=1;fs=1/T;N_sample=128; %为了画出波形,设置每个周期的采样点数dt = T/N_sample;t=0:dt:10*T-dt;n=-N:N;Fn = sinc(n/2).*exp(-j*n*pi/2);Fn(N+1)=0;ft = zeros(1,length(t));for m=-N:Nft = ft + Fn(m+N+1)*exp(j*2*pi*m*fs*t);endplot(t,ft)例 1-2利用FFT计算信号的频谱并与信号的真实频谱的抽样比较。
脚本文件T2F.m定义了函数T2F,计算信号的傅立叶变换。
function [f,sf]= T2F(t,st)%This is a function using the FFT function to calculate a signal's Fourier %Translation%Input is the time and the signal vectors,the length of time must greater %than 2%Output is the frequency and the signal spectrumdt = t(2)-t(1);T=t(end);df = 1/T;N = length(st);f=-N/2*df:df:N/2*df-df;sf = fft(st);sf = T/N*fftshift(sf);脚本文件F2T.m定义了函数F2T,计算信号的反傅立叶变换。
function [t st]=F2T(f,sf)%This function calculate the time signal using ifft function for the input %signal's spectrumdf = f(2)-f(1);Fmx = ( f(end)-f(1) +df);dt = 1/Fmx;N = length(sf);T = dt*N;%t=-T/2:dt:T/2-dt;t = 0:dt:T-dt;sff = fftshift(sf);st = Fmx*ifft(sff);另写脚本文件fb_spec.m如下:%方波的傅氏变换, fb_spec.mclear all;close all;T=1;N_sample = 128;dt=T/N_sample;t=0:dt:T-dt;st=[ones(1,N_sample/2), -ones(1,N_sample/2)]; %方波一个周期subplot(211);plot(t,st);axis([0 1 -2 2]);xlabel('t'); ylabel('s(t)');subplot(212);[f sf]=T2F(t,st); %方波频谱plot(f,abs(sf)); hold on;axis([-10 10 0 1]);xlabel('f');ylabel('|S(f)|');%根据傅氏变换计算得到的信号频谱相应位置的抽样值sff= T^2*j*pi*f*0.5.*exp(-j*2*pi*f*T).*sinc(f*T*0.5).*sinc(f*T*0.5);plot(f,abs(sff),'r-')例1-3%信号的能量计算或功率计算,sig_pow.mclear all;close all;dt = 0.01;t = 0:dt:5;s1 = exp(-5*t).*cos(20*pi*t);s2 = cos(20*pi*t);E1 = sum(s1.*s1)*dt; %s1(t)的信号能量P2 = sum(s2.*s2)*dt/(length(t)*dt); %s2(t)的信号功率s[f1 s1f]= T2F(t,s1);[f2 s2f]= T2F(t,s2);df = f1(2)-f1(1);E1_f = sum(abs(s1f).^2)*df; %s1(t)的能量,用频域方式计算df = f2(2)-f2(1);T = t(end);P2_f = sum(abs(s2f).^2)*df/T; %s2(t)的功率,用频域方式计算figure(1)subplot(211)plot(t,s1);xlabel('t'); ylabel('s1(t)');subplot(212)plot(t,s2)xlabel('t'); ylabel('s2(t)');例1-4%方波的傅氏变换,sig_band.mclear all;close all;T=1;N_sample = 128;dt=1/N_sample;t=0:dt:T-dt;st=[ones(1,N_sample/2) -ones(1,N_sample/2)];df=0.1/T;Fx = 1/dt;f=-Fx:df:Fx-df;%根据傅氏变换计算得到的信号频谱sff= T^2*j*pi*f*0.5.*exp(-j*2*pi*f*T).*sinc(f*T*0.5).*sinc(f*T*0.5);plot(f,abs(sff),'r-')axis([-10 10 0 1]);hold on;sf_max = max(abs(sff));line([f(1) f(end)],[sf_max sf_max]);line([f(1) f(end)],[sf_max/sqrt(2) sf_max/sqrt(2)]); %交点处为信号功率下降3dB处Bw_eq = sum(abs(sff).^2)*df/T/sf_max.^2; %信号的等效带宽例 1-5%带通信号经过带通系统的等效基带表示,sig_bandpass.mclear all;close all;dt = 0.01;t = 0:dt:5;s1 = exp(-t).*cos(20*pi*t); %输入信号[f1 s1f]= T2F(t,s1); %输入信号的频谱s1_lowpass = hilbert(s1).*exp(-j*2*pi*10*t); %输入信号的等效基带信号[f2 s2f]=T2F(t,s1_lowpass); %输入等效基带信号的频谱h2f = zeros(1,length(s2f));[a b]=find( abs(s1f)==max(abs(s1f)) ); %找到带通信号的中心频率h2f( 201-25:201+25 )= 1;h2f( 301-25:301+25) = 1;h2f = h2f.*exp(-j*2*pi*f2); %加入线性相位,[t1 h1] = F2T(f2,h2f); %带通系统的冲激响应h1_lowpass = hilbert(h1).*exp(-j*2*pi*10*t1); %等效基带系统的冲激响应figure(1)subplot(521);plot(t,s1);xlabel('t'); ylabel('s1(t)'); title('带通信号');subplot(523);plot(f1,abs(s1f));xlabel('f'); ylabel('|S1(f)|'); title('带通信号幅度谱');subplot(522)plot(t,real(s1_lowpass));xlabel('t');ylabel('Re[s_l(t)]');title('等效基带信号的实部');subplot(524)plot(f2,abs(s2f));xlabel('f');ylabel('|S_l(f)|');title('等效基带信号的幅度谱');%画带通系统及其等效基带的图subplot(525)plot(f2,abs(h2f));xlabel('f');ylabel('|H(f)|');title('带通系统的传输响应幅度谱'); subplot(527)plot(t1,h1);xlabel('t');ylabel('h(t)');title('带通系统的冲激响应');subplot(526)[f3 hlf]=T2F(t1,h1_lowpass);plot(f3,abs(hlf));xlabel('f');ylabel('|H_l(f)|');title('带通系统的等效基带幅度谱');subplot(528)plot(t1,h1_lowpass);xlabel('t');ylabel('h_l(t)');title('带通系统的等效基带冲激响应');%画出带通信号经过带通系统的响应及等效基带信号经过等效基带系统的响应tt = 0:dt:t1(end)+t(end);yt = conv(s1,h1);subplot(529)plot(tt,yt);xlabel('t');ylabel('y(t)');title('带通信号与带通系统响应的卷积')ytl = conv(s1_lowpass,h1_lowpass).*exp(j*2*pi*10*tt);subplot(5,2,10)plot(tt,real(yt));xlabel('t');ylabel('y_l(t)cos(20*pi*t');title('等效基带与等效基带系统响应的卷积×中心频率载波')例 1-6%例:窄带高斯过程,文件 zdpw.mclear all; close all;N0=1; %双边功率谱密度fc=10; %中心频率B=1; %带宽dt=0.01;T=100;t=0:dt:T-dt;%产生功率为N0*B的高斯白噪声P = N0*B;st = sqrt(P)*randn(1,length(t));%将上述白噪声经过窄带带通系统,[f,sf] = T2F(t,st); %高斯信号频谱figure(1)plot(f,abs(sf)); %高斯信号的幅频特性[tt gt]=bpf(f,sf,fc-B/2,fc+B/2); %高斯信号经过带通系统glt = hilbert(real(gt)); %窄带信号的解析信号,调用hilbert函数得到解析信号glt = glt.*exp(-j*2*pi*fc*tt);[ff,glf]=T2F( tt, glt );figure(2)plot(ff,abs(glf));xlabel('频率(Hz)'); ylabel('窄带高斯过程样本的幅频特性')figure(3)subplot(411);plot(tt,real(gt));title('窄带高斯过程样本')subplot(412)plot(tt,real(glt).*cos(2*pi*fc*tt)-imag(glt).*sin(2*pi*fc*tt))title('由等效基带重构的窄带高斯过程样本')subplot(413)plot(tt,real(glt));title('窄带高斯过程样本的同相分量')subplot(414)plot(tt,imag(glt));xlabel('时间t(秒)'); title('窄带高斯过程样本的正交分量')%求窄带高斯信号功率;注:由于样本的功率近似等于随机过程的功率,因此可能出现一些偏差P_gt=sum(real(gt).^2)/T;P_glt_real = sum(real(glt).^2)/T;P_glt_imag = sum(imag(glt).^2)/T;%验证窄带高斯过程的同相分量、正交分量的正交性a = real(glt)*(imag(glt))'/T;用到的子函数function [t,st]=bpf(f,sf,B1,B2)%This function filter an input at frequency domain by an ideal bandpass filter %Inputs:% f: frequency samples% sf: input data spectrum samples% B1: bandpass's lower frequency% B2: bandpass's higher frequency%Outputs:% t: frequency samples% st: output data's time samplesdf = f(2)-f(1);T = 1/df;hf = zeros(1,length(f));bf = [floor( B1/df ): floor( B2/df )] ;bf1 = floor( length(f)/2 ) + bf;bf2 = floor( length(f)/2 ) - bf;hf(bf1)=1/sqrt(2*(B2-B1));hf(bf2)=1/sqrt(2*(B2-B1));yf=hf.*sf.*exp(-j*2*pi*f*0.1*T);[t,st]=F2T(f,yf);例 1-7%显示模拟调制的波形及解调方法DSB,文件mdsb.m%信源close all;clear all;dt = 0.001; %时间采样间隔fm=1; %信源最高频率fc=10; %载波中心频率T=5; %信号时长t = 0:dt:T;mt = sqrt(2)*cos(2*pi*fm*t); %信源%N0 = 0.01; %白噪单边功率谱密度%DSB modulations_dsb = mt.*cos(2*pi*fc*t);B=2*fm;%noise = noise_nb(fc,B,N0,t);%s_dsb=s_dsb+noise;figure(1)subplot(311)plot(t,s_dsb);hold on; %画出DSB信号波形plot(t,mt,'r--'); %标示mt的波形title('DSB调制信号');xlabel('t');%DSB demodulationrt = s_dsb.*cos(2*pi*fc*t);rt = rt-mean(rt);[f,rf] = T2F(t,rt);[t,rt] = lpf(f,rf,2*fm);subplot(312)plot(t,rt); hold on;plot(t,mt/2,'r--');title('相干解调后的信号波形与输入信号的比较');xlabel('t')subplot(313)[f,sf]=T2F(t,s_dsb);psf = (abs(sf).^2)/T;plot(f,psf);axis([-2*fc 2*fc 0 max(psf)]);title('DSB信号功率谱');xlabel('f');function [t st]=lpf(f,sf,B)%This function filter an input data using a lowpass filter %Inputs: f: frequency samples% sf: input data spectrum samples% B: lowpass's bandwidth with a rectangle lowpass%Outputs: t: time samples% st: output data's time samplesdf = f(2)-f(1);T = 1/df;hf = zeros(1,length(f));bf = [-floor( B/df ): floor( B/df )] + floor( length(f)/2 ); hf(bf)=1;yf=hf.*sf;[t,st]=F2T(f,yf);st = real(st);例1-8%显示模拟调制的波形及解调方法AM,文件mam.m%信源close all;clear all;dt = 0.001; %时间采样间隔fm=1; %信源最高频率fc=10; %载波中心频率T=5; %信号时长t = 0:dt:T;mt = sqrt(2)*cos(2*pi*fm*t); %信源%N0 = 0.01; %白噪单边功率谱密度%AM modulationA=2;s_am = (A+mt).*cos(2*pi*fc*t);B = 2*fm; %带通滤波器带宽%noise = noise_nb(fc,B,N0,t); %窄带高斯噪声产生%s_am = s_am + noise;figure(1)subplot(311)plot(t,s_am);hold on; %画出AM信号波形plot(t,A+mt,'r--'); %标示AM的包络title('AM调制信号及其包络');xlabel('t');%AM demodulationrt = s_am.*cos(2*pi*fc*t); %相干解调rt = rt-mean(rt);[f,rf] = T2F(t,rt);[t,rt] = lpf(f,rf,2*fm); %低通滤波subplot(312)plot(t,rt); hold on;plot(t,mt/2,'r--');title('相干解调后的信号波形与输入信号的比较'); xlabel('t')subplot(313)[f,sf]=T2F(t,s_am);psf = (abs(sf).^2)/T;plot(f,psf);axis([-2*fc 2*fc 0 max(psf)]);title('AM信号功率谱');xlabel('f');例 1-9%显示模拟调制的波形及解调方法SSB,文件mssb.m%信源close all;clear all;dt = 0.001; %时间采样间隔fm=1; %信源最高频率fc=10; %载波中心频率T=5; %信号时长t = 0:dt:T;mt = sqrt(2)*cos(2*pi*fm*t); %信源%N0 = 0.01; %白噪单边功率谱密度%SSB modulations_ssb = real( hilbert(mt).*exp(j*2*pi*fc*t) );B=fm;%noise = noise_nb(fc,B,N0,t);%s_ssb=s_ssb+noise;figure(1)subplot(311)plot(t,s_ssb);hold on; %画出SSB信号波形plot(t,mt,'r--'); %标示mt的波形title('SSB调制信号');xlabel('t');%SSB demodulationrt = s_ssb.*cos(2*pi*fc*t);rt = rt-mean(rt);[f,rf] = T2F(t,rt);[t,rt] = lpf(f,rf,2*fm);subplot(312)plot(t,rt); hold on;plot(t,mt/2,'r--');title('相干解调后的信号波形与输入信号的比较');xlabel('t')subplot(313)[f,sf]=T2F(t,s_ssb);psf = (abs(sf).^2)/T;plot(f,psf);axis([-2*fc 2*fc 0 max(psf)]);title('SSB信号功率谱');xlabel('f');例 2-0%显示模拟调制的波形及解调方法VSB,文件mvsb.m%信源close all;clear all;dt = 0.001; %时间采样间隔fm=5; %信源最高频率fc=20; %载波中心频率T=5; %信号时长t = 0:dt:T;mt = sqrt(2)*( cos(2*pi*fm*t)+sin(2*pi*0.5*fm*t) ); %信源%VSB modulations_vsb = mt.*cos(2*pi*fc*t);B=1.2*fm;[f,sf] = T2F(t,s_vsb);[t,s_vsb] = vsbpf(f,sf,0.2*fm,1.2*fm,fc);figure(1)subplot(311)plot(t,s_vsb);hold on; %画出VSB信号波形plot(t,mt,'r--'); %标示mt的波形title('VSB调制信号');xlabel('t');%VSB demodulation[f,rf] = T2F(t,rt);[t,rt] = lpf(f,rf,2*fm);subplot(312)plot(t,rt); hold on;plot(t,mt/2,'r--');title('相干解调后的信号波形与输入信号的比较');xlabel('t')subplot(313)[f,sf]=T2F(t,s_vsb);psf = (abs(sf).^2)/T;plot(f,psf);axis([-2*fc 2*fc 0 max(psf)]);title('VSB信号功率谱');xlabel('f');function [t,st]=vsbpf(f,sf,B1,B2,fc)%This function filter an input by an residual bandpass filter %Inputs: f: frequency samples% sf: input data spectrum samples% B1: residual bandwidth% B2: highest freq of the basedband signal%Outputs: t: frequency samples% st: output data's time samplesdf = f(2)-f(1);T = 1/df;hf = zeros(1,length(f));bf1 = [floor( (fc-B1)/df ): floor( (fc+B1)/df )] ;bf2 = [floor( (fc+B1)/df )+1: floor( (fc+B2)/df )];f1 = bf1 + floor( length(f)/2 ) ;f2 = bf2 + floor( length(f)/2 ) ;stepf = 1/length(f1);hf(f1)=0:stepf:1-stepf;hf(f2)=1;f3 = -bf1 + floor( length(f)/2 ) ;f4 = -bf2 + floor( length(f)/2) ;hf(f3)=0:stepf:(1-stepf);hf(f4)=1;yf=hf.*sf;[t,st]=F2T(f,yf);st = real(st);例 2-1%显示模拟调制的波形及解调方法AM、DSB、SSB,%信源close all;clear all;dt = 0.001;fm=1;fc=10;t = 0:dt:5;N0 = 0.1;%AM modulationA=2;s_am = (A+mt).*cos(2*pi*fc*t);B = 2*fm;noise = noise_nb(fc,B,N0,t); s_am = s_am + noise;figure(1)subplot(321)plot(t,s_am);hold on;plot(t,A+mt,'r--');%AM demodulationrt = s_am.*cos(2*pi*fc*t);rt = rt-mean(rt);[f,rf] = T2F(t,rt);。
通信原理OOK信号MATLAB仿真
![通信原理OOK信号MATLAB仿真](https://img.taocdn.com/s3/m/76f56821a5e9856a561260d5.png)
%%%%%%% 通信原理OOK信号仿真、功率谱和相干解调分析演示clcclose allclear allcodn=60; % 仿真的码元个数fc=6e+3; % 载波频率fs=fc*6; % 数据采样率bode=1000; % 信号波特率code=round(rand(1,codn)); % 产生随机信码(round:最近整数四舍五入)code_len=round(1/bode/(1/fs)); % 得到一个码元周期的数据长度for i=1:codn % 产生数字基带信号x((i-1)*code_len+1:code_len*i)=code(i);endcar=cos(2*pi*fc/fs*(0:length(x)-1)); % 产生载波y=x.*car; % ook信号等于单极性数字基带信号乘以载波figuresubplot(211)plot(x)axis([0 length(x) -0.5 1.5])grid onzoom ontitle('原始基带信号')subplot(212)plot(y)zoom ongrid ontitle('OOK信号')ay=abs(fft(y)); % 进行幅频特性分析f=0:fs/length(y):fs/2;ay=ay(1:length(f));figureplot(f,ay)zoom ongrid ontitle('OOK的频谱')z=y.*car; % 相干解调fl=fir1(64,fc/fs*2); % 低通滤波z=2*filter(fl,1,z);figuresubplot(211)plot(x)axis([0 length(x) -0.5 1.5])grid ontitle('原始基带信号')subplot(212)plot(z)axis([0 length(x) -0.5 1.5])grid ontitle('解调得到的基带信号')zoom on。
matlab 通信原理
![matlab 通信原理](https://img.taocdn.com/s3/m/44d00cdf50e79b89680203d8ce2f0066f53364bd.png)
matlab 通信原理摘要:I.引言- 介绍MATLAB通信原理及其应用领域II.MATLAB通信原理基础- 通信系统的基本模型- 信号与系统的基本概念- 模拟信号与数字信号的处理III.MATLAB在通信原理中的应用- 数字调制与解调- 信道编解码- 信号检测与估计- 通信系统仿真IV.MATLAB通信原理实例- 数字信号调制实例- 信道编解码实例- 信号检测与估计实例- 通信系统仿真实例V.总结- 回顾MATLAB在通信原理中的应用- 总结MATLAB通信原理的优势与局限正文:MATLAB通信原理I.引言MATLAB是一种广泛应用于科学计算和工程设计的数学软件,其强大的数值计算和图形绘制功能,使得它在通信原理领域也有着广泛的应用。
本文将介绍MATLAB通信原理及其应用领域。
II.MATLAB通信原理基础通信系统的基本模型通信系统一般由信源、信道和信宿组成,其传输过程可以分为信道编码、调制、传输、解调、信道解码等步骤。
信号与系统的基本概念信号:用于传递信息的物理量,可以分为模拟信号和数字信号。
系统:由输入、输出和中间过程组成的整体,可以分为模拟系统和数字系统。
模拟信号与数字信号的处理模拟信号:连续的信号,可以用时间域或频域表示。
数字信号:离散的信号,只能用时间域表示。
III.MATLAB在通信原理中的应用数字调制与解调数字调制:将数字信号转换成模拟信号,以便在信道中传输。
数字解调:将接收到的模拟信号转换成数字信号。
信道编解码信道编码:在发送端对信号进行编码,以提高信号的抗干扰性。
信道解码:在接收端对信号进行解码,以恢复原始信号。
信号检测与估计信号检测:在接收端检测信号的存在性。
信号估计:在接收端估计信号的参数。
通信系统仿真用MATLAB仿真通信系统,可以对系统进行性能分析、优化设计等。
IV.MATLAB通信原理实例数字信号调制实例用MATLAB实现数字信号的调制,可以采用ASK、FSK、PSK等调制方式。
通信原理Matlab仿真实验报告
![通信原理Matlab仿真实验报告](https://img.taocdn.com/s3/m/2a33abe026fff705cc170a47.png)
通信原理Matlab仿真实验报告学号:姓名:实验一1、利用Matlab实现矩形信号串信号分解与合成⑴ Matlab程序代码:①矩形信号串信号分解与合成函数rectexpd():function rectexpd(T1,T0,m)%矩形信号串信号分解与合成%T1:矩信号区间为(-T1/2,T1/2)%T0:矩形矩信信号串周期%m:傅里叶级数展开项次数t1=-T1/2:0.01:T1/2;t2=T1/2:0.01:(T0-T1/2); t=[(t1-T0)';(t2-T0)';t1';t2';(t1+T0)'];n1=length(t1);n2=length(t2); %根据周期矩形信号函数周期,计算点数f=[ones(n1,1);zeros(n2,1);ones(n1,1);zeros(n2 ,1);ones(n1,1)]; %构造周期矩形信号串y=zeros(m+1,length(t));y(m+1,:)=f';figure(1);plot(t,y(m+1,:)); %绘制周期矩形信号串axis([-(T0+T1/2)-0.5,(T0+T1/2)+0.5,0,1.2]); set(gca,'XTick',[-T0,-T1/2,T1/2,T0]);set(gca,'XTickLabel',{'-T0','-T1/2','T1/2','T0'}) ;title('矩形信号串');grid on; a=T1/T0;pause; %绘制离散幅度谱freq=[-20:1:20];mag=abs(a*sinc(a*freq)); stem(freq,mag);x=a*ones(size(t));for k=1:m %循环显示谐波叠加图形pause;x=x+2*a*sinc(a*k)*cos(2*pi*t*k/T0);y(k,:)=x;plot(t,y(m+1,:));hold on;plot(t,y(k,:));hold off;grid on;axis([-(T0+T1/2)-0.5,[T0+T1/2]+0.5,-0.5,1.5]) ;title(strcat(num2str(k),'次谐波叠加')); xlabel('t');endpause;plot(t,y(1:m+1,:));grid on;axis([-T0/2,T0/2,-0.5,1.5]);title('各次谐波叠加');xlabel('t');②在命令窗口调用rectexpd()函数:T1=5;T0=10;m=5;rectexpd(T1,T0,m)⑵Matlab仿真结果:1次谐波叠加t3次谐波叠加tt2次谐波叠加t4次谐波叠加tt2、利用Matlab实现连续信号卷积运算⑴ Matlab程序代码:①连续信号卷积运算的通用函数sconv():function [f,k]=sconv(f1,f2,k1,k2,p) f=conv(f1,f2);f=f*p;k0=k1(1)+k2(1);k3=length(f1)+length(f2)-2;k=k0:p:k3*p; subplot(2,2,1); plot(k1,f1); title('f1(t)'); xlabel('t'); ylabel('f1(t)');subplot(2,2,2);plot(k2,f2);title('f2(t)'); xlabel('t'); ylabel('f2(t)'); subplot(2,2,3); plot(k,f); title('f(t)=f1(t)*f2(t)'); xlabel('t'); ylabel('f(t)');h=get(gca,'position'); h(3)=2.5*h(3);set(gca,'position',h);②在命令窗口调用sconv ()函数: p=0.01; k1=0:p:2; f1=exp(-k1); k2=0:p:3;f2=ones(1,length(k2)); [f,k]=sconv(f1,f2,k1,k2,p)⑵Matlab 仿真结果:0.511.5200.51f1(t)tf 1(t )01230.511.52f2(t)tf 2(t )00.51 1.522.533.544.550.51f(t)=f1(t)*f2(t)tf (t )实验二1、用Matlab模拟图形A律解码⑴Matlab程序代码:①建立函数ADecode()function y=ADecode(code,n) codesize=size(code);cr_len=codesize(1);cl_len=codesize(2);ca=zeros(1,cl_len-1);for i=1:cr_lenca=code(i,2:n);s=0;for j=1:n-1s=s+ca(j)*2^(n-1-j);enda=code(i,1);y(i)=s*((-1)^(a+1)); endy=y/(2^(n-1));A=87.6;A1=1+log(A); for j=1:length(y)if(y(j)>=0)if(y(i)<=1/A1)y(j)=y(j)*A1/A;elsey(j)=exp(y(j)*A1-1/A);endelsetemp=-y(j);if(temp<=1/A1)y(j)=-temp*A1/A;elsey(j)=-exp(temp*A1-1)/A;endendend②建立函数APCM()function code=APCM(x,n)xmax=max(abs(x));x=x/xmax;xlen=length(x);y=zeros(1,xlen);A=87.6;A1=1+log(A);for i=1:xlenif x(i)>=0if x(i)<=1/Ay(i)=(A*x(i))/A1;elsey(i)=(1+log(A*x(i)))/A1;endelsex1=-x(i);if x1<=1/Ay(i)=-(A*x1)/A1;elsey(i)=-(1+log(A*x1))/A1;endendendy1=y*(2^(n-1)-1);y1=round(y1);code=zeros(length(y1),n); c2=zeros(1,n-1);for i=1:length(y1)if(y1(i)>0)c1=1;elsec1=0;y1(i)=-y1(i);endfor j=1:n-1r=rem(y1(i),2);y1(i)=(y1(i)-r)/2;c2(j)=r;endc2=fliplr(c2);code(i,:)=[c1 c2];end③在新函数中调用前两个函数 t=0:0.01:1; x=sin(2*pi*t); code=APCM(x,7); y=ADecode(code,7); subplot(2,1,1) plot(t,x);title('原函数的图形'); subplot(2,1,2) plot(t,y);title('解码后函数的图形');⑵Matlab 仿真结果:00.10.20.30.40.50.60.70.80.91-1-0.500.51原函数的图形00.10.20.30.40.50.60.70.80.91-1-0.50.5解码后函数的图形2、用Matlab 模拟DSB 调制及解调过程 ⑴Matlab 程序代码: close all; clear all;dt=0.001;%采样时间间隔 fm=1; %信源最高频率 fc=10; %载波中心频率 N=4096;T=N*dt; t=0:dt:T-dt;mt=sqrt(2)*cos(2*pi*fm*t);%信源s_dsb=mt.*cos(2*pi*fc*t); %DSB-SC 双边带抑制载波调幅B=2*fm;figure(1); subplot(311) plot(t,s_dsb,'b-');hold on; %画出DSB 信号波形plot(t,mt,'r--');%画出m(t)信号波形 title('DSB 调制信号'); xlabel('t'); grid on;%DSB demodulation rt=s_dsb.*cos(2*pi*fc*t); rt=rt-mean(rt); [f,rf]=T2F(t,rt); [t,rt]=lpf(f,rf,B); subplot(312) plot(t,rt,'k-'); hold on;plot(t,mt/2,'r--');title('相干解调后的信号波形与输入信号的比较'); xlabel('t'); grid on; subplot(313)[f,sf]=T2F(t,s_dsb); %求调制信号的频谱psf=(abs(sf).^2)/T; %求调制信号的功率谱密度 plot(f,psf);axis([-2*fc 2*fc 0 max(psf)]); title('DSB 信号功率谱'); xlabel('f'); grid on;⑵Matlab 仿真结果:00.51 1.52 2.53 3.54 4.5-22DSB 调制信号t0.511.522.533.544.5-101相干解调后的信号波形与输入信号的比较t-20-15-10-5051015200.5DSB 信号功率谱f实验三1、用Matlab模拟双极性归零码⑴ Matlab程序代码:function y=drz(x)t0=300;x=[1 0 0 1 1 0 0 0 0 1 0 1];t=0:1/t0:length(x);for i=1:length(x);if(x(i)==1)for j=1:t0/2y(t0/2*(2*i-2)+j)=1;y(t0/2*(2*i-1)+j)=0;endelsefor j=1:t0/2y(t0/2*(2*i-2)+j)=-1;y(t0/2*(2*i-1)+j)=0;endendendy=[y,x(i)];M=max(y);m=min(y); subplot(211)plot(t,y);grid on;axis([0,i,m-0.1,M+0.1]);title('1 0 0 1 1 0 0 0 0 1 0 1 ');⑵Matlab仿真结果:2、用Matlab产生2FSK信号⑴ Matlab程序代码:①建立函数fskdigital()function fskdigital(s,f1,f2) t=0:2*pi/99:2*pi;m1=[];c1=[];b1=[];for n=1:length(s)if s(n)==0;m=ones(1,100);c=sin(f2*t);b=zeros(1,100) else s(n)==1;m=ones(1,100);c=sin(f1*t);b=ones(1,100)endm1=[m1 m]; c1=[c1 c]; b1=[b1 b]; endfsk=c1.*m1;subplot(211);plot(b1,'r')title('原始信号');axis([0 100*length(s) -0.1 1.1]);grid on;subplot(212);plot(fsk)title('2FSK信号');grid on;②在命令窗口调用函数fskdigital() >> s=[1 0 1 1 0 0 1 0]; f1=200; f2=100;fskdigital(s,f1,f2)⑵Matlab 仿真结果:10020030040050060070080000.20.40.60.81原始信号100200300400500600700800-1-0.500.512FSK 信号3、用Matlab 的simulink 模块模拟三角波的分解与还原 ⑴模块图⑵仿真结果:①三角波原图②用矩形波近似的冲击函数③分解后的三角波④经低通还原的三角波。
基于Matlab(Simulink)《通信原理》实验仿真(模拟部分)
![基于Matlab(Simulink)《通信原理》实验仿真(模拟部分)](https://img.taocdn.com/s3/m/4aba8442a76e58fafab0039b.png)
基于Matlab(Simulink)《通信原理》实验仿真(模拟部分)基于Matlab(Simulink)《通信原理》实验仿真(模拟部分)摘要模拟通信在通信系统中的使用非常广泛,而MATLAB(Simulink)是用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,它可以解决包括信号和图像处理、通讯等众多应用领域中的问题。
利用MATLAB集成环境下的M文件和Simulink工具箱可以完成通讯系统设计与仿真,本文主要是利用MATLAB集成环境下的M文件,编写程序来实现AM、FM、VSB调制与解调过程,并分别绘制出其信号波形。
再通过Simulink工具箱对模拟通信系统进行建模仿真。
Simulation of communication in a communication system is very extensive, and the use of MATLAB (Simulink) is used to algorithm development, data visualization, data analysis and numerical calculation of the senior technical calculation language and interactive environment, it can solve the including signal and image processing, communicationetc many applications in question. MATLAB integration environment Mfiles and Simulink tool box can complete communication system design and simulation, this paper is mainly use of MATLAB integration environment, programming of the M files to achieve AM, FM, VSB modulation and demodulation process, and separately plot its signal waveform. Again through Simulink communication system toolbox of simulation modeling simulation .关键词模拟信号;AM;FM;VSB;调制解调;MATLAB(Simulink)目录:第一章绪论第二章理论与方法2.1 matlab简介2.2 Simulink简介2.3 通信原理概述第三章设计方案3.1用 MATLAB的M文件进行模拟调制3.1.1 基于MATLAB的AM信号调制与解调3.1.2 基于MATLAB的FM信号调制与解调3.1.3 基于MATLAB的VSB信号调制与解调3.2用Simulink对模拟通信系统进行建模仿真3.2.1频分复用和超外差接收机的仿真模型3.2.2调频立体声接收机模型第四章小结参考文献致谢附录1:程序清单第一章绪论调制在通信系统中的作用至关重要。
通信系统的MATLAB仿真(通信实验必看)
![通信系统的MATLAB仿真(通信实验必看)](https://img.taocdn.com/s3/m/a61c203143323968011c92ee.png)
第 6 章 通信系统仿真
6.3 差错控制编/译码方法
在通信系统中,差错控制编/译码技术被广泛地用于检查和纠正信息在传递过程中 发生的错误。在发送端,差错控制编码添加了一定的冗余码元到信源序列;接收时就利 用这些冗余信息来检测和纠正错误。纠错编码主要有分组码和卷积码两种类型。 MATLAB通信工具箱提供了一系列函数用于有限域计算。概率解码中最常用的是 Viterbi解码,用于卷积码解码。常用的纠错编码方法包括线性分组码、海明码、循环码、 BCH码、Reed-Solomon码和卷积码。 1. 纠错编码函数 纠错编码函数encode( )及译码函数decode( ) 格式: 格式:code=encode(msg, N, K, method, opt) 功能:用method指的方法完成纠错编码。其中msg代表信息码元;method是允许的编 码方法,包括hamming 、linear等, opt是一个可选择的优化参数。 格式: 格式:msg=decode(code,n,k,method) 功能:用指定的method方式进行译码。为了正确地复制出信源序列,编码和译码的调 用方式必须相同。
x ∈ Ri = Q ( x) = x i
N
易见,这类量化引入了失真,其均方误差为:
D= ∑ ∫ R ( x x i ) 2 f x ( x ) dx
i =1
1
其中f(x)是信源随机变量的概率密度函数。信号量化噪声比(SQNR)为:
SQNR = 10 log 10
E[ X 2 ] D
第 6 章 通信系统仿真
在MATLAB通信工具箱中提供了两种信源编译码的方法:标量量化和预测量化。 1.标量量化 标量量化 律压扩计算函数compand( ) (1)信源编码中的 律或 律压扩计算函数 信源编码中的 律或A律压扩计算函数 格式: 格式:out=compand(in, param, V, method) 功能:实现 律或A律压扩,其中param为 值,V为峰值。压扩方式由method指定。
通信原理MATLAB仿真实验设计
![通信原理MATLAB仿真实验设计](https://img.taocdn.com/s3/m/fdb2ad1c25c52cc58ad6be41.png)
3. 步骤 3 中,当调用函数 dft 时,输入参数中采样周期可以设为1s;
6
4. 画图时,时间和频率范围、过零点、幅度、周期等重要信息要标 识清楚。
7
实验四 模拟调制系统的 AM 调制仿真
预习要求:
图;(具体周期和幅度值见表 2,共 4 组数据)
表 2 方波周期和幅度
周期������
幅度
1 0.3 s
2.5
1 1s
2.5
3. 产 生 不 同 周 期 ������ 、 不 同 幅 度 ������ 的 三 角 波 信 号 ������ ������
������,
0 ������
,并利用 MATLAB 指令 fft 对其做傅立叶
1s
方波
幅度������
1
三角波
周期������
0.25 s
幅度������
1
4
实验说明:
1. 为了计算������ ������ ,函数 dft 需要以下输入参数: 输入信号序列������ ������ , ������ 0.1, ⋯ , ������ 1。注意:MATLAB 中,一维
数组或序列长度可以由指令 length 在函数内得到,因此无需将������
cos ������ ������ 图 3 DSB‐SC 调制器模型 2. 利用实验一中程序产生两个周期长度的正弦信号(频率������ 为100Hz, 初始相位������ 0); 3. 利用实验三中程序产生标准正态分布的噪声信号������ ������ ,并利用公 式������ ������ 10 ������ ������ 将������ ������ 转变为另一正态分布的噪声信号������ ������ , 其均值和方差分别为0和10 ; 4. 将������ ������ 叠加到信号������ ������ 上,从而生成信号������ ������ ������ ������ ������ ������ ,并 将其输入至 DSB‐SC 调制器中产生调制信号������ _ ������ ; 5. 利用实验四中函数 amdemod 解调������ _ ������ ,从而得到解调信号 ������ ������ ,比较调制器输入信号和解调输出信号并做图。
matlab通信原理仿真教程
![matlab通信原理仿真教程](https://img.taocdn.com/s3/m/82bc893f30b765ce0508763231126edb6f1a76a2.png)
matlab通信原理仿真教程
Matlab通信原理仿真教程如下:
1. 导入Simulink和Communications Toolbox。
Simulink是MATLAB的一个扩展,用于建模、仿真和分析动态系统。
Communications Toolbox
是用于通信系统仿真的附加工具箱。
2. 创建通信系统模型。
在Simulink中,可以使用各种模块来创建通信系统
模型,例如信号源、调制器、解调器、信道和噪声源等。
3. 配置模块参数。
根据所需的通信系统参数,配置各个模块的参数。
例如,在调制器模块中,可以选择所需的调制类型(如QPSK、QAM等),并设
置相应的参数。
4. 运行仿真。
在Simulink中,可以使用“开始仿真”按钮来运行仿真。
Simulink将自动进行系统建模和仿真,并显示结果。
5. 分析仿真结果。
使用MATLAB中的各种工具和分析函数来处理仿真结果,例如频谱分析、误码率计算等。
以上是Matlab通信原理仿真教程的基本步骤,具体实现过程可能会因不同的通信系统和仿真需求而有所不同。
建议参考Matlab官方文档和相关教程进行学习。
通信原理MATLAB仿真教程第十章 扩频通信系统
![通信原理MATLAB仿真教程第十章 扩频通信系统](https://img.taocdn.com/s3/m/dd05227102768e9951e7380f.png)
图 10-3 相干检测原理图
18
图 10-4 相干参考信号产生原理图 本地参考信号是由锁相环路产生的,如 10-4 所示。用一个振荡器,其 频率与输入信号频率相近, 把它的相位与输入信号相位作比较(可以用鉴相 器实现),获得的误差电压称为误差信号,此误差信号经滤波平滑后,再作 用于振荡器,以不断纠正它的相位与输入信号的误差,于是这个受输入电 压控制的振荡器的输出振荡的相位,就逐渐逼近于输入信号的相位,达到 同频、同相的结果,它们之间近似的程度取决于跟踪误差。
N 1
c g
n n0
ห้องสมุดไป่ตู้
c
(t nTc )
(10-4)
式中, n 为伪随机码码元, c 取值 1 或 1 ; c (t ) 为门函数, g 定义与式(10-3) 类似。 扩频过程实质上是信息流 a t 与伪随机序列 c t 的模二加或相乘的过 程,伪随机码速率 Rc 比信息速率 Rd 大的多,一般 Rc / Rd 的比值为整数且 远大于 1 ,所以 扩展后 的序列 的速率 仍为伪 随机码 速率 Rc ,扩展的 序列
(10-8)
14
式中信号为 s (t ) ,信道噪声为 n(t ) ,干扰信号为 J (t ) ,其它网的扩频信 o 号为 s (t ) 。 J 对于信号分量为 s (t ) o
s ( t ) a ( t ) c( t ) c( t ) cos I t o
(10-9)
其中 I 为中频频率,若 本地产生的伪 随机序列 c(t ) 与发端产生的伪随机 序列 c (t ) 同步,有 c (t ) c(t ) ,则 c (t ) c(t ) 1 ,这样信号分量 s (t ) 为 o
通信原理matlab仿真
![通信原理matlab仿真](https://img.taocdn.com/s3/m/8773413843323968011c928a.png)
通信原理仿真报告姓名:学号: 20101001718指导老师:赵娟班号: 075102中国地质大学(武汉)机械与电子信息学院2013 年4 月姓名: 联系方式:学号: 可用于抽查的时间段:班级:1. 题目用Matlab 产生等概率的四进制信源,(1)画出4ASK 信号波形及其功率谱(2)设接收端输入信号信噪比为15dB ,画出相干解调后的信号波形及其功率谱,并与原波形比较。
2. 解题思路(可文字说明,也可画框图说明)1 .振幅键控是正弦载波的幅度随数字基带信号而变化的数字调制。
四进制符号序列可表示为:)(s(t)S nn nT t g a -=∑其中: ⎪⎪⎪⎩⎪⎪⎪⎨⎧=413412411410发送概率为,发送概率为,发送概率为,发送概率为,n aTs 是四进制基带信号时间间隔,g(t)是持续时间为Ts 的矩形脉冲:⎩⎨⎧≤≤=,其他,,,t T t t g 001)(s 则四进制振幅键控信号可表示为t nT t g a t e c s nn ASK ϖcos )()(4-=∑2 .4ASK 信号相干解调框图如下:3. 代码(有详细注释)clear all;close all;A=1;fc = 2; %设定载波频率2HzN_sample = 50;%插入点数为2*50-1N = 50;%考察的码元个数Ts = 1;%码元周期dt = Ts/fc/N_sample; %波形采样间隔t = 0:dt:N*Ts-dt;Lt = length(t);%产生四进制信源d =rand(1,N);d1=floor(d*4);dd = sigexpand(d1,fc*N_sample);gt = ones(1,fc*N_sample); %NRZ波形d_NRZ = conv(dd,gt);%基带信号d_NRZ=∑dd*gt(t-nTs)ht = A*cos(2*pi*fc*t);%载波s_4ask = d_NRZ(1:Lt).*ht; %进行4ASK调制%4ASK信号s_4ask={∑dd*gt(t-nTs)}*Acos(2*pi*fc*t)figure(1)subplot(2,2,1);plot(t,d_NRZ(1:length(t)));axis([0 20 0 4]); ylabel('输入信号');subplot(2,2,2);plot(t,s_4ask);axis([0 20 -4 4]); ylabel('4ASK');[f, s_4askf]=T2F(t,s_4ask);subplot(2,2,3);plot(f,10*log10(abs(s_4askf).^2/Ts));axis([-10 10 -20 40]); ylabel('4ASK功率谱密度');%加噪t4ask=awgn(s_4ask,15);%在信号s_4ask中加入高斯白噪声,信噪比15dB。
MATLAB基础与通信系统仿真1
![MATLAB基础与通信系统仿真1](https://img.taocdn.com/s3/m/104c915477232f60ddcca12f.png)
1.2.2 MATLAB的帮助系统
● 查看命令或函数帮助 ● 联机帮助系统 ● PDF文件帮助系统 PDF ● MATLAB网络资源
1.2.3 MATLAB的基本操作
数据类型
• (1)变量与赋值 • (2)变量的删除与修改 • (3)局部变量和全局变量
矩阵
• (1) 一般矩阵的生成 • (2)特殊矩阵的生成
1.2.5.4 matlab的程序结构
顺序结构 — 依次顺序执行程序的各条语句 循环结构 — 被重复执行的一组语句,循环是 计算机解决问题的主要手段。 分支结构 — 根据一定条件来执行的各条语句。
循环结构
for—end语句
• • • for indx= 循环初始值 : 循环步长 : 循环结束值 可执行语句组 end
1.2 MATLAB程序设计
1.2.1 MATLAB工作环境 1.2.2 MATLAB的帮助系统 1.2.3 MATLAB的基本操作 MATLAB 1.2.4 MATLAB图形处理和数据可视化 1.2.5 M文件编程 1.2.6 文件操作
1.2.1 MATLAB工作环境
命令窗口 工作区变量窗口 历史命令窗口 项目启动菜单
第1章 MATLAB基础与通信系统仿真
本章内容
1.1 MATLAB简介 简介 1.2 MATLAB程序设计 程序设计 1.3 通信系统仿真
1.1 MATLAB简介
● 数值计算和符号计算功能 ● 具有很好的图形功能 ● 可以直接处理声言和图像文件 ● 具有功能强大的工具箱 ● 使用方便,具有很好的扩展功能 ● Simulink
矩阵运算
1.2.4 MATLAB图形处理和数据可视化
plot函数
subplot函数 多图形窗口 hold命令 对数坐标图形
MATLAB通信仿真在《通信原理》课程教学中的应用
![MATLAB通信仿真在《通信原理》课程教学中的应用](https://img.taocdn.com/s3/m/d45a4ed976a20029bd642de3.png)
MATLAB通信仿真在《通信原理》课程教学中的应用[摘要]本文介绍了matlab软件中通信工具箱的两种仿真方法,并重点阐述了在matlab/simulink环境下对通信系统进行可视化动态仿真的一般步骤和实现方法。
最后通过教学范例和实验结果说明,matlab通信系统仿真模型能够反映通信系统的动态工作情况,具有较强的演示性、可视性和实用性,是《通信原理》课程教学中强有力的辅助工具。
[关键词]matlab simulink 仿真通信系统一、引言《通信原理》是通信及相关专业的专业基础课,是许多后续专业课程的基础。
其中很多基本概念、重要原理将贯穿整个通信专业的各门课程之中。
然而,对于刚刚接触通信专业的学生来说,类似于调制、解调、抽样、量化、复用等概念及原理往往过于抽象,传统的教学方法很难高效的使学生从根本上理解这些概念、原理及过程。
将matlab通信系统的计算机仿真演示应用到《通信原理》的教学中,能够较好的解决这个问题。
采用matlab对基本原理和方法进行计算机仿真演示,能够使复杂的计算简单化,抽象的理论具体化、直观化,从而提高学习效率,增强学习兴趣,在一定程度还上培养学生进行通信系统工程设计的能力。
matlab最初是mathworks公司推出的一种数学应用软件,经过多年的发展,开发了包括通信系统在内的多个工具箱,从而成为目前科学研究和工程应用最流行的软件包之一。
matlab的动态仿真软件simlink提供了可视化的系统仿真环境和多个模型库,在模型库中提供了丰富的功能模块,采用模块化设计,可以方便、灵活地建立通用性较强的通信仿真模型。
matlab通信工具箱是一套用于通信领域进行理论研究、系统开发、分析设计和仿真的专业化工具软件包,主要由两部分组成:通信系统功能函数库和simulink通信系统仿真模型库。
下面分别从两个方面介绍matlab通信系统仿真方法。
二、使用通信系统函数库实现通信系统仿真matlab通信系统功能函数库[1]由70多个函数组成,每个函数又有多种选择参数,函数功能覆盖了现代通信系统的各个方面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章设计性实验(MATLAB仿真实验)3.1M ATALAB语言概述3.1.1 MATALAB语言的发展MATALAB是一种科学计算软件,主要适用于矩阵运算及控制和信息处理领域的分析设计。
它使用方便,输入简洁,运算高效,内容丰富,并且很容易由用户自行扩展,因此,当前已成为美国和其他发达国家大学教学和科学研究中最常用而必不可少的工具。
MATLAB是由美国Mathworks公司与1984年正式推出的,从那时到现在已升级到7.x版本。
随着版本的升级,内容不断扩充,功能更强大。
特别是在系统仿真和实时运行等方面,有很多新进展,更扩大了它的应用前景。
MATLAB是“矩阵实验室”(MATrix Laboratoy)的缩写,它是一种以矩阵运算为基础的交互式程序语言,专门针对科学、工程计算及绘图的需求。
它用解释方式工作,键入程序立即得出结果,人机交互性能好,适应于多种平台。
MATLAB语言在国外的大学工学院中,特别是数值计算用的最频繁的电子信息类学科中,已成为每个学生都掌握的工具了。
它大大提高了课程教学、解题作业、分析研究的效率。
MATLAB语言比较好学,因为它只有一种数据类型,一种标准的输入输出语句,不用“指针”,不需编译,比其他语言少了很多内容;听三、四个小时课,上机练几个小时,就可入门了。
以后自学也十分方便,通过它的演示(demo)和求助(help)命令,人们可以方便地在线学习各种函数的用法及其内涵MATLAB语言的难点是函数较多,仅基本部分就有700多个,其中常用的有二三百个,要尽量多记少查,可以提高编程效率。
3.1.2MATLAB语言的特点1.矩阵运算:每个变量代表一个矩阵,它以矩阵运算见长;每个元素都看作复数,所有的运算都对矩阵和复数有效。
(虚部符号可用i或j) clear %清除内存变量format short %c1=1-2i,c2=3*(2-sqrt(-1)*3),c3=6+sin(.5)*1jc4=complex(1,2) %建立复数c1 =1.0000 -2.0000ic2 =6.0000 - 9.0000i c3 =6.0000 + 0.4794i c4 =1.0000 +2.0000ic1r=real(c1),c1i=imag(c1),abs_c1=abs(c1),angle_c1=angle(c1) 结果: c1r = 1 c1i = -2 abs_c1 = 2.2361 angle_c1 = -1.1071注意:(1)所有的标点符号必须是在英文状态下输入。
(2)各指令行可以用逗号或分号隔开,如用分号,则分号前的指令只执行,不显示结果。
(3)在命令窗口中输入指令后,必须按下[enter ]键,该指令才会被执行.(4)%为注释符,即%后面的内容为注释,对MATLAB 的计算不产生任何影响。
2.人机界面适合科技人员:其程序与科技人员的书写习惯相近,易写易读。
矩阵行数列数无需定义。
键入算式即得结果,无需编译。
例如:简单矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321A 的输入步骤。
(1)在键盘上输入下列内容A=[1,2,3;4,5,6;7,8,9] 结果: A =1 2 3 4 5 67 8 9(2)按[enter]键,指令执行。
注意:直接输入矩阵时,矩阵元素用空格或逗号”,”分隔,整个矩阵放到方括号“[]”里。
标点符号一定要在英文状态下输入。
(3)指令执行后,矩阵A被保存在MATLAB的工作空间(Workspace)中。
如果用户不用clear指令清除它,或对它重新赋值,那么该矩阵会一直保存在工作空间中,直到本MATLAB指令窗被关闭为止。
(4)MATLAB区分大小写字母。
3.强大而简易的作图功能(1)能根据输入数据自动确定坐标绘图。
(2)能规定多种坐标系(极坐标,对数坐标等)。
(3)能绘制三维坐标中的曲线和曲面。
(4)可设置不同颜色、线型和视角等。
如果数据齐全,通常只需要一条命令即可出图。
例:用图形表示离散函数1)6y。
=n-(-n=(0:12); %产生一组自变量数据y=1./abs(n-6); %计算相应点的函数值plot(n,y,'r*','MarkerSize',15) %用红花标出数据点grid on %画坐标方格说明:./表示点除,用于元素对元素的除法。
而/表示矩阵除法。
还有'.*' , '.^' 及 '*', '^'。
4.智能化程度高(1)绘图时自动选择最佳坐标。
(2)做数值积分时,自动按精度选择步长。
(3)自动检测和显示程序错误的能力强,易于调试。
5.功能丰富,可扩展性强MATLAB软件包括基本部分和专业扩展两大部分。
基本部分包括:矩阵的运算和各种变换;代数和超越方程的求解,数据处理和傅里叶变换,数值积分等等。
扩展部分称为工具箱。
它实际上是用MATLAB的基本语句编成的各种子程序集,用于解决某一方面的专门问题,或实现某一类的新算法。
现在已经有控制系统,信号处理、图像处理、系统辨识、模糊集合、神经元网络和小波分析等数十个工具箱,并且还在继续发展中。
MATLAB的核心内容是它的基本部分,所有的工具箱子程序都是用它的基本语句编写的。
学好这部分内容是掌握MATLAB的关键。
3.1.3M ATLAB的工作环境MATLAB7.x的工作环境主要由命令窗(Command Window)、图形窗(Figure Window)和文本编辑窗(File Editor)组成。
1. 命令窗(Command Window)Command Window是MATLAB中最重要的部分,它是人机交互的主要环境,也是和编译器连接的主要窗口。
用户通过在提示符“>>”后直接输入各种命令并读出相应的结果。
命令窗见MATLAB桌面系统的默认画面。
其左上视窗为当前目录(Current Directory),可切换为工作空间(Workspace);其左下视窗为历史命令(Command History);右半个视窗则为命令窗(Command Window)。
常用的窗口命令如下:clc:清除Command Window里的内容;clear:清除内存变量;home:光标回到窗口的左上角;clf:清除当前Figure窗口的所有非隐藏对象;close:关闭当前Figure窗口;close all:关闭所有Figure窗口工作空间有多种应用功能:内存变量的查阅、保存和编辑;在命令行下,可以用who,whos查阅MATLAB内存变量;who用于检查现存于工作空间(Workspace)的变量;whos用于检查现存于工作空间的变量的详细资料。
内存变量可以用clear命令清除。
如clear %清除所有内存变量a=(1:7)' %转置>>a =1234567who %显示内存变量名>>Your variables are:awhos %显示内存变量名和尺寸、占用内存空间、类型>>Name Size Bytes Class Attributesa 7x1 56 doubleclear a %清除变量a(1)命令窗编辑功能:键入和修改程序的方法与通常的文字处理相仿。
特殊的功能键为ESC 恢复命令输入的空白状态(即作废命令)↓调出下一行命令↑调出上一行(历史)命令这个功能在程序调试时十分有用。
对于已执行过的命令,如要做些修改后重新执行,就不必重新键入,用↑键调出原命令做修改即可。
(2)主菜单中的编辑(Edit)项功能:用它可以把屏幕上选中的文字裁剪(Cut)或复制(Copy)下来,放到剪贴板上,然后粘贴(Paste)到任意其他视窗的任何位置上去。
这是MATLAB与其他软件(如Word)交换文件、数据和图形的重要方法。
(3)D ebug项是调试程序时使用的。
(4)D esktop项功能:用它可以改变屏幕上显示的视窗布局。
如显示或隐藏命令窗、历史命令窗、工作空间、当前目录;最大化命令窗等。
(5)H elp项功能:展示详尽的帮助。
(6)在命令行键入help,屏幕上将显示系统中已装入的函数库(即子目录)的名称。
(7)键入help子目录名,如help elfun,即得出elfun库(初等数学函数库)中各函数名。
(8)键入help函数名,如help eye,即得到eye 函数的意义和用法。
(9)退出MATLAB有两种方法。
一是键入exit或quit,还有一种是用鼠标双击左上角的小方块或单击右上角的×号。
后一种情况属非正常退出,该次进程的所有的命令将不纪录在“历史命令窗中”,故应尽量避免使用。
2 .图形窗通常,只要执行了任一种绘图命令,就会自动产生图形窗。
以后的绘图都在这一个图形窗中进行。
如想再建一个或几个图形窗,则可键入figure,MATLAB会新建一个图形窗,并自动给它依次排序,如果要人为规定新图为图3,则可键入figure(3)。
如要调看已经存在的图形窗n,也应键入fingure(n)。
3. 文本编辑窗(M文件编辑窗)MATLAB程序编制有两种方式。
一种称为命令方式,在命令窗中的命令符“>>”下一行一行地输入命令,计算机每次对一行命令做出反应,像计算器那样;这只能编简单的程序,在入门时可以用这种方式。
程序稍复杂一些,就应把程序写成一个有多行语句组成的文件,即M文件,让MATLAB来执行这个文件;编写和修改这种文件程序就要用到文本编辑器Editor。
文本编辑器可以将程序像文本一样编辑,如复制、粘贴等,非常方便。
一行中可以键入几个命令,用“;”或“,"隔开。
如用“;”则该函数的执行结果不显示(图形函数除外);如用","则该函数的运行结果要显示。
命令窗上方最左边的按钮是用来打开文本编辑器空白页的。
左边第2个按钮是用来打开原有程序文件的。
3.2基本语法3.2.1 变量及其赋值在MATLAB内部所有变量均保存成double的形式,即双精度(64位)二进制。
这是为了简化编程,MATLAB省去了许多种数据格式。
MATLAB是基于矩阵运算的,MATLAB中的所有变量或常量都以矩阵形式保存的。
一个数也是矩阵,只不过它是1×1阶的矩阵。
变量名的命名规则如下:(1)变量名区分大小写。
(2)变量名最多能包括63个字符,其后的字符都被忽略。
(3)变量名必须以一个字母开始,其后可以是任意数量的字母、数字、下划线,字符中间不能留空格。
(4)不允许出现标点符号,因为很多标点符号在MATLAB中有特殊的意义。
(5)M ATLAB中的关键字(又称保留字)不能用作变量名。
关键字如下:For end if while function return elseif case otherswiseswitch continue else try catch global persistent break。