900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 【数字信号调制】基于ASK+OOK+BPSK+8PSK+QPSK+AM多种算法实现信号调制解调含Matlab源码

【数字信号调制】基于ASK+OOK+BPSK+8PSK+QPSK+AM多种算法实现信号调制解调含Matlab源码

时间:2019-12-26 09:28:08

相关推荐

【数字信号调制】基于ASK+OOK+BPSK+8PSK+QPSK+AM多种算法实现信号调制解调含Matlab源码

1 简介

​调制样式识别和调制参数估计是电子对抗中的一个重要环节,也是信号分析的一个快速发展的领域.本文主要从频域内对几种常用的数字通信信号的频谱,功率谱和谱相关进行分析.

2 部分代码

function varargout = digital_modulation(varargin)%DIGITAL_MODULATION% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @digital_modulation_OpeningFcn, ...'gui_OutputFcn', @digital_modulation_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before digital_modulation is made visible.function digital_modulation_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to digital_modulation (see VARARGIN)hold off;axes(handles.axes1);h=[1 1 0 1 0 0 1 1 1 0];hold off;bit=[];for n=1:2:length(h)-1;if h(n)==0 & h(n+1)==1se=[zeros(1,50) ones(1,50)];elseif h(n)==0 & h(n+1)==0se=[zeros(1,50) zeros(1,50)];elseif h(n)==1 & h(n+1)==0se=[ones(1,50) zeros(1,50)];elseif h(n)==1 & h(n+1)==1se=[ones(1,50) ones(1,50)];endbit=[bit se];endplot(bit,'LineWidth',1.5);grid on;axis([0 500 -1.5 1.5]);%*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-axes(handles.axes3)hold off;fc=30;g=[1 1 0 1 0 0 1 1 1 0]; %modulanten=1;while n<=length(g)if g(n)==0tx=(n-1)*0.1:0.1/100:n*0.1;p=(1)*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);grid on;hold on;elsetx=(n-1)*0.1:0.1/100:n*0.1;p=(2)*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);grid on;hold on;endn=n+1;end% Choose default command line output for digital_modulationhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes digital_modulation wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = digital_modulation_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} = handles.output;% --- Executes on button press in random.function random_Callback(hObject, eventdata, handles)% hObject handle to random (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)a=round(rand(1,10)); %genarar bits aleatoriosran=[a(1),a(2),a(3),a(4),a(5),a(6),a(7),a(8),a(9),a(10)];set(handles.bit1,'String',ran(1));set(handles.bit2,'String',ran(2));set(handles.bit3,'String',ran(3));set(handles.bit4,'String',ran(4));set(handles.bit5,'String',ran(5));set(handles.bit6,'String',ran(6));set(handles.bit7,'String',ran(7));set(handles.bit8,'String',ran(8));set(handles.bit9,'String',ran(9));set(handles.bit10,'String',ran(10));%*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*handles.bits=ran;h=handles.bits;axes(handles.axes1)hold off;bit=[];for n=1:2:length(h)-1;if h(n)==0 & h(n+1)==1se=[zeros(1,50) ones(1,50)];elseif h(n)==0 & h(n+1)==0se=[zeros(1,50) zeros(1,50)];elseif h(n)==1 & h(n+1)==0se=[ones(1,50) zeros(1,50)];elseif h(n)==1 & h(n+1)==1se=[ones(1,50) ones(1,50)];endbit=[bit se];endplot(bit,'LineWidth',1.5);grid on;axis([0 500 -1.5 1.5]);%*-*-*-*-*-*-*-*-*-*-*-*-hold off;axes(handles.axes3);cod=get(handles.select_mod,'Value');switch cod%*-*-*-*Modulation ASK*-*-*-*-*-*-*-*-*case 1hold off;axes(handles.axes3)fc=30;g=handles.bits; %modulanten=1;while n<=length(g)if g(n)==0tx=(n-1)*0.1:0.1/100:n*0.1;p=(1)*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);grid on;hold on;% axis([0 n*2/fc -3 3]);elsetx=(n-1)*0.1:0.1/100:n*0.1;p=(2)*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);grid on;hold on;endn=n+1;end%*-*-*-*-*-*-*-Modulation OOK*-*-*-*-*-*-*-*-*-case 2hold off;axes(handles.axes3);t=0:0.001:1;m=1;fc=30;g=handles.bits; %modulanten=1;while n<=length(g)tx=(n-1)*1/length(g):0.001:n*1/length(g);p=(g(n))*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);hold on;axis([0 (n)*1/length(g) -1.5 1.5]);grid on;n=n+1;end%*-*-*-*-*-*-*-Modulation BPSK*-*-*-*-*-*-*-*-*-*-*-case 3axes(handles.axes3)hold off;g=handles.bits;fc=10;n=1;while n<=length(g)if g(n)==0 %0 is -1tx=(n-1)*0.1:0.1/100:n*0.1;p=(-1)*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);grid on;hold on;elsetx=(n-1)*0.1:0.1/100:n*0.1;p=(1)*sin(2*pi*fc*tx);plot(tx,p,'LineWidth',1.5);grid on;hold on;endn=n+1;end%*-*-*-*-*-Modulation QPSK-*-*-*-*-*case 4

3 仿真结果

4 参考文献

[1]李耐根. 基于谱分析数字信号调制方式的自动识别[D]. 南昌大学, .

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。