北京理工大学数字信号处理A课程设计项目
- 格式:doc
- 大小:406.00 KB
- 文档页数:19
数字信号处理课程设计
一、概述
本次信号处理课程设计主要对常见的数字信号处理算法进行实现。
主要内容包括数字信号滤波器、傅立叶变换和数字信号检测算法。
通过实验,学生将学习主要处理手段;同时了解数字信号处理的基本原理和应用。
二、主要内容
(1)数字信号滤波器:实现简单的数字滤波器,同时计算滤波器的频率响应;
(2)傅立叶变换:实现常用的傅立叶变换,并利用变换后的信号图像进行频率分析;
(3)数字信号检测算法:实现基本的一阶和二阶差分算法,并利用此算法进行实时信号检测;
三、实验步骤
(1)准备实验材料:将数字信号的原始信号数据以文件的形式存储,使用MATLAB等软件进行处理;
(2)实现数字滤波器:实现一阶以及多阶低通、高通和带通滤波器,
并计算响应的频谱;
(3)实现傅立叶变换:实现Fourier变换后的信号图像处理,如二维DFT等;
(4)实现数字信号检测算法:实现一阶和二阶差分算法,并利用此算法进行实时信号检测;
(5)数字信号处理综合应用实验:针对实际的数字信号,分析信号的特征,并基于实验结果进行信号处理算法的比较。
四、实验结果
完成本次实验后,可以实现对不同数字信号的处理,掌握其中滤波器、傅立叶变换等数字信号处理理论,并掌握常规的算法,学会运用算法实现实际信号处理工程。
数字信号处理A(DigitalSignalProcessing)课程代码:06410096学分:3学时:48(其中:课堂教学学时:38实验学时:上机学时:10课程实践学时:)先修课程:信号与线性系统、线性代数、复变函数适用专业:通信工程、计算机科学与技术、电子信息工程教材:数字信号处理(第二版);吴镇扬;高等教育出版社,2010年4月开课学院:计算机科学与通信工程学院课程网站:(选填)一、课程性质与课程目标(一)课程性质(需说明课程对人才培养方面的贡献)《数字信号处理A》是通信工程专业中一门重要的专业基础课和必修课,在整个教学体系中占据非常重要的地位。
作为通信工程专业的核心课程之一,本课程是对理论与实践要求均较高的课程,并为语音处理、DSP芯片原理与应用等选修课程打下必需的基础。
课程以数字信号处理技术的应用为目标,从应用系统的角度讲授数字信号处理的理论方法及其实现。
通过对数字信号处理的学习,使学生掌握数字信号处理领域中的基本概念、方法以及其原理。
通过理论与实践的有机结合,能培养学生运用数学、自然科学与专业理论知识、分析问题与解决问题的能力,促进创新素质提升。
(二)课程目标(根据课程特点和对毕业要求的贡献,确定课程目标。
应包括知识目标和能力目标。
)知识目标:课程目标1:掌握线性时不变离散系统分析的理论基础及分析方法。
课程目标2:掌握离散时间信号与系统的基本概念以及时域分析的原理和方法。
课程目标3:掌握离散傅里叶变换(DFT)及其快速算法(FFT)o课程目标4:了解和掌握HR及FIR数字滤波器的理论及设计方法(包括计算机辅助设计)。
课程目标5:掌握实现数字滤波器的各种基本结构,了解有限字长效应的概念和知识。
课程目标6:了解数字信号处理器的工作原理及结构特点。
课程目标7:了解数字信号处理的一些应用。
能力目标:课程目标8:将数字信号处理的基本理论与实践有机结合,对数字领域实际问题进行表达与建模的能力。
课程目标9:具备对数字信号系统性能分析,掌握数字系统的主要算法和相关理论。
(30)北京理工大学继续教育学院2004~2005学年第一学期“数字信号处理”复习提纲本课程采用教材:数字信号处理王世一编著北京理工大学出版社 1997年11月第2版本课程教学计划:总共112学时,其中面授32学时、自学80学时、主讲教师:刘志文电话:68911432一、课程性质和目的“数字信号处理”是本专业的一门专业技术课。
它研究解决数字信号的表示、变换与数字滤波器设计的理论和方法。
本课程的主要任务是:1.学习数字信号的表示、变换与数字滤波器设计的理论和方法。
2.培养学生掌握数字信号处理的基本理论和方法。
3.培养学生初步运用快速傅里叶变换(FFT)与数字滤波器处理实际问题的能力。
4.为毕业设计和今后的工作打下一定的基础。
二、基本要求了解数字信号、数字系统的概念及其描述方法;掌握离散傅里叶变换(DFT)的定义及其主要性质;掌握基-2 快速傅里叶变换的基本原理、算法流图;初步掌握数字滤波器设计的基本概念、基本原理和基本方法。
三、考核要求第一章数字信号处理概述1.什么是数字信号?它与模拟信号的区别是什么?2.什么是数字系统?它与模拟系统的区别是什么?3.什么是数字信号处理?相比模拟信号处理,它有哪些优点?第二章离散时间信号和系统分析基础1.什么是取样定理?2.什么是折叠频率?其含义是什么?3.序列的表示方法、序列的运算规则及符号表示4.常用的典型序列:单位取样序列、单位阶跃序列、矩形序列、正弦序列、指数序列5.序列的周期性、序列的能量6.任意序列的单位取样序列的延时加权和表示7.离散时间线性非时变系统的差分方程、频率响应、系统函数8.序列的共轭对称与共轭反对称的定义,及其傅里叶变换的性质。
9.序列的Z变换与傅里叶变换、拉氏变换(双边)的关系10.求逆Z变换的三种常用方法:留数定理解法、幂级数展开法、部分分式展开法11.系统频率响应的几何确定法、全通系统的概念及其系统函数第三章离散傅里叶变换(DFT)1.离散傅里叶级数的定义,及其主要性质(线性特性、序列移位特性、周期卷积特性)2.离散傅里叶变换的定义,及其主要性质(共十四条)3.频域取样的概念、取样点数的限制、以及相应的内插公式。
数字信号处理课程设计一、课程设计任务1.1 设计背景数字信号处理是关于数字信号的获取、处理和应用的学科,广泛应用于通信、图像处理、音频处理等领域。
随着现代通信技术的发展,数字信号处理的应用越来越广泛,因此数字信号处理技术的研究和应用已经成为了当前的热点和难点问题。
本次数字信号处理课程设计旨在通过实践,使学生深入了解数字信号处理技术,并且掌握数字信号处理的基本原理与方法。
同时,通过此课程设计的实践环节,学生将运用所学的数字信号处理知识,针对某一具体问题进行深入分析,设计相应的算法,并进行实验验证,培养学生的实践能力。
1.2 设计任务本次数字信号处理课程设计任务为:通过 MATLAB 对音频信号进行数字信号处理,实现音频信号数字化、本地化、校准、滤波、平滑等操作,并设计出相应的算法。
具体任务包括:1.对输入的音频信号进行数字化:将模拟信号输入到 A/D 转换器中,将其转换为数字信号。
2.实现音频信号的本地化:通过本地化处理,实现对音频信号的空间定位。
3.针对音频信号的校准问题,设计相应的校准算法。
4.实现音频信号的滤波和平滑处理:通过低通滤波、高通滤波等方法,实现对音频信号的滤波和平滑处理。
二、实验流程2.1 实验器材本实验采用的主要器材为:1.电脑2.MATLAB 软件3.音频设备2.2 实验流程本实验的主要流程如下所示:1.设置音频输入输出设备,并初始化参数% 设置音频输入输出设备audioInput = audioDeviceReader(44100, 16, 1); audioOutput = audioDeviceWriter(44100, 16, 1);% 初始化参数blockSize = 1024;overlap = 512;sampleRate = 44100;2.进行音频信号采集与播放while true% 采集音频数据audioData = audioInput();% 对音频数据进行数字信号处理processedData = processAudioData(audioData, blockSize, overlap, sampleRate);% 播放处理后的音频数据audioOutput(processedData);end3.设计音频数据处理算法function processedData = processAudioData(audioData, blockSize, overlap, sampleRate)% 数字化处理audioData = double(audioData);% 本地化处理processedData = doLocalization(audioData);% 校准算法processedData = doCalibration(processedData);% 滤波和平滑处理processedData = doFiltering(processedData, sampleRate);% 返回处理后的音频数据processedData = single(processedData);end4.对音频数据进行本地化处理function localizationData = doLocalization(audioData) % 实现音频信号的本地化localizationData = audioData;end5.设计校准算法,使音频数据满足一定标准function calibrationData = doCalibration(processedDat a)% 校准算法calibrationData = processedData;end6.设计滤波和平滑处理算法function filteredData = doFiltering(processedData, sa mpleRate)% 低通滤波lowPassFilter = designfilt('lowpassfir', 'FilterOrder', 70, 'CutoffFrequency', 5000, 'SampleRate', sampleRate); filteredData = filtfilt(lowPassFilter, processedData);% 高通滤波highPassFilter = designfilt('highpassfir', 'FilterOrde r', 70, 'CutoffFrequency', 500, 'SampleRate', sampleRat e);filteredData = filtfilt(highPassFilter, filteredData);% 平滑处理smoothedData = smoothdata(filteredData, 'movmean', 50);% 返回处理后的数据filteredData = smoothedData;end三、实验结果及分析3.1 实验结果通过对 MATLAB 下进行数字信号处理的实验,得到了如下所示的实验结果:1.输入音频信号Input AudioInput Audio2.经过数字化、本地化、校准、滤波、平滑等处理后的音频信号Processed AudioProcessed Audio3.2 结果分析通过实验结果可以看出,经过数字信号处理后的音频信号具有了更好的音质和更好的稳定性。
数字信号处理实验报告1.深入掌握应用DFT分析信号的频谱的理论方法,针对该问题进行一次全面综合练习,完成一个完整的信号分析软件实现方法和流程,这种全面完整的综合练习可以帮助学生深入理解和消化基本理论,锻炼学生独立解决问题的能力,培养学生的创新意识,为今后的科研和工作打下良好的实践基础。
2.综合利用数字信号处理的理论知识完成数字滤波器的设计与实现,完成一个完整的数字滤波器设计软件的实现方法和流程。
这种全面完整的综合练习可以帮助学生深入理解和消化基本理论,锻炼学生独立解决问题的能力,培养学生的创新意识,为今后的科研和工作打下良好的实践基础。
二、实验设备与环境计算机、MATLAB软件环境三、实验内容1.基于Matlab GUI的离散傅里叶变换分析2.基于Matlab GUI的数字滤波器分析设计1.基于Matlab GUI的离散傅里叶变换分析信号: t=1:100;x=2*sin(t/25*2*pi)+5*sin(t/5*2*pi);说明:输入信号从Matlab Command Windows中生成,通过变量名导入本软件,并可输出DFT变换后的结果,默认名为DFT_输入变量名。
2.基于Matlab GUI的数字滤波器分析设计IIR 低通:(巴特沃兹)IIR高通:(切比雪夫I)IIR带通:(切比雪夫II)IIR带阻:(椭圆滤波器)FIR低通:(矩形窗)FIR高通:(汉宁窗)FIR带通:(布莱克曼窗)FIR带阻:(凯瑟窗)五、程序界面设计及程序源代码1.基于Matlab GUI的离散傅里叶变换分析界面设计:程序代码:function varargout =SignalDFTSoftware(varargin)% SIGNALDFTSOFTWARE MATLAB code for SignalDFTSoftware.fig% SIGNALDFTSOFTWARE, by itself, creates a new SIGNALDFTSOFTWARE or raises the existing% singleton*.%% H = SIGNALDFTSOFTWARE returns the handle to a new SIGNALDFTSOFTWARE or the handle to% the existing singleton*.%%SIGNALDFTSOFTWARE('CALLBACK',hObject,even tData,handles,...) calls the local% function named CALLBACK in SIGNALDFTSOFTWARE.M with the given input arguments.%%SIGNALDFTSOFTWARE('Property','Value',...) creates a new SIGNALDFTSOFTWARE or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before SignalDFTSoftware_OpeningFcn gets called.An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to SignalDFTSoftware_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 SignalDFTSoftware% Last Modified by GUIDE v2.5 26-Nov-2011 12:55:11% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name',mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn',@SignalDFTSoftware_OpeningFcn, ...'gui_OutputFcn',@SignalDFTSoftware_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 SignalDFTSoftware is made visible.function SignalDFTSoftware_OpeningFcn(hObjec t, 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% varargin command line arguments to SignalDFTSoftware (see VARARGIN)% Choose default command line output for SignalDFTSoftwarehandles.output = hObject;% Update handles structure guidata(hObject, handles);% UIWAIT makes SignalDFTSoftware wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout =SignalDFTSoftware_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% Get default command line output from handles structurevarargout{1} = handles.output;% --- If Enable == 'on', executes on mouse press in 5 pixel border.% --- Otherwise, executes on mouse press in 5 pixel border or over random.function random_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to random (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% --- 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 MATLABglobal x;global x_flag;x=rand(1,50)*20-10;x_flag=1;if(x_flag)plot(handles.TD,0:(length(x)-1),x);end% --- Executes on button press in Delete.function Delete_Callback(hObject, eventdata, handles)% hObject handle to Delete (see GCBO)% eventdata reserved - to be defined in a future version of MATLABglobal x;global X;global x_flag;global X_flag;x=0;X=0;x_flag=0;X_flag=0;plot(handles.TD,0,0);plot(handles.FD,0,0);% --- If Enable == 'on', executes on mouse press in 5 pixel border.% --- Otherwise, executes on mouse press in 5 pixel border or over Delete.function Delete_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to Delete (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% --- If Enable == 'on', executes on mouse press in 5 pixel border.% --- Otherwise, executes on mouse press in 5 pixel border or over Analyse.function Analyse_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to Analyse (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% --- Executes on button press in Analyse. function Analyse_Callback(hObject, eventdata, handles)% hObject handle to Analyse (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB global x;global X;global x_flag;global X_flag;if(x_flag)X=fft(x);X_flag=1;endif(X_flag)stem(handles.FD,linspace(0,2*pi,length(X)),abs( X));xlim(handles.FD,[0,2*pi])end% --- Executes on button press in Export. function Export_Callback(hObject, eventdata, handles)% hObject handle to Export (see GCBO)% eventdata reserved - to be defined in a future version of MATLABglobal X;global X_flag;if(X_flag)assignin('base',get(handles.edit4,'String'),X); end% --- Executes during object creation, after setting all properties.function text1_CreateFcn(hObject, eventdata, handles)% hObject handle to text1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns calledglobal x_flag;global X_flag;global x;global X;x_flag=0;X_flag=0;x=0;X=0;function name_Callback(hObject, eventdata, handles)% hObject handle to name (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% Hints: get(hObject,'String') returns contents of name as text% str2double(get(hObject,'String')) returns contents of name as a double% --- Executes during object creation, after setting all properties.function name_CreateFcn(hObject, eventdata, handles)if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end% --- Executes on button press in import. function import_Callback(hObject, eventdata, handles)global x;global x_flag;global signal_name;signal_name=get(,'String');x='empty';set(,'String','Notexist,Retry!');x=evalin('base',signal_name);set(,'String','Succeed');x_flag=1;if(x_flag)plot(handles.TD,0:(length(x)-1),x);endset(handles.edit4,'String',strcat('DFT_',signal_na me));function edit4_Callback(hObject, eventdata, handles)function edit4_CreateFcn(hObject, eventdata, handles)if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); endglobal signal_name;2.基于Matlab GUI的数字滤波器分析设计界面设计:程序设计:function varargout = filter(varargin)%EDIT By Yu Yizhe%V1.0%2011/11/20%all right reserve% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @filter_OpeningFcn, ...'gui_OutputFcn', @filter_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 filter is made visible. function filter_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% varargin unrecognizedPropertyName/PropertyValue pairs from the% command line (see VARARGIN)% Choose default command line output for filter handles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes filter wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned tothe command line.function varargout = filter_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% Get default command line output from handles structurevarargout{1} = handles.output;function text1_CreateFcn(hObject, eventdata, handles)global ch1;global ch2;global ch31;global ch32;ch1=1;ch2=1;ch31=1;ch32=1;function IIRtype_Callback(hObject, eventdata, handles)global ch1;global ch2;global ch31;global ch32;ch31=get(hObject,'Value');function IIRtype_CreateFcn(hObject, eventdata, handles)if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction e11_Callback(hObject, eventdata, handles)function e11_CreateFcn(hObject, eventdata, handles)if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); endfunction e12_Callback(hObject, eventdata, handles)function e12_CreateFcn(hObject, eventdata, handles)if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); endfunction e21_Callback(hObject, eventdata, handles)function e21_CreateFcn(hObject, eventdata, handles)if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); endfunction e22_Callback(hObject, eventdata, handles)function e22_CreateFcn(hObject, eventdata, handles)if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); endfunction e31_Callback(hObject, eventdata, handles)function e31_CreateFcn(hObject, eventdata, handles)if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); endfunction e32_Callback(hObject, eventdata, handles)function e32_CreateFcn(hObject, eventdata, handles)if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); endfunction e41_Callback(hObject, eventdata, handles)function e41_CreateFcn(hObject, eventdata, handles)if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); endfunction e42_Callback(hObject, eventdata, handles)function e42_CreateFcn(hObject, eventdata, handles)if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); endfunction generate_Callback(hObject, eventdata, handles)global ch1;global ch2;global ch31;global ch32;global typech;global w1p;global w1s;global w2p;global w2s;global rp;global rs;if ch1==1typech=ch1*100+ch2*10+ch31;elseif ch2==2typech=ch1*100+ch2*10+ch32;endw1p=str2num(get(handles.e11,'String'));w1s=str2num(get(handles.e12,'String'));w2p=str2num(get(handles.e21,'String'));w2s=str2num(get(handles.e22,'String'));rp=str2num(get(handles.e41,'String'));rs=str2num(get(handles.e42,'String')); Generate(handles);function FIRtype_Callback(hObject, eventdata, handles)global ch1;global ch2;global ch31;global ch32;ch32=get(hObject,'Value');function FIRtype_CreateFcn(hObject, eventdata, handles)if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); endfunction poptype_Callback(hObject, eventdata, handles)global ch1;global ch2;global ch31;global ch32;ch2=get(hObject,'Value');reprint(handles);function poptype_CreateFcn(hObject, eventdata, handles)if ispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); endfunction iirchoose_ButtonDownFcn(hObject, eventdata, handles)function firchoose_Callback(hObject, eventdata, handles)global ch1;global ch2;global ch31;global ch32;if(get(handles.firchoose,'Value')==0)set(handles.iirchoose,'Value',1);set(handles.FIRtype,'Visible','off');set(handles.IIRtype,'Visible','on');ch1=1;endif(get(handles.firchoose,'Value')==1)set(handles.iirchoose,'Value',0);set(handles.FIRtype,'Visible','on');set(handles.IIRtype,'Visible','off');ch1=2;endreprint(handles);function firchoose_ButtonDownFcn(hObject, eventdata, handles)function iirchoose_Callback(hObject, eventdata, handles)global ch1;global ch2;global ch31;global ch32;if(get(handles.iirchoose,'Value')==0)set(handles.firchoose,'Value',1);set(handles.FIRtype,'Visible','on');set(handles.IIRtype,'Visible','off');ch1=2;endif(get(handles.iirchoose,'Value')==1)set(handles.firchoose,'Value',0);set(handles.FIRtype,'Visible','off');set(handles.IIRtype,'Visible','on');ch1=1;endreprint(handles);function reprint(handles)global ch1;global ch2;global ch31;global ch32;temp=ch1*10+ch2;tempswitch tempcase {11,12}set(handles.add1,'Visible','off');set(handles.add2,'Visible','off');set(handles.e21,'Visible','off');set(handles.e22,'Visible','off');set(handles.pr,'Visible','on'); case{13,14}set(handles.add1,'Visible','on');set(handles.add2,'Visible','on');set(handles.e21,'Visible','on');set(handles.e22,'Visible','on');set(handles.pr,'Visible','on'); case{21,22},set(handles.add1,'Visible','off');set(handles.add2,'Visible','off');set(handles.e21,'Visible','off');set(handles.e22,'Visible','off');case{23,24},set(handles.add1,'Visible','on');set(handles.add2,'Visible','on');set(handles.e21,'Visible','on');set(handles.e22,'Visible','on');otherwisefprintf('switch error\n');endfunction Generate(handles)global ch1;global ch2;global ch31;global ch32;global typech;global w1p;global w1s;global w2p;global w2s;global rp;global rs;N=0;Wn=0;Wp=0;Wst=0;Rp=0;As=0;ftype='a';b=0;a=0;switch ch2case 1,ftype='low';case 2,ftype='high';case 3,ftype='bandpass';case 4,ftype='stop';endswitch ch2case {1,2}Wp=w1p;Wst=w1s;Rp=rp;As=rs;case {3,4}Wp=[w2p w1p];Wst=[w2s w1s];Rp=rp;As=rs;endswitch ch1 %IIR case 1,switch ch31case 1,[N,Wn]=buttord(Wp,Wst,Rp,As);[b,a]=butter(N,Wn,ftype); case 2,[N,Wn]=cheb1ord(Wp,Wst,Rp,As);[b,a]=cheby1(N,Rp,Wn,ftype);case 3,[N,Wn]=cheb2ord(Wp,Wst,Rp,As);[b,a]=cheby2(N,As,Wn,ftype); case 4,[N,Wn]=ellipord(Wp,Wst,Rp,As);[b,a]=ellip(N,Rp,As,Wn,ftype);endprint4(a,b,handles);case 2 %FIR tranbw=0;N=0;hw=0;Wn=(Wp+Wst)/2;switch ch32case 1, %Rectangular tranbw=1.8;N=ceil(tranbw/abs(w1s-w1p))+1;hw=boxcar(N);case 2, %Hanning tranbw=6.2;N=ceil(tranbw/abs(w1s-w1p))+1;hw=hanning(N);case 3, %Hamming tranbw=6.6;N=ceil(tranbw/abs(w1s-w1p))+1;hw=hamming(N);case 4, %Blackman tranbw=11;N=ceil(tranbw/abs(w1s-w1p))+1;hw=blackman(N);case 5, %KaiserN=(rs-7.95)/2.285/abs(w1s-w1p)+1;N=ceil(N);if (rs>=50)BTA=0.1102*(rs-8.7); elseif(rs>21)BTA=0.5842*(rs-21)^0.4+0.07886*(rs-21);elseBTA=0.5;endhw=kaiser(N,BTA);endh=fir1(N-1,Wn,ftype,hw');print4(h,N,handles);endfunction print4(a,b,handles)global ch1;if(ch1==1) %IIRw=[0:500]*pi/500;axes(handles.axes1);H=freqz(b,a,w);plot(handles.axes1,w/pi,abs(H)); xlabel('\Omega(\pi)');ylabel('|H(j\Omega)|');%axis ([0,0.5,0,1]);axes(handles.axes2);plot(handles.axes2,w/pi,20*log10((abs(H))/max(a bs(H))));xlabel('\Omega(\pi)');ylabel('|H(j\Omega)|,dB');% axis([0,0.5,-30,0]);axes(handles.axes3);plot(handles.axes3,w/pi,angle(H)/pi); xlabel('\Omega(\pi)');ylabel('Phase of H(j\Omega)(\pi)');%axis([0,0.5,-1,1]);t=0:30;axes(handles.axes4);h=impulse(b,a,t);stem(handles.axes4,t,h);xlabel('n');ylabel('Impulse Response');elseif(ch1==2) %FI RN=b;h=a;[H,w]=freqz(h,1);axes(handles.axes1);plot(handles.axes1,w/pi,abs(H)); xlabel('\Omega(\pi)');ylabel('|H(j\Omega)|');%axis ([0,0.5,0,1]);axes(handles.axes2);plot(handles.axes2,w/pi,20*log10((abs(H))/max(a bs(H))));xlabel('\Omega(\pi)');ylabel('|H(j\Omega)|,dB');% axis([0,0.5,-30,0]);axes(handles.axes3);plot(handles.axes3,w/pi,angle(H)/pi); xlabel('\Omega(\pi)');ylabel('Phase ofH(j\Omega)(\pi)');%axis([0,0.5,-1,1]);t=0:N-1;axes(handles.axes4);stem(handles.axes4,t,h);xlabel('n');ylabel('Impulse Response');end六、实验总结这次的数字信号处理实验非常有意义,让我学会了用计算机进行数字信号处理,计算各种参数,绘制出信号的波形,频谱。
数字信号处理课程设计指导一、课程设计目的:综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。
二、课程设计任务:每位同学在“四、课程设计内容”中的题目中任选一题或自行选择题目,每个题目最多4个人选。
自行选择的题目需经过指导老师确认。
班长于第五天把统计好的题目提交给指导老师。
三、课程设计时间安排:第一天:布置设计任务,讲解设计要求,提示设计要点。
第二~五天:选定题目,查阅资料(在图书馆或上网),弄清题目要求,提出解决方案。
)第五~十二天:根据题目要求,将理论推导与编程实现相结合,写出设计报告和ppt,可以申请去实验室进行课程设计,也可以自己安排。
第十三至十五天:答辩。
四、课程设计内容:1. 设计题目一:编程实现任意确定信号的频谱分析算法(1) 对给定的CEG和弦音音频文件取合适长度的采样记录点,然后进行频谱分析(信号的时域及幅频特性曲线要画出)。
(2) 分析CEG和弦音频谱特点,对该信号频谱能量相对较为集中的频带(分低、中、高频)实现滤波(分别使用低通,带通及高通),显示滤波后信号的时域和频域曲线,并对滤波后的信号与原信号的音频进行声音回放比较。
(3) 在低、中、高三个频带中,各滤出三个能量最集中的频簇,显示滤波后信号的时域和频域曲线。
(4) 任意选择几个滤出的频带(或频簇)进行时域信号重建(合成),与原信号的音频进行声音回放比较。
讨论:根据上述结果,分析什么是和弦音。
2. 设计题目二:设计并实现FIR数字滤波器的窗函数设计算法要求:输入数字滤波器指标,包括滤波器类型(低通、带通、带阻或高通等),通带截止频率,通带最大波动,阻带开始频率,阻带衰减,设计得到FIR滤波器,并画出设计得到的滤波器的增益曲线图(要有坐标标度)。
为了使编制的程序操作方便,设计处理系统的用户界面:在所设计的系统界面上可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择输入信号并显示相应的输出信号等。
本科实验报告实验名称: 数字信号处理实验实验1 利用DFT 分析信号频谱一、实验目的1.加深对DFT 原理的理解。
2.应用DFT 分析信号频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析现实过程现象及解决办法。
二、实验原理1、DFT 和DTFT 的关系有限长序列()x n 的离散时间傅里叶变换()j X e ω在频率区间(02)ωπ≤≤的N个等分点{(0),(1),(),(1)}x x x k x N-……上的N 个取样值可以由下式表示:2120()|()()01(21)N jkn j Nk k X e x n eX k k N πωωπ--====≤≤--∑由上式可知,序列()x n 的N 点DFT ()X k ,实际上就是()x n 序列的DTFT 在N 个等间隔频率点{(0),(1),(),(1)}X X X k X N -……上样本()X k 。
2、利用DFT 求DTFT方法1:由()X k 恢复出()j X eω的方法如图2.1所示:图 2.1.由 N 点DFT 恢复频谱DTFT 的流程由图2.1所示流程图可知:01()()()(22)j j nkn j n N n n k X e x n eX k W e N ωωω∞∞∞---=-∞=-∞=⎡⎤==-⎢⎥⎣⎦∑∑∑ 由式2-2可以得到12()()()(23)Nj k kx e X k N ωπφω==--∑其中()x φ为内插函数12sin()2()(24)sin()2N j N e N ωωφωω--=•-方法2:然而在实际MATLAB 计算中,上诉插值公式不见得是最好的方法。
由于DFT是DTFT 的取样值,其相邻的两个频率样本点的间距为2Nπ,所以如果我们增加数据的长度N ,使得得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样可以利用DFT 来近似计算DTFT 。
如果没有更多的数据,可以通过补零来增加数据长度。
北理工信号实验报告1. 实验目的本实验旨在通过对北理工信号实验的探索与学习,加深对数字信号处理的理解。
具体目标如下:- 了解信号处理的基本概念和基本原理;- 掌握数字信号的模拟与数字转换方法;- 学会使用MATLAB进行信号处理实验。
2. 实验原理信号处理是对信号进行采样、量化和编码等操作,将连续的模拟信号转换成离散的数字信号的过程。
数字信号由一系列的采样值组成,这些采样值是模拟信号在离散时间点上的近似值。
数字信号的采样率和量化位数是决定信号质量的重要因素。
实验中采集的信号是通过模拟方式产生的,通过模拟-数字转换芯片将模拟信号转换为数字信号。
然后使用MATLAB对这些数字信号进行采样、量化、编码和解码等操作。
3. 实验内容本次实验进行了如下几个实验操作和内容:- 使用函数`sin`生成一个频率为1000Hz,振幅为2的正弦信号;- 将生成的信号进行采样操作,并绘制采样后的信号图像;- 对采样信号进行离散傅立叶变换,并绘制频谱图像;- 对频谱进行低通滤波,并绘制滤波后的频谱图像;- 对滤波后的信号进行解码,并绘制解码后的信号图像;4. 实验结果与分析通过实验,我们得到了以下结果和分析:首先,我们生成了频率为1000Hz,振幅为2的正弦信号,并进行了采样操作。
通过绘制采样后的信号图像,可以看到信号的周期性,但呈现离散的特点。
然后,我们对采样信号进行离散傅立叶变换,得到了频谱图像。
通过观察频谱图像,我们可以清晰地看到信号的频率信息。
在频谱图像中,频率为1000Hz的正弦信号对应的频率分量明显。
接下来,我们对频谱进行低通滤波,滤除高频分量。
通过绘制滤波后的频谱图像,可以观察到高频分量被滤除了,只保留了低频分量。
最后,我们对滤波后的信号进行解码,并绘制解码后的信号图像。
通过观察解码后的信号图像,我们可以看到滤波后的信号与原始信号比较接近。
解码过程可以还原数字信号为模拟信号,使得信号能够以连续的形式传输和显示。
数字信号处理 课程设计一、课程目标知识目标:1. 理解数字信号处理的基本概念、原理和方法,掌握其数学表达和物理意义;2. 掌握数字信号处理中的关键算法,如傅里叶变换、快速傅里叶变换、滤波器设计等;3. 了解数字信号处理技术在通信、语音、图像等领域的应用。
技能目标:1. 能够运用所学知识分析数字信号处理问题,提出合理的解决方案;2. 能够运用编程工具(如MATLAB)实现基本的数字信号处理算法,解决实际问题;3. 能够对数字信号处理系统的性能进行分析和优化。
情感态度价值观目标:1. 培养学生对数字信号处理学科的兴趣,激发其探索精神和创新意识;2. 培养学生严谨的科学态度和良好的团队协作精神,提高沟通与表达能力;3. 增强学生对我国在数字信号处理领域取得成就的自豪感,树立为国家和民族发展贡献力量的信心。
课程性质:本课程为专业选修课,旨在使学生掌握数字信号处理的基本理论和方法,培养其解决实际问题的能力。
学生特点:学生具备一定的数学基础和编程能力,对数字信号处理有一定了解,但缺乏系统学习和实践经验。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,采用案例教学、互动讨论等教学方法,提高学生的参与度和实践能力。
通过本课程的学习,使学生能够达到上述课程目标,为后续相关课程和实际工作打下坚实基础。
二、教学内容1. 数字信号处理基础:包括数字信号、离散时间信号与系统、信号的采样与恢复等基本概念,使学生建立数字信号处理的基本理论框架。
教材章节:第一章 数字信号处理概述2. 傅里叶变换及其应用:介绍傅里叶变换的原理、性质和应用,以及快速傅里叶变换算法。
教材章节:第二章 傅里叶变换及其应用3. 数字滤波器设计:讲解数字滤波器的基本原理、设计方法和性能评价,包括IIR和FIR滤波器。
教材章节:第三章 数字滤波器设计4. 数字信号处理应用案例分析:通过通信、语音、图像等领域的实际案例,使学生了解数字信号处理技术的应用。
中南大学本科生课程设计任务书课程名称数字信号处理课程设计指导教师学院信息科学与工程学院专业班级通信工程班中 南 大 学课程设计任务书一、课程设计目的:1.全面复习课程所学理论知识,巩固所学知识重点和难点,将理论与实践很好地结合起来。
2.提高综合运用所学知识独立分析和解决问题的能力; 3.熟练使用一种高级语言进行编程实现。
二、课程设计内容课程设计选题组一:一. 已知有限长序列x[n]= [1,-3,4,2,0,-2], h[n]= [3,0,1,-1,2,1] 试编写程序:1) 实现它们的时域线性卷积2)利用DFT 性质,分别实现它们的圆周卷积和线性卷积。
二. 用DFT 对连续信号做谱分析:设连续信号()cos(200)sin(100)cos(50)a x t t t t πππ=++ 1)选取采样频率400, s f Hz =1/s T f =即对()a x t 进行采样;2)生成采样信号序列()()()a x n x nT w n =,()w n 是窗函数。
选取两种窗函数:矩形窗函数()()N w n R n =和Hamming 窗,后者可用其定义式生成。
3)截取时间长度为p T ,分别取三种时间长度0.04s 、4×0.04s 、8×0.04s 。
对上述过程生成的()x n 序列进行DFT ,画出它们的时域与频域波形,分析它们的频谱特性,观察不同长度、不同窗函数下的截断效应和谱间干扰,指出它们的区别并加以理论说明。
三.设计数字高通滤波器,要求 :ωp =0.5πrad , A p =1dB , ωs =0.4πrad, A S =30dB用双线性变换法设计数字滤波器,模拟滤波器采用巴特沃斯滤波器原型,T =1。
画出所设计的滤波器的幅度响应。
(要求:应尽量避免使用现成的工具箱函数)四. 数字音效处理1)读取或录制一段语音信号(或音乐信号),记录其采样频率。
2)分析声音信号频谱,画出其时域和频域波形3)实现声音信号的快放、慢放功能 4)实现对声音信号的放大和衰减功能5)实现声音信号的多重回声效果,给出加入多重回声后的信号频谱。
北理信号处理课程设计一、课程目标知识目标:1. 理解并掌握信号处理的基本概念、原理和方法,如傅里叶变换、滤波器设计等;2. 学会运用信号处理技术分析并解决实际问题,如信号的降噪、特征提取等;3. 了解信号处理在工程领域的应用,如通信、雷达、图像处理等。
技能目标:1. 能够运用所学知识设计简单的信号处理算法,并进行仿真验证;2. 掌握使用信号处理软件(如MATLAB)进行数据处理和分析的基本操作;3. 培养团队协作和沟通能力,通过小组项目实践,提高解决实际问题的能力。
情感态度价值观目标:1. 培养对信号处理学科的兴趣和热情,激发学生主动探索科学问题的精神;2. 树立正确的学术态度,遵循学术规范,尊重知识产权;3. 增强学生的国家意识,了解我国在信号处理领域的发展状况,为我国科技创新贡献力量。
本课程针对北理信号处理课程设计,结合大三年级学生的特点,注重理论与实践相结合,培养学生具备扎实的理论基础和较强的实际操作能力。
课程目标旨在使学生通过本章节的学习,能够全面掌握信号处理的基本知识,具备解决实际问题的能力,同时培养良好的学术素养和团队协作精神。
为实现课程目标,后续教学设计和评估将围绕具体学习成果展开。
二、教学内容本章节教学内容主要包括以下几部分:1. 信号处理基本概念:信号的定义、分类及特性;信号的采样与恢复;信号的时域与频域分析。
2. 傅里叶变换及其应用:傅里叶级数、连续傅里叶变换、离散傅里叶变换;傅里叶变换在信号处理中的应用。
3. 滤波器设计:数字滤波器的基本原理、类型及设计方法;低通、高通、带通和带阻滤波器的设计与应用。
4. 信号处理应用案例分析:通信系统中的信号处理、雷达信号处理、图像处理等。
5. 小组项目实践:运用所学知识,针对实际问题进行信号处理算法设计、仿真验证及分析。
教学内容按照以下进度安排:1. 第1周:信号处理基本概念及信号的采样与恢复;2. 第2周:信号的时域与频域分析;3. 第3周:傅里叶变换及其应用;4. 第4周:滤波器设计;5. 第5-6周:信号处理应用案例分析及小组项目实践。
北理工微波A课程设计一、课程目标知识目标:1. 理解微波的基本概念,掌握微波的传播特性及其在通信、雷达等领域中的应用。
2. 掌握微波电路的基本原理,包括微波传输线、微波网络、微波元件等知识。
3. 了解微波A课程中涉及的关键技术,如微波信号的生成、放大、调制、解调等。
技能目标:1. 能够运用所学知识分析微波电路的工作原理,具备设计简单微波电路的能力。
2. 能够熟练使用相关软件工具对微波电路进行仿真分析,提高实际操作能力。
3. 培养学生团队协作能力,通过项目实践,掌握微波系统设计与调试的基本方法。
情感态度价值观目标:1. 培养学生对微波技术的兴趣,激发学生探索科学、追求真理的精神。
2. 增强学生的国家使命感,认识到微波技术在我国国防、科技发展中的重要作用。
3. 培养学生严谨、务实的学习态度,提高学生的自主学习能力和创新意识。
本课程针对北理工高年级本科生,课程性质为专业核心课。
在教学过程中,注重理论与实践相结合,充分调动学生的主观能动性,提高学生分析问题和解决问题的能力。
课程目标的设定旨在使学生掌握微波技术的基本理论和方法,为从事相关领域的研究和工程应用打下坚实基础。
通过课程学习,使学生能够达到上述具体、可衡量的学习成果。
二、教学内容教学内容分为八个部分,确保科学性和系统性:1. 微波基础理论:包括电磁波基本方程、微波传播特性、传输线理论等,对应教材第一章。
2. 微波电路元件:介绍微波传输线、微波网络、阻抗匹配、微波元件等,对应教材第二章。
3. 微波信号处理:涵盖微波信号的生成、放大、调制、解调等,对应教材第三章。
4. 微波测量技术:讲解微波测量原理、微波测量仪器及实际应用,对应教材第四章。
5. 微波天线:介绍天线基本理论、微波天线设计及性能分析,对应教材第五章。
6. 微波器件与电路设计:包括微波放大器、振荡器、混频器等设计方法,对应教材第六章。
7. 微波通信与雷达系统:分析微波在通信、雷达等领域的应用,对应教材第七章。
北理工信号课程设计一、课程目标知识目标:1. 理解并掌握信号与系统的基本概念,包括信号分类、基本信号及其性质;2. 学会使用数学工具描述和分析信号与系统的特性,如傅里叶变换、拉普拉斯变换等;3. 掌握线性时不变系统的特性,理解卷积积分及其在信号处理中的应用。
技能目标:1. 能够运用所学知识对实际信号进行处理和分析,如滤波、调制等;2. 能够设计简单的信号处理算法,并使用计算机仿真实现;3. 培养良好的实际操作能力,包括使用信号发生器、示波器等实验设备。
情感态度价值观目标:1. 培养学生对信号与系统学科的兴趣,激发学生探索未知、解决问题的热情;2. 培养学生的团队合作精神,提高沟通与协作能力;3. 增强学生的国防意识,使其认识到信号与系统在国防科技领域的重要应用。
本课程针对北理工高年级本科生,结合课程性质、学生特点和教学要求,将目标分解为具体的学习成果。
在教学过程中,注重理论与实践相结合,以培养学生实际操作能力和创新精神为核心。
通过本课程的学习,使学生能够熟练运用所学知识解决实际问题,为后续相关课程和未来从事相关工作奠定坚实基础。
二、教学内容1. 信号与系统基本概念:信号分类、基本信号及其性质、信号的运算与变换;教材章节:第一章 信号与系统概述2. 数学工具描述与分析:傅里叶级数、傅里叶变换、拉普拉斯变换、Z变换;教材章节:第二章 傅里叶级数与变换,第三章 拉普拉斯变换与Z变换3. 线性时不变系统:系统的性质、卷积积分、差分方程;教材章节:第四章 线性时不变系统4. 信号处理与分析:滤波器设计、调制与解调、采样与重建;教材章节:第五章 信号处理技术,第六章 采样与重建5. 实践环节:使用信号发生器、示波器等设备进行信号处理实验;教材章节:第七章 信号与系统实验教学内容安排与进度:第一周:信号与系统基本概念第二周:傅里叶级数与傅里叶变换第三周:拉普拉斯变换与Z变换第四周:线性时不变系统第五周:滤波器设计与调制解调第六周:采样与重建第七周:实践环节第八周:复习与考核本教学内容根据课程目标,结合教材内容,科学系统地组织与安排。
数字信号处理基于MATLAB及GUI的DSP软件系统班级:05941401姓名:xxx学号:112014xxxx(一)设计原理利用matlab及其自带的GUI系统制作可视化界面,通过对界面内各部件的回调函数的编写,实现各种内部功能。
1.产生信号利用popupmenu的value值配合switch/case语句产生不同的信号。
并获取输入的频率以及加噪噪声信噪比,代入产生的信号中。
①方波、三角波②单个正弦信号、线性调频信号(Chirp信号)③多个正弦信号④高斯白噪声⑤单个正弦波+高斯白噪声⑥多个正弦波+高斯白噪声⑦Chirp信号+高斯白噪声2.谱分析依旧用switch/case语句。
(1)频谱分析:求信号y的FFT,得Y,对Y求绝对值abs。
以方波信号的频谱为例:(2)功率谱分析:求信号y的FFT,得Y,对Y的幅值平方,除以采样点数N,再求其10log()值。
以单个正弦波+高斯白噪声为例:3.滤波器通过下拉菜单的value值与switch/case语句控制产生何种滤波器。
(1)低通滤波器获取输入的通带截止频率与阻带截止频率,产生巴特沃斯低通滤波器。
并用filter函数对产生信号进行滤波处理。
(2)带通滤波器获取输入的上限截止频率与下限截止频率,产生切比雪夫I型带通滤波器。
并用filter函数对产生信号进行滤波处理。
(3)高通滤波器获取输入的通带截止频率与阻带截止频率,产生切比雪夫高通滤波器。
并用filter函数对产生信号进行滤波处理。
(二)设计方案1.软件系统框图2.程序流程框图1.产生信号模块可以编辑信号的频率,需要加噪时,可以选择噪声强度(信噪比),对于多正弦波的合成,可以自定义各正弦波的频率(最多四个)。
可以显示产生的信号的时域波形。
2.频谱功率谱模块对产生的信号进行频谱分析,对加噪的信号另进行功率谱分析。
默认采样频率为1000Hz,因此产生信号频率应尽量选择在500Hz以下。
3.滤波模块通过设置截止频率产生不同形式的滤波器,显示该滤波器的幅频特性曲线,并对产生的信号进行滤波,显示滤波后波形。
本科实验报告实验名称:信号与系统实验实验一信号的时域描述与运算一、实验目的①掌握信号的MATLAB表示及其可视化方法。
②掌握信号基本时域运算的MATLAB实现方法。
③利用MATLAB分析常用信号,加深对信号时域特性的理解。
二、实验原理与方法1. 连续时间信号的MATLAB表示连续时间信号指的是在连续时间范围内有定义的信号,即除了若干个不连续点外,在任何时刻信号都有定义。
在MATLAB中连续时间信号可以用两种方法来表示,即向量表示法和符号对象表示法。
从严格意义上来说,MATLAB并不能处理连续时间信号,在MATLAB中连续时间信号是用等时间间隔采样后的采样值来近似表示的,当采样间隔足够小时,这些采样值就可以很好地近似表示出连续时间信号,这种表示方法称为向量表示法。
表示一个连续时间信号需要使用两个向量,其中一个向量用于表示信号的时间范围,另一个向量表示连续时间信号在该时间范围内的采样值。
例如一个正弦信号可以表示如下:>> t=0:0.01:10; >> x=sin(t);利用plot(t,x)命令可以绘制上述信号的时域波形,如图1所示。
如果连续时间信号可以用表达式来描述,则还可以采用符号表达式來表示信号。
例如对于上述正弦信号,可以用符号对象表示如下:>> x=sin(t); >> ezplot(X);利用ezplot(x)命令可以绘制上述信号的时域波形常用的信号产生函数-1-0.8-0.6-0.4-0.200.20.40.60.81Time(seconds)图1 利用向量表示连续时间信号2.连续时间信号的时域运算对连续时间信号的运算包括两信号相加、相乘、微分、积分,以及位移、反转、尺度变换(尺度伸缩)等。
1)相加和相乘信号相加和相乘指两信号对应时刻的值相加和相乘,对于两个采用向量表示的可以直接使用算术运算的运算符“+”和“*”来计算,此时要求表示两信号的向量时间范围和采样间隔相同。
数字信号处理
基于MATLAB及GUI的DSP软件系
统
班级:05941401
姓名:xxx
学号:112014xxxx
(一)设计原理
利用matlab及其自带的GUI系统制作可视化界面,通过对界面内各部件的回调函数的编写,实现各种内部功能。
1.产生信号
利用popupmenu的value值配合switch/case语句产生不同的信号。
并获取输入的频率以及加噪噪声信噪比,代入产生的信号中。
①方波、三角波
②单个正弦信号、线性调频信号(Chirp信号)
③多个正弦信号
④高斯白噪声
⑤单个正弦波+高斯白噪声
⑥多个正弦波+高斯白噪声
⑦Chirp信号+高斯白噪声
2.谱分析
依旧用switch/case语句。
(1)频谱分析:求信号y的FFT,得Y,对Y求绝对值abs。
以方波信号的频谱为例:
(2)功率谱分析:求信号y的FFT,得Y,对Y的幅值平方,除以采样点数N,再求其10log()值。
以单个正弦波+高斯白噪声为例:
3.滤波器
通过下拉菜单的value值与switch/case语句控制产生何种滤波器。
(1)低通滤波器
获取输入的通带截止频率与阻带截止频率,产生巴特沃斯低通滤波器。
并用filter 函数对产生信号进行滤波处理。
(2)带通滤波器
获取输入的上限截止频率与下限截止频率,产生切比雪夫I型带通滤波器。
并用filter 函数对产生信号进行滤波处理。
(3)高通滤波器
获取输入的通带截止频率与阻带截止频率,产生切比雪夫高通滤波器。
并用filter 函数对产生信号进行滤波处理。
1.软件系统框图
2.程序流程框图
传递信号
(三)软件视图
1.产生信号模块
可以编辑信号的频率,需要加噪时,可以选择噪声强度(信噪比),对于多正弦波的合成,可以自定义各正弦波的频率(最多四个)。
可以显示产生的信号的时域波形。
2.频谱功率谱模块
对产生的信号进行频谱分析,对加噪的信号另进行功率谱分析。
默认采样频率为1000Hz,因此产生信号频率应尽量选择在500Hz以下。
3.滤波模块
通过设置截止频率产生不同形式的滤波器,显示该滤波器的幅频特性曲线,并对产生的信号进行滤波,显示滤波后波形。
(四)软件说明
1.产生信号及谱分析
(1)请先输入欲产生信号的频率(单信号或多信号),或是加噪噪声的信噪比,后在下拉菜单内选择产生信号的类型。
选定后,界面内会直接显示该信号的时域波形、频谱(功率谱)。
(2)Chirp信号已默认各参数值,无法设置参数。
(3)高斯白噪声选项已设置默认噪声强度为1dBw。
(4)对于多个正弦信号叠加的信号,当频率数少于4时,空的框内必须填0。
(5)不加噪信号只产生频谱,加噪信号既产生频谱也产生功率谱,当先产生加噪信号,后产生不加噪信号时,功率谱界面依旧保持原图像,此处有bug。
2.滤波
(1)若欲进行低通或高通滤波,请在上方两个框内输入通带截止频率及阻带截止频率,然后再在下拉菜单内选择滤波器类型(低通/高通)。
(2)若欲进行带通滤波,请在下方两个框内输入上限截止频率及下限截止频率,然后再在下拉菜单内选择带通滤波器。
(3)选定滤波器类型后,界面内直接出现滤波后的信号图像,以及滤波器的幅频特性曲线。
(五)运行结果
(1)产生2Hz方波、三角波、单一正弦波
(2)产生chirp信号
(3)产生信噪比20dBw的加噪正弦波、chirp信号正弦:
Chirp:
(4)产生一个由50Hz,120Hz,180Hz的正弦波叠加成的信号,并对其进行加噪,信噪比为20dBw。
并使用截止频率为100Hz的低通滤波器,100-150Hz的带通滤波器,截止频率为150Hz的高通滤波器对其滤波处理。
低通:
高通:
带通:
如有侵权请联系告知删除,感谢你们的配合!。