一、简介1
- 课程设计原理及设计方案
语音语音加密原理框图在对语音信号进行预处理、加密解密分析之后,将各个步骤联系起来绘出了语音加密原理框图如下:
二、源代码
function varargout = Signal_encryption_gui1(varargin) % SIGNAL_ENCRYPTION_GUI1 MATLAB code for Signal_encryption_gui1.fig % SIGNAL_ENCRYPTION_GUI1, by itself, creates a new SIGNAL_ENCRYPTION_GUI1 or raises the existing % singleton*. % % H = SIGNAL_ENCRYPTION_GUI1 returns the handle to a new SIGNAL_ENCRYPTION_GUI1 or the handle to % the existing singleton*. % % SIGNAL_ENCRYPTION_GUI1('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in SIGNAL_ENCRYPTION_GUI1.M with the given input arguments. % % SIGNAL_ENCRYPTION_GUI1('Property','Value',...) creates a new SIGNAL_ENCRYPTION_GUI1 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Signal_encryption_gui1_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to Signal_encryption_gui1_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Signal_encryption_gui1 % Last Modified by GUIDE v2.5 17-Jul-2017 13:59:22 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Signal_encryption_gui1_OpeningFcn, ... 'gui_OutputFcn', @Signal_encryption_gui1_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 % End initialization code - DO NOT EDIT % --- Executes just before Signal_encryption_gui1 is made visible. function Signal_encryption_gui1_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 Signal_encryption_gui1 (see VARARGIN) % Choose default command line output for Signal_encryption_gui1 global k1 k2 u1 u2 k11 k22 u11 u22 k1=0.3;u1=3.7;k2=0.6;u2=3.9; k11=0.3;u11=3.7;k22=0.6;u22=3.9; handles.output = hObject; % Update handles structure guidata(hObject, handles); %设置GUI背景 ha=axes('units','normalized','position',[0 0 1 1]); uistack(ha,'down') H=imread('03.jpg'); image(H) colormap gray set(ha,'handlevisibility','off','visible','off'); % UIWAIT makes Signal_encryption_gui1 wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = Signal_encryption_gui1_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 structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) %录音5秒 fs=8000; %语音信号采样频率为8000 Data=1:64;Data=(Data'*Data)/64; uiwait(msgbox('开始录音','录音','custom',Data,hot(64))); y=audiorecorder(fs,16,1); recordblocking(y, 5); myRecording = getaudiodata(y); audiowrite('F:\MATLAB\Matlab\bin\workplace\Signal_Encrypion\s.wav',myRecording,fs); msgbox('录音结束','录音','custom',Data,hot(64)); % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) global k1 k2 u1 u2 k1=str2double(get(handles.edit1,'string')); u1=str2double(get(handles.edit3,'string')); k2=str2double(get(handles.edit2,'string')); u2=str2double(get(handles.edit4,'string')); % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) global k11 k22 u11 u22 k11=str2double(get(handles.edit5,'string')); u11=str2double(get(handles.edit7,'string')); k22=str2double(get(handles.edit6,'string')); u22=str2double(get(handles.edit8,'string')); % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) x=audioread('s.wav'); t=(0:length(x)-1)/44100; axes(handles.axes1); plot(handles.axes1,t,x) %做原始语音信号的时域图形 grid on; axis tight; title('原始语音信号'); xlabel('time(s)'); ylabel('幅度'); % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton5. function pushbutton5_Callback(hObject, eventdata, handles) fs=44100; %语音信号采样频率为44100 x=audioread('s.wav'); t=(0:length(x)-1)/44100; Y=fft(x); %对信号做2048点FFT变换 global N f N=length(Y); f=fs*(0:N/2-1)/N; axes(handles.axes1); plot(handles.axes1,f,abs(Y(1:length(f)))) %做原始语音信号的FFT频谱图 grid on; axis tight; title('原始语音信号FFT频谱') xlabel('Hz'); ylabel('幅度'); % hObject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton6. function pushbutton6_Callback(hObject, eventdata, handles) x=audioread('s.wav'); sound(x) % hObject handle to pushbutton6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton7. function pushbutton7_Callback(hObject, eventdata, handles) x=audioread('s.wav'); t=(0:length(x)-1)/44100; x1=ceil(1000*x); %预处理语音信号(原始信号扩大1000倍) x2=dec_to_bin(x1); %将语音信号由10进制转化为2进制 %利用Logistic混沌映射,对语音信号进行加密 global k1 k2 u1 u2 z1=k1;z2=k2; for m=1:80 %迭代80次,达到充分混沌状态 z1=u1*z1*(1-z1); end
三、运行结果
四、备注
2014a
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mkjdt/16307.html