• 响当当
    了解作者
  • matlab
    开发工具
  • 44KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 22
    下载次数
  • 2017-11-21 15:38
    上传日期
光纤通信系统里的相干系统仿真,相干通信系统中的单载波4QAM信号仿真
SC_4QAM.rar
  • decision.m
    269B
  • BPSK_200M_new.m
    16.4KB
  • Nyquist_4QAM_NEW.m
    19.4KB
  • test.m
    16.5KB
  • Nyquist_4QAM.m
    14.7KB
  • Modulate.m
    133B
  • PN_laser.m
    194B
  • spectrum.m
    2.4KB
  • BPSK_100M_new.m
    16.7KB
  • CMA_PDM_QPSK_SIM.m
    14.4KB
  • BPSK_200M.m
    16.9KB
  • DirectDownConversion_Xiang.m
    24.6KB
  • BPSK_100M.m
    16.9KB
  • decision_4.m
    372B
  • CMA_PDM_QPSK_SIM_NEW.m
    18.7KB
  • Demodulation_D4QAM.m
    587B
  • sspropv.m
    9.5KB
内容介绍
clear;close all; % clc; tic NN=1; j=sqrt(-1); for iii=1:NN LOADING=0; save_dir = 'E:\Test_Xiang_SC4QAM\'; SNR_Nx=[];SNR_Ny=[]; file_index=1; resolusion=0.004; loop_res=10; calc_times=0; if(LOADING) % 若使用历史数据空转则不关闭此段采集 %=================================================== % Note: 任何时候使用TekVISA 建立Matlab与连接时,每次提示 % Warning: VISA: Error - The specified operation or request timed out % 后停止都需要重启Matlab, don't ask % 同时检查channel 是否都有数据输入、到设备连接是否OK(用Openchoice talk\listener query 就OK)。 srcName = 'ch1,ch2,ch3,ch4'; % 指定采集全部4个通道 % recordLen = 1e6; % 指定存储记录长度等于示波器水平窗口长度。 对应DSA 上有5个帧间隔,与下列参数关联 SampleRate = 1/20e-12; % 设置示波器采样率 20ps/pt paraHs = 1e-6; % 设置示波器水平分辨率 4us/div recordLen = paraHs*10*SampleRate+1; % 指定存储记录长度等于示波器水平窗口长度。 对应DSA 上有5个帧间隔,与下列参数关联 instr = visa('tek','tcpip0::172.168.0.6::instr'); % DSA 的IP 172.168.0.2 set(instr, 'InputBufferSize', recordLen*4); % 4个channel 则size需乘以对应倍数 set(instr, 'OutputBufferSize', recordLen*4); set(instr, 'Timeout', 3); % 避免超时空等,最多3秒 fopen(instr); disp '==Begin ===============================================' idn = query(instr,'*IDN?'); % 例行查询,若能正常echo证明连接OK. % 设置好抓取参数后开跑,此部分参数需再确认! % 参见\matlab控制示波器实例\tek scope matlab support % 中代码指定采样点数和interval等参数,强制指定参数,避免每次手动调整的差异 %fprintf(instr,'HEADER OFF'); fprintf(instr,['DATA:SOURCE ' srcName]); fprintf(instr,'DATA:ENCDG SRIBINARY;'); fprintf(instr,'DATA:WIDTH 1'); fprintf(instr,'ACQUIRE:STATE OFF'); fprintf(instr,'ACQUIRE:MODE NORMALSAMPLE'); fprintf(instr,'ACQUIRE:STOPAFTER SEQUENCE'); fprintf(instr,['HORizontal:RECOrdlength ', num2str(recordLen)]); fprintf(instr,['HORizontal:MODE:SAMPLERate ', num2str(SampleRate)]); fprintf(instr,['HORizontal:MODE:SCAle ' num2str(paraHs)]); fprintf(instr,'ACQUIRE:STATE RUN'); % fprintf(instr,'ACQUIRE:STATE OFF') disp 'Scope parameters set, Now pausing to finish acquisition' pause(0.5); % 因为实验开始示波器的X、Y轴等参数就不动了,且各通道一致,此时可先计算。 % % get x zero % xZ = str2num(query(instr,'WFMOUTPRE:XZERO?')); % % get the sampling interval sI = str2num(query(instr,'WFMOUTPRE:XINCR?')); % % get the trigger point within the record % iT = str2num(query(instr,'WFMOUTPRE:PT_OFF?')); horizLen = str2num(query(instr,':HOR:RECORD?')); ymult = str2num(query(instr,'WFMOUTPRE:YMULT?')); yoff = str2num(query(instr,'WFMOUTPRE:YOFF?')); yzero = str2num(query(instr,'WFMOUTPRE:YZERO?')); %------------------------------------------------------------------------- % 从结果中依次query 4个通道的结果,各通道大同小异 for ch_index = 1:1:4 fprintf(instr,[':DATA:SOUR ' 'ch' num2str(ch_index) ';START ' num2str(1) ';STOP ' num2str(horizLen)]); fprintf(instr,':CURVE?'); [header, count] = fscanf(instr,'%c', 2); header1 = fscanf(instr,'%c',str2num(header(2))); data = []; % 每次使用前清空data Len = min(horizLen, recordLen); % 取buf和实际采样窗口的大者,size过大会溢出,过小则找不到帧头 [data,count] = fread(instr,Len,'int8'); %Curveterminator = fread(instr,1,'char'); % scale the data to the correct values waveform_ch(:,ch_index) = ymult*(data - yoff) - yzero; % 若存成.txt 且带时间后缀 ------------------------------------------------------ % save_time = clock; %c = [year month day hour minute seconds] % file_sufix = ['(' num2str(save_time(3)) '_' num2str(save_time(4)) '_' num2str(save_time(5)) '_' num2str(save_time(6)) ').txt']; % fid = fopen([save_dir 'ch' num2str(ch_index) file_sufix],'w'); % 若存成.dat 文本 ------------------------------------------------------ % [path num2str(1000+datafile) '_Ch1.dat']; % fid = fopen([save_dir num2str(1000 + file_index) '_Ch' num2str(ch_index) '.dat'],'w'); % fprintf(fid,'%d\n',waveform_ch(:,ch_index)); % fclose(fid); end; % 将waveform_ch矩阵 存到 .mat ,文件尺寸能小至1/8 ------------------------------------ savefile = [save_dir num2str(1000 + file_index) '.mat']; save(savefile, 'waveform_ch'); % fprintf(instr,'ACQUIRE:STATE ON'); % figure if necessary -------------- % figure(1); % subplot(221); % plot(waveform_ch(:,1),'Color','Yellow'); % Ch1 % subplot(222); % plot(waveform_ch(:,2),'Color','Blue'); % Ch2 % subplot(223); % plot(waveform_ch(:,3),'Color','Red'); % Ch3 % subplot(224); % plot(waveform_ch(:,4),'Color','Green'); % Ch4 % flush 干净再关闭,避免溢出风险 flushinput(instr); flushoutput(instr); % fprintf(instr,'ACQUIRE:STATE ON'); fclose(instr); delete(instr); disp '--Finished ---------------------------------------' %------------------------------- end; % 采集数据结束 Nb=2; % over sampling, e.g., 128 subcarriers, but samplied 2*128 times. AWG=5; SCOPE=50; % [stream,transmitted,pattern,synchead,TS,Band1,Band2]=OFDMgenerator_Xiang(0);% 0 ---> no loading data out 1 ---> yes % stream_len=length(stream); % close all; if(LOADING) % 直接使用前面采集的数据结果 % datafile=1; % % path=['z:\']; % path = save_dir; % path1=[path num2str(1000+datafile) '_Ch1.dat']; % Ix=load(path1); % path1=[path num2str(1000+datafile) '_Ch2.dat']; % Qx=load(path1); % path1=[path num2str(1000+datafile) '_Ch3.dat']; % Iy=load(path1); % path1=[path num2str(1000+datafile) '_Ch4.dat']; % Qy=load(path1);Qy=-Qy; % % fprintf('******calibration begin******\n'); % Qy=procedureRIGHT2(Qy).'; % % Qy=Qy.'; % Qx=procedureLEFT2(Qx).'; % % Qx=Qx.'; % fprintf('******calibration end******\n'); % % x_stream=Ix+j*Qx;%for inte3rleaving % y_stream=Iy+j*Qy;%for interleaving % % save ('x_stream.mat','x_stream'); % save ('y_stream.mat','y_stream'); % 若直接共享前面的变量,就不用从文件中load. 注意对应关系和正负 if(CPshift==CPshiftLOW) fprintf('******calibration begin******\n'); % [waveform_ch(:,4),phase_R_mis]=procedureRIGHT2(waveform_ch(:,4),-0.022); % C-band [waveform_ch(:,4),phase_R_mis]=procedureRIGHT2(waveform_ch(:,4),-0.013); % L-band % waveform_ch(:,4)=waveform_ch(:,4).'; [waveform_ch(:,2),phase_L_mis]=procedureLEFT2(waveform_ch(:,2),0.014); % waveform_ch(:,2)=waveform_ch(:,2).'; fprintf('******calibration end******\n'); phase_L_mis=1.62; I= 1.09*waveform_ch(:,1); Q= waveform_ch(:,2); Q=(Q+I*sin(phase_L_mis-pi/2))/cos(phase_L_mis-pi/2); x_stream = Q+j*I; phase_R_mis=1.59; % C-band % phase_R_mis=1.55; %L-band I=1.09*waveform_ch(:,3); Q= waveform_ch(:,4); Q=(Q+I*sin(phase_R_mis-pi/2))/cos(phase_R_mis-pi/2); y_stream = Q+j*I; save ('x_stream.mat','x_stream'); save ('y_stream.mat','y_stream'); else load ('x_stream.mat'); load ('y_stream.mat'); end else % 使用转储文件中的历史结果 % stream1=[stream stream].'; % stream2=circshift(stream1.',[0 sync_len]).'; % % Pratio=1; % x_stream=stream1.*Pratio.^0.5+stream2.*(1-Pratio).^0.5; % y_stream=stream2.*Pratio.^0.5+stream1.*(1-Pratio).^0.5; % % % Sim_SNR=30; % x_stream=awgn(x_stream,Sim_SNR,'measured')*0.7; % y_stream=awgn(y_stream,Sim_SNR,'measured')*0.7; savefile = [save_dir num2str(10
评论
    相关推荐
    • Code_16QAM.rar
      光纤通信系统中的相干光仿真,包括数字信号处理的全部过程和光纤信道的建模,针对16QAM的调制格式,带有Nyquist信号生成
    • 13.rar
      基于已知特性信道的QAM系统的仿真和性能分析
    • OFDM系统中一种抑制峰均功率比的安全算法.rar
      实验证明,7Gbit/s 16QAM (Quadrature Amplitude Modulation)O-OFDM 加 密 信 号 可 通 过 25km 标 准 单 模 光 纤 在 强 度 调制/直接检测 OFDM-...
    • opticalcommunication.rar
      通信的一些思考 ,关于光通信的一些发展前景说得很不错
    • qammatlab代码-optiCommLabProc:光纤通信实验室/实验处理脚本
      光纤通信实验室/实验处理脚本:用于直接检测的M-QAM和PAM-M信号 包括模块: TekTronix和安捷伦离线数据捕获的MATLAB脚本 数字直流块 数字AGC 数字定时恢复:Mueller和Muller时钟恢复算法(M&M) 数字重采样 QPSK / ...
    • gb358.zip
      光纤无线通信系统中传输性能的研究,采用累计贡献率的方法,ofdm系统仿真 含16qam调制 fft 加窗 加cp等模块。
    • 软考高级网络规划设计师满分考生详细笔记倾力分享
      软考高级网络规划设计师满分考生详细笔记倾力分享,朋友们绝对不要错过! 软考高级网络规划设计师满分考生详细笔记倾力分享,朋友们绝对不要错过! 软考高级网络规划设计师满分考生详细笔记倾力分享,朋友们绝对...
    • matlab信息熵代码-2018-Graduate-Mathematical-Modeling-Competition-B:该项
      matlab信息熵代码 2018-Graduate-Mathematical-Modeling-Competition-B This project is the problem solving code for ...本代码是研究生数学建模竞赛的解题代码,三...Kao)博士,以表彰他对光纤通信发展所做出的贡献,诺
    • DVB-S2_LDPC_QAM.zip
      信道编码 低密度奇偶校验码 光纤通信
    • USB-COM(HL340).rar
      usb转串口,找了很久才找到,现在别的地方很难下到,要不用不了,我这个可以用 HL340D 的