• 大小: 8KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2023-07-19
  • 语言: Matlab
  • 标签: matlab  gui  

资源简介

基于MATLAB GUI通信系统仿真。本次电力系统通信技术的课程设计内容为基于MATLAB GUI的通信技术仿真平台的搭建,该仿真平台中可以根据不同的指令完成信源的产生、信道与噪声的仿真、信号的调制与解调仿真、信源的编码与解码仿真和数字基带传输系统眼图和误码率的仿真等。 仿真平台利用用MATLAB的GUI搭建:平台以菜单方式工作,且平台应包含上述内容中的所有模块,系统可以显示所有模块应有相应的仿真结果及结果分析。本次课设设计了两个平台来进行通信系统的仿真,分别是2ASF随机二进制信源调制解调误码率仿真系统以及PCM固定信源的编码解码。

资源截图

代码片段和文件信息

function varargout =untitled1(varargin)

gui_Singleton = 1;
gui_State = struct(‘gui_Name‘       mfilename ...
                   ‘gui_Singleton‘  gui_Singleton ...
                   ‘gui_OpeningFcn‘ @untitled1_OpeningFcn ...
                   ‘gui_OutputFcn‘  @untitled1_OutputFcn ...
                   ‘gui_LayoutFcn‘  []  ...
                   ‘gui_Callback‘   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State varargin{:});
else
    gui_mainfcn(gui_State varargin{:});
end

function untitled1_OpeningFcn(hobject eventdata handles varargin)
handles.output = hobject;
guidata(hobject handles);

function varargout = untitled1_OutputFcn(hobject eventdata handles) 
varargout{1} = handles.output;


function pushbutton1_Callback(hobject eventdata handles)
global I
global fs
global fb
global fc
global signal_in_one_bit
global space_in_zero_bit
global space_in_one_bit
global y
global S
global signal
global st
global zs
global f
global df1
global tz
global nst
global t
global x
global gjxs
global d
x=round(rand(1I));% 产生信号比特
S=fs/fb;% 每比特采样数
t=(0:S*I-1)/fs;
signal_in_one_bit=cos(2*pi*fc*(0:S*I-1)/fs);%载波
space_in_zero_bit=zeros(1S); %为0时
space_in_one_bit=ones(1S) ;%为1时
y=zeros(1S*I) ;
for i=1:length(x)
    if(x(i)==1)
        y((i-1)*S+1:i*S)=space_in_one_bit;
    else
        y((i-1)*S+1:i*S)=space_in_zero_bit;
    end
end
f=[0:df1:df1*(length(tz)-1)]-fs/2;%频谱矢量计算
signal=y;
axes(handles.axes2);
plot(signal);
grid on;
ylim([-2 2]);
st=y.*signal_in_one_bit;
disp(zs);
nst=awgn(stzs);
axes(handles.axes3);
grid on;
plot(nst);
nst=nst.*signal_in_one_bit;
wp=2*pi*2*fc*0.5;
ws=2*pi*2*fc*0.9;
R=2;
T=45;
[N1wc]=buttord(wpwsRT‘s‘);
[BA]=butter(N1wc‘s‘);
h=tf(BA);
t=(0:S*I-1)/fs;
d=lsim(hnstt);
axes(handles.axes10);
grid on;
plot(d);%滤波后的噪声
%眼图函数
Ts=1;
eyenum=10;
codenum=2000;
tsample=4;
dt=0.2;
t=-eyenum/2:dt:eyenum/2;
if isempty(gjxs)
gjxs=1;
end
pp=cos(gjxs*pi*t/Ts);
pp1=1./(1-4*t.*t*gjxs*gjxs/Ts/Ts);
ht=1/Ts*sinc(t/Ts).*pp.*pp1;
code=sign(randn(1codenum))+0.05*randn(1codenum);%画眼图
for n=1:codenum/eyenum
    ss=zeros(1length(ht)+Ts/dt);
    for m=1:eyenum
        tmp=code((n-1)*eyenum+m)*ht;
        tmp1=ss((m*Ts/dt+1):length(ss))+tmp;
        ss =[ss(1:(m*Ts/dt)) tmp1 zeros(1Ts/dt)];
    end
    drawnow
    kk=1:length(ss);
    axes(handles.axes7);
    plot(kk*dt-dtss);hold on
    clear ss;
    axis([5 15 -3 3]);
end

function edit1_Callback(hobject eventdata handles)
global fs
fs=str2double(get(findobj(‘Tag‘‘edit1‘)‘String‘ )); %采样频率

function edit1_CreateFcn(hobject eventdata handles)
if ispc && isequal(get(hobject‘BackgroundColor‘) get(0‘defaultUicontrolBackgroundColor‘))
    set(hobject‘BackgroundColor‘‘white‘);
end

function edit2_Callback(hobject eventdata handles)
global I
I=str2double(get(findobj(‘Tag‘‘edit2‘)‘String‘)); %周期点数

function edit2_CreateFcn(hobject eventdata handles)
if ispc && is

评论

共有 条评论