通信原理MATLAB仿真

合集下载

通信原理基于matlab的计算机仿真

通信原理基于matlab的计算机仿真

通信原理基于matlab的计算机仿真通信原理基于matlab的计算机仿真已经成为通信领域中一项重要的研究工具。

此类仿真软件通过模拟现实情形,能够极大地加快通信设备的开发进程,并且可以帮助工程师进行实验,发现并解决通讯中可能存在的问题。

同时,matlab的通信仿真功能也成为了相关教材和教学实验的首选,许多大学,尤其是通信工程专业的学生要通过matlab的仿真来更好地理解通信原理和通信设备的工作原理。

由于matlab的专业性,无论是对于传输介质的模型计算,还是信号的传输过程的计算仿真,都非常适合。

通信原理的matlab仿真可以有效地帮助工程师分析各种信号,包括模拟信号、数字信号及混合信号。

这种仿真可用于计算机网络、通信系统设计以及无线通信和移动通信等领域。

在matlab中,通信原理的仿真重点是信号的传输与接收。

目前,通信设备主要采用数字信号的传输方式,而matlab中也能够实现该方式的仿真。

通过模拟数字信号的传输过程,可以帮助工程师分析此类信号在不同媒介下的传输效果。

所以,在进行数字信号的仿真时,matlab会考虑到以下几个因素:1.噪声在数字通信中,噪声是一个常见的问题。

因此,在matlab 的仿真中也要考虑到噪声的影响因素。

matlab能够对噪声进行建模,模拟各种环境下的噪声对数字信号的影响程度。

2.数据传输速率数据传输速率也会影响数字信号的仿真结果。

matlab可以模拟数字信号传输的速率以及不同速率下的传输效果。

3.差错率差错率也是数字信号传输中的一个显著因素,matlab在通信原理仿真中也会进行模拟。

除数字信号外,模拟信号的仿真也是通信原理仿真领域的一项重要工作。

在matlab的仿真中,通常对模拟信号的传输和接收会更加复杂。

通信原理的matlab仿真的一个重要应用就是误码率和比特误差率测试。

误码率和比特误差率都是评估数字信号传输质量的指标。

通信系统的设计旨在在受到最小干扰时保持误差率的最小化。

使用MATLAB进行通信系统设计和仿真

使用MATLAB进行通信系统设计和仿真

使用MATLAB进行通信系统设计和仿真引言:通信系统在现代社会中扮演着至关重要的角色,使人们能够传递信息和数据。

为了确保通信系统的可靠性和效率,使用计算工具进行系统设计和仿真是至关重要的。

在本篇文章中,我们将讨论使用MATLAB这一强大的工具来进行通信系统的设计和仿真。

一、通信系统的基本原理通信系统由多个组件组成,包括发射机、传输媒介和接收机。

发射机负责将输入信号转换为适合传输的信号,并将其发送到传输媒介上。

传输媒介将信号传输到接收机,接收机负责还原信号以供使用。

二、MATLAB在设计通信系统中的应用1. 信号生成与调制使用MATLAB,可以轻松生成各种信号,包括正弦波、方波、脉冲信号等。

此外,还可以进行调制,例如将低频信号调制到高频载波上,以实现更高的传输效率。

2. 信号传输与路径损耗建模MATLAB提供了各种工具和函数,可以模拟信号在传输媒介上的传播过程。

通过加入路径损耗模型和噪声模型,可以更准确地模拟实际通信环境中的传输过程。

这些模拟结果可以帮助我们评估和优化通信系统的性能。

3. 调制解调与信道编码MATLAB提供了用于调制解调和信道编码的函数和工具箱。

通过选择适当的调制方式和编码方案,可以提高信号传输的可靠性和容错能力。

通过使用MATLAB进行仿真,我们可以评估不同方案的性能,从而选择出最优的设计。

4. 多天线技术与信道建模多天线技术可显著提高通信系统的容量和性能。

MATLAB提供了用于多天线系统仿真的工具箱,其中包括多天线信道建模、空分复用和波束成形等功能。

这些工具可以帮助我们评估多天线系统在不同场景下的性能,并优化系统设计。

5. 频谱分析与功率谱密度估计频谱分析是评估通信系统性能的重要方法之一。

MATLAB提供了各种频谱分析函数和工具,可以对信号进行频谱分析,并计算功率谱密度估计。

这些结果可以帮助我们了解系统的频率分布特性,并进行性能优化。

6. 误码率分析与性能评估对于数字通信系统而言,误码率是一个重要的性能指标。

通信原理matlab仿真

通信原理matlab仿真

通信原理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 simulink 仿真

通信原理及matlab simulink 仿真

通信原理及matlab simulink 仿真好的,以下是关于通信原理及MATLAB Simulink仿真的一篇3000-6000字的文章:【通信原理及MATLAB Simulink仿真】引言:通信原理是指人们在信息传递过程中所使用的原理和方法。

随着科技的发展,通信技术被广泛应用于人类生活的各个领域,比如无线通信、互联网通信等。

通信原理的研究对于实现高效、稳定的信息传递非常重要。

MATLAB是一个强大的数值计算与仿真环境,可以用于通信原理的建模和仿真。

本文将一步一步介绍通信原理及MATLAB Simulink仿真的相关知识。

第一部分:通信原理的基础知识1. 通信系统的基本组成通信系统由发送端、信道和接收端组成。

发送端将信息转换成电磁波等信号,通过信道传输到接收端,接收端再将信号转换成信息。

2. 信号与频谱信号是信息的表现形式,可以是模拟信号或数字信号。

频谱指的是信号在频率域上的表示,用于分析信号的频率分布特性。

3. 调制技术调制技术将低频信息信号转换成高频载波信号,以便在信道中传输。

常见的调制技术有调幅、调频和调相等。

第二部分:MATLAB Simulink的基础知识1. MATLAB Simulink的简介MATLAB Simulink是MATLAB的一个功能模块,提供了强大的系统建模和仿真工具。

它可以在图形化界面下搭建信号处理系统的模型,并通过仿真验证系统的性能。

2. Simulink中的基本组件Simulink提供了多种基本组件,用于构建系统模型。

常见的组件有源信号、传输线、滤波器等。

3. Simulink的建模过程利用Simulink建模通信系统,通常需要以下步骤:a. 设计系统的基本结构,确定模型所需的模块和组件。

b. 定义模型中各个组件的数学模型或算法。

c. 搭建模型,将组件按照系统结构进行连接。

d. 设置仿真参数,例如仿真时间、采样时间等。

e. 运行仿真,观察系统的输出结果。

第三部分:MATLAB Simulink仿真实例1. 建立通信系统模型以FM调制为例,建立一个基本的模拟调制解调系统模型。

MATLAB仿真实例

MATLAB仿真实例

MATLAB仿真实例通信原理是指传输信息的原理和方法。

MATLAB可以用于实现各种通信原理的仿真,包括信号的调制、发送、接收、解调等过程。

下面我将介绍一个基于MATLAB的通信原理仿真实例。

本实例以频率调制通信原理为基础,以调频调制(FM)为例进行仿真。

1.首先定义模拟信号源,生成一个基带信号。

例如,我们可以选择一个正弦波信号作为基带信号,其频率为$f_m$。

2.接下来,我们需要将基带信号进行调频调制。

在调频调制过程中,我们将基带信号的频率进行调制,生成载频为$f_c$的调制信号。

3. 在MATLAB中,我们可以使用freqmod函数来进行调频调制。

该函数接受基带信号、载频和调制指数作为输入参数,并返回调制信号。

4.在得到调制信号后,我们可以进行发送模拟。

发送模拟是指将调制信号通过信道传输,可以简单地将信号存储为一个信道矩阵。

5. 在接收端,我们需要对接收到的信号进行解调,以恢复基带信号。

在调频调制中,我们可以使用freqdemod函数进行解调。

该函数接受解调信号、载频和调制指数作为输入参数,并返回解调后的信号。

6.最后,我们可以将解调信号与原始信号进行比较,计算它们之间的误差。

可以使用均方根误差(RMSE)作为误差度量指标。

通过以上过程,我们可以完成一个简单的基于MATLAB的调频调制仿真。

为了使仿真更贴近实际通信场景,我们还可以添加信道噪声等因素。

例如,我们可以在发送模拟过程中,向信道矩阵中添加高斯白噪声。

这样可以更真实地模拟信号在传输过程中受到干扰和噪声的情况。

通过以上步骤,我们可以利用MATLAB进行通信原理的仿真实践。

这个实例不仅可以帮助我们加深理解通信原理的基本概念和过程,还可以通过实际操作和仿真结果进行验证和验证。

总之,MATLAB是一个非常强大的工具,可以用于各种通信原理的仿真。

通过利用MATLAB进行仿真实践,我们可以更深入地理解通信原理的基本原理和过程,提高我们的理论水平和实践能力。

通信原理基于matlab的计算机仿真

通信原理基于matlab的计算机仿真

例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仿真

%%%%%%% 通信原理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仿真实验报告

通信原理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)《通信原理》实验仿真(模拟部分)

基于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仿真实例(通信原理)
T T T 我们把 s( t ) 按区间 , 截短为 sT ( t ) ,再对 sT ( t ) 按时间间隔 Biblioteka 均匀取样得到 个样 t 2 2
值。仿真时我们用这个样值集合来表示信号 s( t ) 。显然 t 反映了仿真系统对信号波形的分 辨率, t 越小则仿真的精确度越高。据通信原理所学,信号被取样以后的频谱是频率的周 1 1 期函数,其重复周期是 。如果信号的最高频率为 f H ,那么必须有 f H 才能保证不 t 2 t 1 发生混叠失真。我们称 Bs 为仿真系统的系统带宽。如果我们的仿真程序中设定的采 2 t 样间隔是 t ,那么我们不能用此仿真程序来研究带宽大于 Bs 的信号或系统。 此外,信号 s( t ) 的频谱 S f 通常来说也是定义在频率区间 , 上的连续函数,所以仿 真频域特性时,我们也必须把 S f 截短并取样。考虑到系统带宽是 Bs ,我们把频域的截短
三、 实验内容
3.1 傅里叶变换与傅里叶反变换 对于确定信号 f (t ) ,其傅里叶变换为:
F( f )
F ( f ) 傅里叶反变换为:



f (t )e 2 j ft dt
f (t ) F ( f )e2 j ft df

在通信原理仿真中,傅里叶变换与傅里叶反变换会经常用到,我们可以利用 MATLAB 的快速傅里叶变换函数 fft 与快速傅里叶反变换函数 ifft 编写傅里叶变换子程序与傅里叶反 变换子程序。其 程 序 代 码 如 下 :
傅里叶变换子程序:
%傅里叶变换子程序 function X=t2f(x) global dt df N t f T %X=t2f(x) %x 为时域的取样值矢量 %X 为 x 的傅氏变换 %X 与 x 长度相同,并为 2 的整幂。

用MatLab仿真通信原理系列实验

用MatLab仿真通信原理系列实验

用MatLab仿真通信原理系列实验一、引言通信原理是现代通信领域的基础理论,通过对通信原理的研究和仿真实验可以更好地理解通信系统的工作原理和性能特点。

MatLab作为一种强大的数学计算软件,被广泛应用于通信原理的仿真实验中。

本文将以MatLab为工具,介绍通信原理系列实验的仿真步骤和结果。

二、实验一:调制与解调1. 实验目的通过MatLab仿真,了解调制与解调的基本原理,并观察不同调制方式下的信号特征。

2. 实验步骤(1)生成基带信号:使用MatLab生成一个基带信号,可以是正弦波、方波或任意复杂的波形。

(2)调制:选择一种调制方式,如调幅(AM)、调频(FM)或相移键控(PSK),将基带信号调制到载波上。

(3)观察调制后的信号:绘制调制后的信号波形和频谱图,观察信号的频谱特性。

(4)解调:对调制后的信号进行解调,还原出原始的基带信号。

(5)观察解调后的信号:绘制解调后的信号波形和频谱图,与原始基带信号进行对比。

3. 实验结果通过MatLab仿真,可以得到不同调制方式下的信号波形和频谱图,观察到调制后信号的频谱特性和解调后信号的还原效果。

可以进一步分析不同调制方式的优缺点,为通信系统设计提供参考。

三、实验二:信道编码与解码1. 实验目的通过MatLab仿真,了解信道编码和解码的基本原理,并观察不同编码方式下的误码率性能。

2. 实验步骤(1)选择一种信道编码方式,如卷积码、纠错码等。

(2)生成随机比特序列:使用MatLab生成一组随机的比特序列作为输入。

(3)编码:将输入比特序列进行编码,生成编码后的比特序列。

(4)引入信道:模拟信道传输过程,引入噪声和干扰。

(5)解码:对接收到的信号进行解码,还原出原始的比特序列。

(6)计算误码率:比较解码后的比特序列与原始比特序列的差异,计算误码率。

3. 实验结果通过MatLab仿真,可以得到不同编码方式下的误码率曲线,观察不同信道编码方式对信号传输性能的影响。

通信原理MATLAB仿真实验设计

通信原理MATLAB仿真实验设计
2. 本实验中,高斯噪声信号序列长度为������ 1024,自相关序列长度 为������ 512;
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仿真实验指导书V1.1

通信原理MATLAB仿真实验指导书V1.1

leansmall@
表 5 MATLAB 特殊运算 符号 : ; , () [] {} 5.MATLAB的一维、二维数组的寻访 表6 子数组访问与赋值常用的相关指令格式 指令格式 A(r,c) A(r,:) A(:,c) A(:) A(i) A(r,c)=Sa A(:)=D(:) 指令功能 数组A中r指定行、c指定列之元素组成的子数组 数组A中r指定行对应的所有列之元素组成的子数组 数组A中c指定列对应的所有行之元素组成的子数组 数组A中各列元素首尾相连组成的“一维长列”子数组 "一维长列"子数组中的第i个元素 数组A中r指定行、c指定列之元素组成的子数组的赋值 数组全元素赋值,保持A的行宽、列长不变,A、D两组元素 总合应相同 构成向量、矩阵 构成单元数组 功能说明示例 1:1:4;1:2:11 分隔行 分隔列 符号 . .. … % ! = 注释 调用操作 系统命令 用于赋值 功能说明 示例
4.MATLAB变量与运算符 变量命名规则如下: (1) 变量名可以由英语字母、数字和下划线组成
Leansmall Lin
第 3 页
2013-4-26
通信原理 Matlab 仿真实验指导书 V1.1
leansmall@
(2) 变量名应以英文字母开头 (3) 长度不大于 31 个 (4) 区分大小写 MATLAB中设置了一些特殊的变量与常量,列于下表。 表1 MATLAB的特殊变量与常量 变量名 ANS i或j pi eps realmax 功能说明 默认变量名,以应答 最近一次操作运算结果 虚数单位 圆周率 浮点数的相对误差 最大的正实数 变量名 realmin INF(inf) NAN(nan) nargin nargout 功能说明 最小的正实数 无穷大 不定值(0/0)

通信原理Matlab仿真实验报告

通信原理Matlab仿真实验报告

实验二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];实验三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信号');⑵仿真结果:①三角波原图②用矩形波近似的冲击函数③分解后的三角波④经低通还原的三角波。

matlab通信原理仿真教程

matlab通信原理仿真教程

matlab通信原理仿真教程
Matlab通信原理仿真教程如下:
1. 导入Simulink和Communications Toolbox。

Simulink是MATLAB的一个扩展,用于建模、仿真和分析动态系统。

Communications Toolbox
是用于通信系统仿真的附加工具箱。

2. 创建通信系统模型。

在Simulink中,可以使用各种模块来创建通信系统
模型,例如信号源、调制器、解调器、信道和噪声源等。

3. 配置模块参数。

根据所需的通信系统参数,配置各个模块的参数。

例如,在调制器模块中,可以选择所需的调制类型(如QPSK、QAM等),并设
置相应的参数。

4. 运行仿真。

在Simulink中,可以使用“开始仿真”按钮来运行仿真。

Simulink将自动进行系统建模和仿真,并显示结果。

5. 分析仿真结果。

使用MATLAB中的各种工具和分析函数来处理仿真结果,例如频谱分析、误码率计算等。

以上是Matlab通信原理仿真教程的基本步骤,具体实现过程可能会因不同的通信系统和仿真需求而有所不同。

建议参考Matlab官方文档和相关教程进行学习。

通信原理MATLAB仿真自修课(伟)

通信原理MATLAB仿真自修课(伟)
三、MATLAB基本操作 基本操作, M文件程序设计。
基于MATLAB的通信系统仿真
四、MATLAB在通信系统中的应用
基于MATLAB的通信系统仿真
标准调幅 1.实验目的 (1)学习线性调制的基本原理; (2)通过MATLAB 编程实现AM调制信号及其功率谱密度。 2.实验原理 标准调幅又称常规双边带调幅。标准调幅中的调制信号m(t)带
有直流分量,设s(t)是载波,即:
其中, 为载波频率, 为起始相位,A0为载波的幅度。那么, 已调信号为
st 0 cosc t 0
c
0
s AM t A0 mt cosc t 0
基于MATLAB的通信系统仿真
m(t)
O
t
A0 m(t)
O
t
cosc(t)
调幅信号的时间波形
已调信号的包络确实与调制信O 号呈线性对应关系。因此,
%Power Spectrum Density [f,Xf]=FFT_SHIFT(t,s_am); PSD=(abs(Xf).^2)/T;
%调制信号频谱 %调制信号功率谱密度
基于MATLAB的通信系统仿真
figure(1)
subplot(211);பைடு நூலகம்plot(t,s_am);hold on;
%画出AM信号波形
plot(t,A+mt,'r--');
%标示AM的包络
title('AM调制信号及其包络');
xlabel('t');
subplot(212); %画出功率谱图形
plot(f,PSD);
axis([-2*fc 2*fc 0 1.5*max(PSD)]); title('AM信号功率谱');

MATLAB通信仿真在《通信原理》课程教学中的应用

MATLAB通信仿真在《通信原理》课程教学中的应用

MATLAB通信仿真在《通信原理》课程教学中的应用[摘要]本文介绍了matlab软件中通信工具箱的两种仿真方法,并重点阐述了在matlab/simulink环境下对通信系统进行可视化动态仿真的一般步骤和实现方法。

最后通过教学范例和实验结果说明,matlab通信系统仿真模型能够反映通信系统的动态工作情况,具有较强的演示性、可视性和实用性,是《通信原理》课程教学中强有力的辅助工具。

[关键词]matlab simulink 仿真通信系统一、引言《通信原理》是通信及相关专业的专业基础课,是许多后续专业课程的基础。

其中很多基本概念、重要原理将贯穿整个通信专业的各门课程之中。

然而,对于刚刚接触通信专业的学生来说,类似于调制、解调、抽样、量化、复用等概念及原理往往过于抽象,传统的教学方法很难高效的使学生从根本上理解这些概念、原理及过程。

将matlab通信系统的计算机仿真演示应用到《通信原理》的教学中,能够较好的解决这个问题。

采用matlab对基本原理和方法进行计算机仿真演示,能够使复杂的计算简单化,抽象的理论具体化、直观化,从而提高学习效率,增强学习兴趣,在一定程度还上培养学生进行通信系统工程设计的能力。

matlab最初是mathworks公司推出的一种数学应用软件,经过多年的发展,开发了包括通信系统在内的多个工具箱,从而成为目前科学研究和工程应用最流行的软件包之一。

matlab的动态仿真软件simlink提供了可视化的系统仿真环境和多个模型库,在模型库中提供了丰富的功能模块,采用模块化设计,可以方便、灵活地建立通用性较强的通信仿真模型。

matlab通信工具箱是一套用于通信领域进行理论研究、系统开发、分析设计和仿真的专业化工具软件包,主要由两部分组成:通信系统功能函数库和simulink通信系统仿真模型库。

下面分别从两个方面介绍matlab通信系统仿真方法。

二、使用通信系统函数库实现通信系统仿真matlab通信系统功能函数库[1]由70多个函数组成,每个函数又有多种选择参数,函数功能覆盖了现代通信系统的各个方面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

小学期报告实习题目通信原理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 对于许多的通信仿真类问题来说是很合适的。

2、了解计算机仿真的基本原理及方法,知道怎样通过仿真的方法去研究通信问题。

3、加深对通信原理课有关内容的理解。

二.实验要求1. 正弦信号波形及频谱的仿真;2. 单极性归零(RZ )波形及其功率谱,占空比为50%的仿真;3. 升余弦滚降波形的眼图及其功率谱的仿真。

滚降系数为0.5。

发送码取值为0、2;4. PCM 编码及解码的仿真。

三.正弦信号波形及频谱仿真(一)通信原理知识()()f t F ω⇔傅里叶变换表达式: ()()j t F f t e dt ωω∞--∞=⎰傅里叶变换:1()()2j t f t F e d ωωωπ∞-∞=⎰傅里叶逆变换:()()000Sin(2)2jf t f f f f πδδ⇔+--⎡⎤⎣⎦正弦信号傅里叶变换: (二)仿真原理及思路MATLAB 中关于傅里叶变换的有关函数,利用MATLAB 提供的函数编写两个函数t2f 及f2t 。

t2f 的功能是作傅氏变换,f2t 的功能是作傅氏反变换,它们的引用格式分别为X=t2f(x)及x=f2t(X),其中x 是时域信号x t ()截短并采样所得的取样值矢量,X 是对x t ()的傅氏变换X f ()截短并采样所得的取样值矢量。

(三)程序流程图(四)仿真程序及运行结果主程序:sinx.mglobal dt df N t f T %全局变量 close allk=input('取样点数=2^k,k=[10]'); if k==[],k=10;endN=2^k; %采样点数 dt=0.01; %时域采样间隔 df=1/(N*dt);%频域采样间隔 T=N*dt; %截短时间 Bs=N*df/2; %系统带宽 t=linspace(-T/2,T/2,N); f=linspace(-Bs,Bs,N); f0=1;s=cos(2/3*pi*f0*t); S=t2f(s); a=f2t(S); figure(1)set(1,'position',[10,50,500,200])%设定窗口位置及大小 figure(2)set(2,'position',[350,50,500,200]);%设定窗口位置及大小 figure(1)as=abs(S); %求模 plot(f,as,'r-') grid;axis([-2*f0,+2*f0,min(as),max(as)]);孔xlabel('f(kHZ)');ylabel('S(f)(V/kHZ)'); figure(2)plot(t,a,'b-') gridaxis([-4,+4,-1.5,1.5']); xlabel(('t(ms)')); ylabel('s(t)(V)');傅式变换程序:t2f.mfunction X=t2f(x)global dt df N t f T %X=t2f(x)%x 为时域的取样值矢量 %X 为x 的傅氏变换%X 与x 长度相同,并为2的整幂。

%本函数需要一个全局变量dt(时域取样间隔) H=fft(x);X=[H(N/2+1:N),H(1:N/2)].*dt; End傅式反变换程序:f2t.mfunction x=f2t(X)global dt df t f T N %x=f2t(X)%x 为时域的取样值矢量 %X 为x 的傅氏变换%X 与x 长度相同并为2的整幂%本函数需要一个全局变量dt(时域取样间隔) X=[X(N/2+1:N),X(1:N/2)]; x=ifft(X)/dt;%x=[tmp(N/2+1:N),tmp(1:N/2)]; End运行结果:-4-3-2-101234-1.5-1-0.500.511.5t(ms)s (t )(V )-2-1.5-1-0.500.51 1.521234f(kHZ)S (f )(V /k H Z )(五)实验结果分析打开MATLAB 运行程序sinx.m 后窗口出现:取样点数=2^k,k=[10]。

相关文档
最新文档