信号课程设计报告

信号课程设计报告
信号课程设计报告

信号与线性系统课程设计报告课题五数字语音信号分析系统设计

班级:通信C111

姓名:刘晓泽

学号:115919

成绩:

指导教师:王霞

日期:2014年1月8日

课题五数字语音信号分析系统设计

摘要:用matlab对语音信号进行处理,是一项很重要,实用度很广的方法,本课题主要研究语音信号初步分析的软件实现方法、滤波器的设计及应用。即:对原始语音信号进行读取;对语音信号进行快速傅里叶变换,分析频谱,画出时域和频域波形;比较分析加噪声前后的语音信号,采用IIR低通滤波器,进行滤波,时域、频域分析比较,并回放声音;最后采用GUI实现以上功能。选作部分,进行信号的分帧,调用enframe函数进行,部分时域参数计算;采用LabVIEW进行仿真设计,实现以上功能,给出系统的前面板和程序框图,并记录仿真结果。

关键词:低通滤波器,FFT,噪声,GUI,LabVIEW

1课程设计的目的、意义

1.1课程设计目的

(1)掌握Matlab软件的特点和使用方法。

(2)掌握利用Matlab分析信号和系统的时域、频域特性的方法;

(3)掌握数字滤波器的设计方法及应用。

(4)了解语音信号的特性及分析方法。

(5)了解LabVIEW虚拟仪器的特点,了解采用LabVIEW进行仿真的方法。

(6)通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。

1.2 课程设计意义

语音信号分析是一门比较实用的电子工程的专业工程,语音是人类获取信息的重要来源和利用信息的重要手段,通过语音相互传递信息是人类最重要的基本功能之一。语言是人类特有的功能,语音信号处理是研究数字信号处理技术对语音信号进行处理的一门学科,它是一门新兴的学科,同时又是综合性的多学科领域设计面很广的交叉学科。语音信号处理越来收到人们的广泛的研究,学会用matlaB进行语音信号的处理既简便又可以实现多种功能,是一种应该掌握的技术。

2 设计任务及技术指标

2.1设计任务

利用Matlab设计一个简单的数字语音信号分析系统,利用GUI设计友好的图形用户界面,实现数字语音信号读取,时域波形显示,频谱分析,设计数字滤波器滤除噪声,对语音信号的参数进行计算分析等功能。具体任务如下:

(1)对原始数字语音信号进行读取。

(2)对原始数字语音信号加入干扰噪声,画出原始信号及带噪信号的时域波形,利用FFT进行频域分析,画出相应波形。

(3)针对数字语音信号频谱及噪声频率,设计合适的数字滤波器滤除噪声。

(4)对噪声滤除前后的语音进行分析。

(5)设计图形用户界面(包含以上功能)。

选作:

(1)对语音信号时域参数进行计算。

(2)采用LabVIEW进行仿真设计,实现系统的功能,要求给出系统的前面板和框图,并记录仿真结果。

2.2设计技术指标

低通滤波器的技术指标wp,ws,RP,AS;采样频率的技术指标FS

3 设计方案论证

3.1傅里叶变换的选择

DFT和FFT之间,我选择了FFT,FFT本身在matlab中存在,简单了很多。

3.2滤波器的选择

在选择合适的滤波器时我选择了IIR。相对FIR滤波器来说,IIR数字滤波器是利用模拟滤波器成熟的理论及设计图表进行设计的,保留了一些典型模拟滤波器优良的幅度特性。

4 设计内容

4.1必做部分

利用MATLAB软件对语音信号进行频谱分析;并对语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声。

(1)根据设计要求分析系统功能,掌握设计中所需理论及设计原理(抽样频率、量化位数的概念,抽样定理;信号的FFT分析;数字滤波器设计原理和方法,各种不同类型滤波器的性能比较)。

(2)对语音信号做FFT,进行频谱分析,画出信号的时域波形图和频谱图。

(3)对语音信号加入干扰噪声,对语音信号进行回放(利用sound函数),感觉加噪前后声音的变化。对其做FFT,进行频谱分析,比较加噪前后语音信号的波形及频谱,对所得结果进行分析。

(4)根据带噪语音信号的特点,设计合适的数字滤波器,绘制所设计滤波器的幅频和相频特性。用所设计的滤波器对带噪语音信号进行滤波,记录处理过程中所得各种波形及频谱图。

(5)对语音信号进行回放,感觉滤波前后声音的变化。比较滤波前后语音信号的波形及频谱,对所得结果和滤波器性能进行分析。

(6)利用GUI设计友好的图形用户界面。要求主界面上包括语音的波形显示及播放按钮,滤波器参数设置框及滤波功能按钮;滤波前后语音信号时域波形及频谱的显示,滤波器幅频特性的显示;语音信号时域参数计算等功能。其中波形及频谱显示可包含在主界面中,也可在新建图形窗口中完

成。

4.2 选作部分

(1) 语音信号部分时域参数计算。对语音信号进行分帧,分别取浊音帧和清音帧计算短时能量和短时平均过零率等参数,并对结果进行比较分析。

(2)采用LabVIEW进行仿真设计,实现系统的功能,包括语音文件的读取及播放、滤波前后语音信号时域波形及频谱的显示、滤波器设计、滤波器幅频特性的显示等功能,要求给出系统的前面板和程序框图,并记录仿真结果。

5 实验结果与分析

(1)对语音信号进行读取,画出原始信号的时域波形和频域波形

[y,fs,nbits]=wavread('jia1.wav')

subplot(2,1,1);

plot(y);

title('原始信号的时域波形');

Y=fft(y);

subplot(2,1,2);

plot(abs(Y));

title('原始信号的频域波形');

分析:

(2)对原始信号加入单一干扰噪声和白噪声,并进行回放,感觉加噪声前后的变化,画出加入噪声信号的时域波形和频域波形,对结果进行分析。

n=0:length(y)-1;

y2=y'+0.01*cos(0.9*pi*n);

sound(y2,16000);

subplot(2,1,1)

plot(y2)

title('加噪声后时域波形')

Y2=fft(y2);

subplot(2,1,2)

plot(abs(Y2))

title('加噪声后频域波形')

n=length(y);

y3=y'+0.01*randn(1,n);

sound(y3,16000);

subplot(2,1,1);

plot(y3);

title('加噪声后时域波形');

subplot(2,1,2);

Y3=fft(y3);

plot(abs(Y3));

title('加噪声后频域波形');

分析:

(3)根据带噪音信号的特点,设计合适的数字滤波器,绘制所设计滤波器的幅频特性和相频特性。wp=2000*2*pi;

ws=3500*2*pi;

Rp=3,Rs=25;

Fs=16000;

Nn=128.0;

[N,wn]=buttord(wp,ws,Rp,Rs,'s');

[z,p,k]=buttap(N);

[Bap,Aap]=zp2tf(z,p,k);

[b,a]=lp2lp(Bap,Aap,wn);

[bz,az]=impinvar(b,a,Fs);

figure;

[h,f]=freqz(bz,az,Nn,Fs);

subplot(2,1,1);plot(f,20*log10(abs(h)));

xlabel('频率/Hz');ylabel('振幅');

grid on;

subplot(2,1,2);plot(f,180/pi*unwrap(angle(h))); xlabel('频率/Hz');ylabel('相位/^o');

grid on;

wp=2*pi*2000,ws=2*pi*3500,Rp=2,As=60;

[N1,Wp1]=cheb1ord(wp,ws,Rp,As,'s');

[B1,A1]=cheby1(N1,Rp,Wp1,'s');

Fs=18000;

Nn=128;

[bz,az]=impinvar(B1,A1,Fs);

figure;

[h,f]=freqz(bz,az,Nn,Fs);

subplot(2,1,1);

plot(f,20*log10(abs(h)));

subplot(2,1,2);

plot(f,180/pi*unwrap(angle(h)));

分析:

(4)用所设计的滤波器进行滤波,并画出时域和频域波形,对结果进行分析。y1=filter(bz,az,y2);

sound(y1,16000);

subplot(2,1,1);

plot(y1);

title('低通滤波后的时域波形');

Y1=fft(y1);

subplot(2,1,2);

plot(abs(Y1));

title('低通滤波后的频域波形');

p1=filter(bz,az,y2);

sound(p1,16000);

subplot(2,1,1);

plot(p1);

title('切比雪夫滤波后的时域波形'); P1=fft(y1);

subplot(2,1,2);

plot(abs(P1));

title('切比雪夫滤波后的频域波形');

分析:

(5)对语音信号进行分帧,分别对浊音帧和清音帧的短时能量和平均过零率进行计算,并对结果进行分析。

function f=enframe(x,len,inc)

nx=length(x(:));

if(nargin<3)

inc=len;

end

nf=fix((nx-len+inc)/inc);

f=zeros(nf,len);

indf=inc*(0:(nf-1)).';

inds=(1:len);

f(:)=x(indf(:,ones(1,len))+inds(ones(nf,1),:));

f=f';

F1=enframe(y,200);

eng=sum(F1.^2);

subplot(2,2,1);plot(eng);xlabel('帧');ylabel('短时能量');title('N=200'); F2=enframe(y,150);

eng=sum(F2.^2);

subplot(2,2,2);plot(eng);xlabel('帧');ylabel('短时能量');title('N=150'); F3=enframe(y,100);

eng=sum(F3.^2);

subplot(2,2,3);plot(eng);xlabel('帧');ylabel('短时能量');title('N=100'); F4=enframe(y,50);

eng=sum(F4.^2);

subplot(2,2,4);plot(eng);xlabel('帧');ylabel('短时能量');title('N=50');

分析:

F1=enframe(y,200);

S1=F1>=0;

K1=diff(S1);

Z1=sum(abs(K1))./2;

subplot(2,2,1);plot(Z1);xlabel('帧');ylabel('短时平均过零率');title('N=200'); F2=enframe(y,150);

S2=F2>=0;

K2=diff(S2);

Z2=sum(abs(K2))./2;

subplot(2,2,2);plot(Z2);xlabel('帧');ylabel('短时平均过零率');title('N=150'); F3=enframe(y,100);

S3=F3>=0;

K3=diff(S3);

Z3=sum(abs(K3))./2;

subplot(2,2,3);plot(Z3);xlabel('帧');ylabel('短时平均过零率');title('N=100'); F4=enframe(y,50);

S4=F4>=0;

K4=diff(S4);

Z4=sum(abs(K4))./2;

subplot(2,2,4);plot(Z4);xlabel('帧');ylabel('短时平均过零率');title('N=50');

分析:

(6)设计图形用户界面

function varargout = gui(varargin)

% GUI M-file for gui.fig

% GUI, by itself, creates a new GUI or raises the existing

% singleton*.

%

% H = GUI returns the handle to a new GUI or the handle to

% the existing singleton*.

%

% GUI('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in GUI.M with the given input arguments.

%

% GUI('Property','Value',...) creates a new GUI or raises the

% existing singleton*. Starting from the left, property value pairs are % applied to the GUI before gui_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property application % stop. All inputs are passed to gui_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 gui

% Last Modified by GUIDE v2.5 02-Jan-2014 17:57:41

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @gui_OpeningFcn, ...

'gui_OutputFcn', @gui_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 gui is made visible.

function gui_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 gui (see VARARGIN)

% Choose default command line output for gui

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes gui wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = gui_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)

% 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) global y

[filename,pathname]=uigetfile('*.wav','打开文件');

str=strcat(pathname,filename);

y=wavread(str);

axes(handles.axes1);

plot(y);

Y=fft(y);

axes(handles.axes2);

plot(abs(Y));

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

% 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) global y

sound(y,16000);

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles)

% 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) global y

global y2

global h

n=0:length(y)-1;

y2=y'+h*cos(0.9*pi*n);

axes(handles.axes3);

plot(y2);

Y2=fft(y2);

axes(handles.axes4);

plot(abs(Y2));

sound(y2,16000);

% --- Executes on button press in pushbutton4.

function pushbutton4_Callback(hObject, eventdata, handles)

% 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)

global z

global y2

global y1

global q1

global q3

global q5

global q7

global h

if z==1

batewosi;

else

qiebixuefu;

end

% --- Executes on selection change in lbq.

function lbq_Callback(hObject, eventdata, handles)

% hObject handle to lbq (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns lbq contents as cell array % contents{get(hObject,'Value')} returns selected item from lbq

global z

z=get(handles.lbq,'value')

% --- Executes during object creation, after setting all properties.

function lbq_CreateFcn(hObject, eventdata, handles)

% hObject handle to lbq (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit1_Callback(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text

% str2double(get(hObject,'String')) returns contents of edit1 as a double

% --- Executes during object creation, after setting all properties.

function edit1_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit2_Callback(hObject, eventdata, handles)

% hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit2 as text

% str2double(get(hObject,'String')) returns contents of edit2 as a double global q1

q=get(handles.edit2,'String');

q1=str2num(q);

% --- Executes during object creation, after setting all properties.

function edit2_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes on button press in pushbutton5.

function pushbutton5_Callback(hObject, eventdata, handles)

% 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)

global y

global y3

n=length(y);

y3=y'+0.01*randn(1,n);

axes(handles.axes3);

plot(y3);

Y3=fft(y3);

axes(handles.axes4);

plot(abs(Y3));

sound(y3,16000);

function edit3_Callback(hObject, eventdata, handles)

% hObject handle to edit3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit3 as text

% str2double(get(hObject,'String')) returns contents of edit3 as a double global q3

q2=get(handles.edit3,'String');

q3=str2num(q2);

% --- Executes during object creation, after setting all properties.

function edit3_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit4_Callback(hObject, eventdata, handles)

% hObject handle to edit4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit4 as text

% str2double(get(hObject,'String')) returns contents of edit4 as a double global q5

q4=get(handles.edit4,'String');

q5=str2num(q4);

% --- Executes during object creation, after setting all properties.

function edit4_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit5_Callback(hObject, eventdata, handles)

% hObject handle to edit5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit5 as text

% str2double(get(hObject,'String')) returns contents of edit5 as a double global q7

q6=get(handles.edit5,'String');

q7=str2num(q6);

% --- Executes during object creation, after setting all properties.

function edit5_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit6_Callback(hObject, eventdata, handles)

% hObject handle to edit6 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit6 as text

% str2double(get(hObject,'String')) returns contents of edit6 as a double global h

q8=get(handles.edit6,'String');

h=str2num(q8);

% --- Executes during object creation, after setting all properties.

function edit6_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit6 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

信号分析课程设计报告书

信号分析课程设计 信号系统的时域分析 编程实现的卷积积分或卷积和 一、课程设计题目: 基于 MATLAB 的连续时间LTI 系统的时域分析 二、基本要求: ① 掌握连续时不变信号处理的基本概念、基本理论和基本方法; ② 学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法; ③ 学会用 MATLAB 对信号进行分析和处理; ④ 编程实现卷积积分或卷积和,零输入响应,零状态响应; ⑤ 撰写课程设计论文,用信号处理基本理论分析结果。 三、设计方法与步骤: 一般的连续时间系统分析有以下几个步骤: ①求解系统的零输入响应; ②求解系统的零状态响应; ③求解系统的全响应; ④分析系统的卷积;⑤画出它们的图形. 下面以具体的微分方程为例说明利用MATLAB 软件分析系统的具体方法. 1.连续时间系统的零输入响应 描述n 阶线性时不变(LTI )连续系统的微分方程为: 已知y 及各阶导数的初始值为y(0),y (1)(0),… y (n-1)(0), 求系统的零输入响应。 建模 当LIT 系统的输入为零时,其零输入响应为微分方程的其次解(即令微分方程的等号右端为零),其形式为(设特征根均为单根) 其中p 1,p 2,…,p n 是特征方程a 1λ n +a 2λn-1+…+a n λ+a n =0的根,它们可以 用root(a)语句求得。各系数 由y 及其各阶导数的初始值来确定。对此有 1121111n n m n n m m n n m d y d y dy d u du a a a a y b b b u dt dt dt dt dt -++-++?????++=+????++1212()n p t p t p t n y t C e C e C e =++????+120n C C C y ++????+=11220 n n p C p C p C Dy ++????+=

数字信号处理课程设计报告

抽样定理的应用 摘要 抽样定理表示为若频带宽度有限的,要从抽样信号中无失真地恢复原信号,抽样频率应大于2倍信号最高频率。抽样频率小于2倍频谱最高频率时,信号的频谱有混叠。抽样频率大于2倍频谱最高频率时,信号的频谱无混叠。 语音信号处理是研究用数字信号处理技术和语音学知识对语音 信号进行处理的新兴学科,是目前发展最为迅速的学科之一,通过语音传递信息是人类最重要,最有效,最常用和最方便的交换信息手段,所以对其的研究更显得尤为重要。 Matlab语言是一种数据分析和处理功能十分强大的计算机应用 软件,它可以将声音文件变换成离散的数据文件,然后用起强大的矩阵运算能力处理数据。这为我们的本次设计提供了强大并良好的环境! 本设计要求通过利用matlab对模拟信号和语音信号进行抽样,通过傅里叶变换转换到频域,观察波形并进行分析。 关键词:抽样Matlab

目录 一、设计目的: (2) 二、设计原理: (2) 1、抽样定理 (2) 2、MATLAB简介 (2) 3、语音信号 (3) 4、Stem函数绘图 (3) 三、设计内容: (4) 1、已知g1(t)=cos(6πt),g2(t)=cos(14πt),g3(t)=cos(26πt),以抽样频率 fsam=10Hz对上述三个信号进行抽样。在同一张图上画出g1(t),g2(t),g3(t)及其抽样点,对所得结果进行讨论。 (4) 2、选取三段不同的语音信号,并选取适合的同一抽样频率对其进 行抽样,画出抽样前后的图形,并进行比较,播放抽样前后的语音。 (6) 3、选取合适的点数,对抽样后的三段语音信号分别做DFT,画图 并比较。 (10) 四、总结 (12) 五、参考文献 (13)

信号与系统课程设计报告材料

课程设计报告 课程名称信号与系统课程设计指导教师 设计起止日期 学院信息与通信工程 专业电子信息工程 学生 班级/学号 成绩 指导老师签字

目录 1、课程设计目的 (1) 2、课程设计要求 (1) 3、课程设计任务 (1) 4、课程设计容 (1) 5、总结 (11) 参考文献 (12) 附录 (12)

1、课程设计目的 “信号与系统”是一门重要的专业基础课,MATLAB作为信号处理强有力的计算和分析工具是电子信息工程技术人员常用的重要工具之一。本课程设计基于MATLAB完成信号与系统综合设计实验,以提高学生的综合应用知识能力为目标,是“信号与系统”课程在实践教学环节上的必要补充。通过课设综合设计实验,激发学生理论课程学习兴趣,提高分析问题和解决问题的能力。 2、课程设计要求 (1)运用MATLAB编程得到简单信号、简单信号运算、复杂信号的频域响应图; (2)通过对线性时不变系统的输入、输出信号的时域和频域的分析,了解线性时不变系统的特性,同时加深对信号频谱的理解。 3、课程设计任务 (1)根据设计题目的要求,熟悉相关容的理论基础,理清程序设计的措施和步骤; (2)根据设计题目的要求,提出各目标的实施思路、方法和步骤; (3)根据相关步骤完成MATLAB程序设计,所编程序应能完整实现设计题目的要求; (4)调试程序,分析相关理论; (5)编写设计报告。 4、课程设计容 (一)基本部分 (1)信号的时频分析 任意给定单频周期信号的振幅、频率和初相,要求准确计算出其幅度谱,并准确画出时域和频域波形,正确显示时间和频率。 设计思路: 首先给出横坐标,即时间,根据设定的信号的振幅、频率和初相,写出时域波形的表达式;然后对时域波形信号进行傅里叶变化,得到频域波形;最后使用plot函数绘制各个响应图。 源程序: clc; clear; close all; Fs =128; % 采样频率 T = 1/Fs; % 采样周期 N = 600; % 采样点数 t = (0:N-1)*T; % 时间,单位:S x=2*cos(5*2*pi*t);

数字信号处理课程设计报告 杨俊

课程设计报告 课程名称数字信号处理 课题名称数字滤波器设计及在语音信号分析中的应用 专业通信工程 班级1281 学号201213120101 姓名杨俊 指导教师彭祯韩宁 2014年12月5日

湖南工程学院 课程设计任务书 课程名称数字信号处理 课题数字滤波器设计 及在语音信号分析中的应用专业班级通信工程1281班 学生姓名杨俊 学号201213120101 指导老师彭祯韩宁 审批 任务书下达日期2014 年12月5日 任务完成日期2014 年12月13日

《数字信号处理》课程设计任务书 一、课程设计的性质与目的 《数字信号处理》课程是通信专业的一门重要专业基础课,是信息的数字化处理、存储和应用的基础。通过该课程的课程设计实践,使学生对信号与信息的采集、处理、传输、显示、存储、分析和应用等有一个系统的掌握和理解;巩固和运用在《数字信号处理》课程中所学的理论知识和实验技能,掌握数字信号处理的基础理论和处理方法,提高分析和解决信号与信息处理相关问题的能力,为以后的工作和学习打下基础。 数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。 二、课程设计题目 题目1:数字滤波器设计及在语音信号分析中的应用。 1、设计步骤: (1)语音信号采集 录制一段课程设计学生的语音信号并保存为文件,要求长度不小于10秒,并对录制的信号进行采样;录制时可以使用Windows自带的录音机,或者使用其它专业的录音软件,录制时需要配备录音硬件(如麦克风),为便于比较,需要在安静、干扰小的环境下录音。 然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。 (2)语音信号分析 使用MATLAB绘出采样后的语音信号的时域波形和频谱图。根据频谱图求出其带宽,并说明语音信号的采样频率不能低于多少赫兹。 (3)含噪语音信号合成 在MATLAB软件平台下,给原始的语音信号叠加上噪声,噪声类型分为如下几种:①白

数字信号处理课设+语音信号的数字滤波

语音信号的数字滤波 ——利用双线性变换法实现IIR数字滤波器的设计一.课程设计的目的 通过对常用数字滤波器的设计和实现,掌握数字信号处理的工作原理及设计方法;熟悉用双线性变换法设计 IIR 数字滤波器的原理与方法,掌握利用数字滤波器对信号进行滤波的方法,掌握数字滤波器的计算机仿真方法,并能够对设计结果加以分析。 二.设计方案论证 1.IIR数字滤波器设计方法 IIR数字滤波器是一种离散时间系统,其系统函数为 假设M≤N,当M>N时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。IIR数字滤波器的设计实际上是求解滤波器的系数和,它 是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器。 2.用双线性变换法设计IIR数字滤波器 脉冲响应不变法的主要缺点是产生频率响应的混叠失真。这是因为从S平面到Z平面是多值的映射关系所造成的。为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=e sT转换 平面的-π/T~π到Z平面上。也就是说,第一步先将整个S平面压缩映射到S 1 /T一条横带里;第二步再通过标准变换关系z=e s1T将此横带变换到整个Z平面上去。这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图1所示。 图1双线性变换的映射关系 为了将S平面的整个虚轴jΩ压缩到S1平面jΩ1轴上的-π/T到π/T段上,可以通过以下的正切变换实现

数字信号处理课程设计报告

《数字信号处理》课程设计报告 设计题目: IIR滤波器的设计 专业: 班级: 姓名: 学号: 指导教师: 2010年月日

1、设计目的 1、掌握IIR 滤波器的参数选择及设计方法; 2、掌握IIR 滤波器的应用方法及应用效果; 3、提高Matlab 下的程序设计能力及综合应用能力。 4、了解语音信号的特点。 2、设计任务 1、学习并掌握课程设计实验平台的使用,了解实验平台的程序设计方法; 2、录制并观察一段语音信号的波形及频谱,确定滤波器的技术指标; 3、根据指标设计一个IIR 滤波器,得到该滤波器的系统响应和差分方程,并根据差分方程将所设计的滤波器应用于实验平台,编写相关的Matlab 程序; 4、使用实验平台处理语音信号,记录结果并进行分析。 3、设计内容 3.1设计步骤 1、学习使用实验平台,参见附录1。 2、使用录音机录制一段语音,保存为wav 格式,录音参数为:采样频率8000Hz、16bit、单声道、PCM 编码,如图1 所示。 图1 录音格式设置 在实验平台上打开此录音文件,观察并记录其波形及频谱(可以选择一段较为稳定的语音波形进行记录)。 3、根据信号的频谱确定滤波器的参数:通带截止频率Fp、通带衰减Rp、阻带截止频率Fs、阻带衰减Rs。 4、根据技术指标使用matlab 设计IIR 滤波器,得到系统函数及差分方程,并记录得到系统函数及差分方程,并记录其幅频响应图形和相频响应图形。要求设计 第 1页出的滤波器的阶数小于7,如果不能达到要求,需要调整技术指标。 5、记录滤波器的幅频响应和系统函数。在matlab 中,系统函数的表示公式为:

因此,必须记录系数向量a 和b。系数向量a 和b 的可以在Matlab 的工作空间(WorkSpace)中查看。 6、根据滤波器的系统函数推导出滤波器的差分方程。 7、将设计的滤波器应用到实验平台上。根据设计的滤波器的差分方程在实验平台下编写信号处理程序。根据运行结果记录处理前后的幅频响应的变化情况,并试听处理前后声音的变化,将结果记录,写入设计报告。 3.2实验程序 (1)Rs=40; Fs=1400; Rp=0.7; Fp=450; fs=8000; Wp=2*pi*Fp;Ws=2*pi*Fs; [N,Wn]=buttord(Wp,Ws,Rp,Rs,'s'); [b1,a1]=butter(N,Wn,'s'); [b,a]=bilinear(b1,a1,fs); [H,W]=freqz(b,a); figure; subplot(2,1,1);plot(W*fs/(2*pi),abs(H));grid on;title('频率响应'); xlabel('频率');ylabel('幅值');、 subplot(2,1,2); plot(W,angle(H));grid on;title('频率响应'); xlabel('相位(rad)');ylabel('相频特性'); 3.3实验结果(如图): N =5 Wn=6.2987e+003 第 2页

信号发生器课程设计报告

目录 一、课题名称 (2) 二、内容摘要 (2) 三、设计目的 (2) 四、设计内容及要求 (2) 五、系统方案设计 (3) 六、电路设计及原理分析 (4) 七、电路仿真结果 (7) 八、硬件设计及焊接测试 (8) 九、故障的原因分析及解决方案 (11) 十、课程设计总结及心得体会 (12)

一、课题名称:函数信号发生器的设计 二、内容摘要: 函数信号发生器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。它可以产生多种波形信号,如正弦波,三角波,方波等,因而此次课程设计旨在运用模拟电子技术知识来制作一个能同时输出正弦波、方波、三角波的信号发生器。 三、设计目的: 1、进一步掌握模拟电子技术知识的理论知识,培养工程设计能力和综合分析能力、解决问题的能力。 2、基本掌握常用电子电路的一般设计方法,提高电子电路的设计和实验能力。 3、学会运用Multisim仿真软件对所做出来的理论设计进行仿真测试,并能进一步解决出现的基本问题,不断完善设计。 4、掌握常用元器件的识别和测试,熟悉万用表等常用仪表,了解电路调试的基本方法,提高实际电路的分析操作能力。 5、在仿真结果的基础上,实现实际电路。 四、设计内容及要求: 1、要求完成原理设计并通过Multisim软件仿真部分 (1)RC桥式正弦波产生电路,频率分别为300Hz、1KHz、10KHz、500KHz,输出幅值300mV~5V可调、负载1KΩ。 (2)占空比可调的矩形波电路,频率3KHz,占空比可调范围10%~90%,输出幅值3V、负载1KΩ。 (3)占空比可调的三角波电路,频率1KHz,占空比可调范围10%~90%,输出幅值3V、负载1KΩ。 (4)多用信号源产生电路,分别产生正弦波、方波、三角波,频率范围

数字信号处理课设共18页文档

数字信号处理课程设计 姓名:刘倩 学号:201014407 专业:信息与计算科学 实验一:常见离散信号产生和实现 一、实验目的: 1、加深对常用离散信号的理解; 2、掌握matlab 中一些基本函数的建立方法。 二、实验原理: 1.单位抽样序列 在MATLAB 中可以利用zeros()函数实现。 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: 2.单位阶越序列 在MATLAB 中可以利用ones()函数实现。 3.正弦序列 在MATLAB 中 4.复指数序列 在MATLAB 中 5.指数序列 在MATLAB 中

实验内容:由周期为10的正弦函数生成周期为20的余弦函数。 实验代码: n=0:30; y=sin(0.2*pi*n+pi/2); y1=sin(0.1*pi*n+pi/2); subplot(121) stem(n,y); xlabel ('时间序列n');ylabel('振幅');title('正弦函数序列y=sin(0.2*pi*n+pi/2)'); subplot(122) stem(n,y1); xlabel ('时间序列n');ylabel('振幅'); title('正弦函数序列y=sin(0.2*pi*n+pi/2)'); 实验结果: 实验二:离散系统的时域分析 实验目的:加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。实验原理:离散系统 其输入、输出关系可用以下差分方程描述: 输入信号分解为冲激信号, 记系统单位冲激响应 则系统响应为如下的卷积计算式:

当N k d k ,...2,1,0==时,h[n]是有限长度的(n :[0,M]),称系统为FIR 系统;反之,称系统为IIR 系统。 在MATLAB 中,可以用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数 y=conv(x,h)计算卷积,用y=impz(p,d,N)求系统的冲激响应。 实验内容:用MATLAB 计算全解 当n>=0时,求用系数差分方程y[n]+y[n-1]-6y[n-2]=x[n]描述的一个离散时间系统对阶跃输入x[n]=8μ[n]的全解。 实验代码: n=0:7; >> [y,sf]=filter(1,[1 1 -6],8*ones(1,8),[-7 6]); >> y1(n+1)=-1.8*(-3).^n+4.8*(2).^n-2; >> subplot(121) >> stem(n,y); >> title('由fliter 函数计算结果'); >> subplot(122) >> stem(n,y1); >> title('准确结果'); 实验结果: 结果分析:有图可得由fliter 函数得出的结果与计算出的准确结果完全一致。 实验三FFT 算法的应用

随机信号分析课程设计完整版

随机信号分析课程设计 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

随机信号分析课程设计 一、题目: 设计一个抑制载波的复AM 信号,载波为40MHz ,接收带宽10MHz ,调制信号带宽50KHz ,加入高斯白噪声,带内信噪比10dB : 1.1画出加噪后信号时域波形; 画出功率谱密度; 画出其同相、正交分量的功率谱; 统计方法画出包络概率密度。 二、问题分析: 画出加噪后信号时域波形: 首先,由已知条件先采样产生抑制载波的实AM 离散信号sr ,经过Hilbert 变换求得其解析信号s0,并经过低通滤波器,截止频率fs 限制在接收带宽下,加入噪声v ,得到此时的复AM 信号s ,再画出此时得到的复AM 信号时域波形。 画出功率谱密度: 将信号s 进行fft 变换后求得其功率谱密度,画出图形。 画出其同相、正交分量的功率谱: 将信号s 分解为正交分量)(cos )()(t t A t A s φ=和同相分量 )(sin )(t t A A c φ=,进行fft 变换得到功率谱密度,画出图形。 三、程序代码: f0=4*10^7;%载波信号频率40MHz f1=5*10^4;%调制信号频率50kHz fs=1*10^7;%接收机带宽采样频率10Mhz N=40001;%采样点数 %t=(0:1:N-1)/fs; f =10*f0; %画图范围设置 t0 = 5/f1;

t = 0:1/f:t0; k=1; sr=k*cos(2*pi*f1*t).*cos(2*pi*f0*t);%实am信号 % figure(2) % plot(t,sr) s0=hilbert(sr);%复am信号 h=sin(fs*t)/(pi*t); s0=conv(s0,h); am=max(abs(s0)); % % -------加噪方案(由加噪后信噪比确定高斯白噪声)----- snr=10; %设定加入白噪声后的信噪比为10db(均值为0) Pv=(am/(10^(snr/20)))^2;%噪声方差 % % -------------------------------------------------- % % % ---------加噪声------------- v=rand(1,N); v=v*sqrt(Pv);%白噪声 s=s0+v;%信号加噪声 % % ----------信号画图------------- figure(1) subplot(2,1,1),plot(t,s0); axis([*10^(-4) *10^-4 -10 10]) title('原始信号') subplot(2,1,2),plot(t,s); title(['加噪信号信噪比= ',num2str(snr),' dB. 噪声方差= ',num2str(Pv)]) axis([*10^(-4) *10^-4 -10 10]) %%----------画功率谱--------------- s1=detrend(s);%去趋势 ffs=abs(fft(s1)); theta=angle(s1)-2*pi*f0*t; a=abs(s1); ffs=ffs.*conj(ffs)*2/N;%频谱 %ffs=ffs.^2;%功率谱 figure(2) plot(ffs(1:N/2)); title('加噪信号功率谱') axis([3500 4500 0 4*10^4]) xlabel('*10^4') %%------------画正交同相分量功率谱---------- ac=s.*cos(2*pi*f0*t)-j*(hilbert(s)-s).*sin(2*pi*f0*t); as=-s.*sin(2*pi*f0*t)-j*(hilbert(s)-s).*cos(2*pi*f0*t); as1=detrend(as); ffas=abs(fft(as1)); ffas=(abs(ffas)).^2*2/N; ac1=detrend(ac); ffac=abs(fft(ac1)); ffac=(abs(ffac)).^2*2/N;

数字信号处理课程规划报告

数字信号处理课程设计报告《应用Matlab对信号进行频谱分析及滤波》 专业: 班级: 姓名: 指导老师: 二0 0五年一月一日

目录 设计过程步骤() 2.1 语音信号的采集() 2.2 语音信号的频谱分析() 2.3 设计数字滤波器和画出其频谱响应() 2.4 用滤波器对信号进行滤波() 2.5滤波器分析后的语音信号的波形及频谱() ●心得和经验()

设计过程步骤 2.1 语音信号的采集 我们利用Windows下的录音机,录制了一段开枪发出的声音,时间在1 s内。接着在C盘保存为WAV格式,然后在Matlab软件平台下.利用函数wavread对语音信号进行采样,并记录下了采样频率和采样点数,在这里我们还通过函数sound引入听到采样后自己所录的一段声音。通过wavread函数和sound的使用,我们完成了本次课程设计的第一步。其程序如下: [x,fs,bite]=wavread('c:\alsndmgr.wav',[1000 20000]); sound(x,fs,bite); 2.2 语音信号的频谱分析 首先我们画出语音信号的时域波形;然后对语音信号进行频谱分析,在Matlab中,我们利用函数fft对信号进行快速傅里叶变换,得到信号的频谱特性性。到此,我们完成了课程实际的第二部。 其程序如下: n=1024; subplot(2,1,1); y=plot(x(50:n/4)); grid on ; title('时域信号') X=fft(x,256); subplot(2,1,2); plot(abs(fft(X))); grid on ; title('频域信号'); 运行程序得到的图形:

信号与系统课程设计报告 信号与系统课程设计题目

信号与系统课程设计报告信号与系统课程设计题目 信号与系统课程设计报告 ——频分复用通信系统的仿真设计 指导老师:XXX 小组成员: 摘要: 通过对信号与系统这门课程第八章通信系统学习,我们对频分复用(FDMA )技术产生了浓厚的兴趣,于是决定自己利用MATLAB 强大的仿真功能来对频分复用系统进行仿真。本文首先录制三段不同的语音信号。然后通过推导,确定合适的载波信号的频率,对信号进行调制,调制后整合到一个复用信号上。再在复用信号上加一个随机的高斯白噪声得到在信道中传输的信号。之后根据通过对复用信号的频谱分析,得出切比雪夫滤波器的各项参数,通过设计好的滤波器进行信号分离后分别根据载波信号进行解调,再通过一个低通滤波器,得到原始信号。通过此次对FDMA 的仿真,我们更清楚了解了频分复用的工作原理,以及AM 调制解调方法,和滤波器的设计方法。频分复用技术对与通信系统节省资源有着重要的意义。

关键词: 频分复用 MATLAB 高斯白噪声 引言: 在电话通信系统中,语音信号频谱在300—3400Hz 内,而一条干线的通信资源往往远大于传送一路语音信号所需的带宽。这时,如果用一条干线只传一路语音信号会使资源大大的浪费,所以常用的方法是“复用”,使一条干线上同时传输几路电话信号,提高资源利用率。 本文是基于MATLAB 的简单应用,首先录制三段不同的语音信号。然后选择合适的高频载波,对信号进行调制,调制后整合到一个复用信号上。确定合适的信噪比,在复用信号上加一个随机的高斯白噪声得到在信道中传输的信号。之后根据载波信号设计合适的带通滤波器将三种信号进行分离,信号分离后分别进行同步解调,再通过一个低通滤波器,得到通过频分复用系统传输后得到的各个信号,将得到的信号与原信号对比,要保证信号与原信号吻合较好。 正文:

数字信号处理课程设计

数字信号处理 课 程 设 计 院系:电子信息与电气工程学院 专业:电子信息工程专业 班级:电信班 姓名: 学号: 组员:

摘要 滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR 滤波器是滤波器设计的重要组成部分。利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现。在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB 作为辅助工具完成设计中的计算与图形的绘制。通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。 关键词数字滤波器 MATLAB 窗函数法巴特沃斯

目录 摘要 (1) 1 引言 (1) 1.1课程设计目的 (1) 1.2 课程设计内容及要求 (1) 1.3课程设计设备及平台 (1) 1.3.1 数字滤波器的简介及发展 (1) 1.3.2 MATLAB软件简介 (2) 2 课程设计原理及流程 (4) 3.课程设计原理过程 (4) 3.1 语音信号的采集 (4) 3.2 语音信号的时频分析 (5) 3.3合成后语音加噪声处理 (7) 3.3.1 噪声信号的时频分析 (7) 3.3.2 混合信号的时频分析 (8) 3.4滤波器设计及消噪处理 (10) 3.4.1 设计IIR和FIR数字滤波器 (10) 3.4.2 合成后语音信号的消噪处理 (13) 3.4.3 比较滤波前后语音信号的波形及频谱 (13) 3.4.4回放语音信号 (15) 3.5结果分析 (15) 4 结束语 (15) 5 参考文献 (16)

信号课程设计

实验一 时域采样与频域采样定理的验证实验 1. (1) 时域采样理论与频域采样理论是数字信号处理中的重要理论。要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息; (2) 要求掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。 2. 时域采样定理的要点是: ① 对模拟信号()a x t 以T 进行时域等间隔理想采样,形成的采样信号的频谱 会 以采样角频率Ωs (Ωs=2π/T )为周期进行周期延拓。公式为 ② 采样频率Ωs 必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的频谱不产生频谱混叠。 利用计算机计算上式并不方便,下面我们导出另外一个公式,以便在计算机上进行实验。 理想采样信号 和模拟信号()a x t 之间的关系为: 对上式进行傅里叶变换,得到: 上式中,在数值上x a (nT)=x(n),再将ω=ΩT 代入,得到: 上式的右边就是序列的傅里叶变换,即 上式说明采样信号的傅里叶变换可用相应序列的傅里叶变换得到,只要将自变量ω用ΩT 代替即可。 频域采样定理的要点是: ① 对信号x(n)的频谱函数在[0,2π]上等间隔采样N 点,得到: ?(j )a X Ωa a a s 1??(j )FT[()](j j ) k X x t X k T ΩΩΩ∞ =-∞ ==-∑a ?()x t a a ?()()()n x t x t t nT δ∞ =-∞ =-∑j a a ?(j )[()()]e d t n X x t t nT t ΩΩδ∞ ∞--∞=-∞ =-∑?j a ()()e d t n x t t nT t Ωδ∞ ∞ --∞ =-∞ -∑?=j a a ?(j )()e nT n X x nT ΩΩ∞ -=-∞ =∑j a ?(j )(e )T X X ωωΩΩ==j 2π()(e ) , 0,1,2, ,1 N k N X k X k N ωω= ==-

信号与系统课程设计报告分析

成绩评定表 课程设计任务书

摘要 本文研究的是傅里叶变换的对称性和时移特性,傅里叶变换的性质有:对称性、线性(叠加性)、奇偶虚实性、尺度变换特性、时移特性、频移特性、微分特性、积分特性、卷积特性(时域和频域);从信号与系统的角度出发,给出了激励信号的具体模型;应用Matlab软件进行仿真,将研究的信号转化成具体的函数形式,在Matlab得到最终变换结果。使用傅里叶变换的方法、卷积的求解方法以及函数的微分等方法研究题目。 关键词: 傅里叶变换;对称性;时移特性;Matlab 目录 1、Matlab介绍................................................................................... 错误!未定义书签。

2.利用Matlab实现信号的频域分析—傅里叶变换的对称性与时移特性设计 (5) 2.1.傅里叶变换的定义及其相关性质 (5) 2.2.傅里叶变换的对称性验证编程设计及实现 (7) 2.3.傅里叶变换的时移特性验证编程设计及实现 (10) 3.总结 (13) 4.参考文献 (13) 1 、Matlab介绍 MATLAB作为一种功能强大的工程软件,其重要功能包括数值处理、程序设计、可视化显示、图形用户界面和与外部软件的融合应用等方面。 MATLAB软件由美国Math Works公司于1984年推出,经过不断的发展和完善,如今己成为覆盖多个学科的国际公认的最优秀的数值计算仿真软件。MATLAB具备强大的数值计算能力,许多复杂的计算问题只需短短几行代码就可在MATLAB中实现。作为一个跨平台的软件,MATLAB已推出Unix、Windows、Linux和Mac等十多种操作系统下的版本,大大方便了在不同操作系统平台下的研究工作。 MATLAB软件具有很强的开放性和适应性。在保持内核不变的情况下,MATLAB可以针对不同的应用学科推出相应的工具箱(toolbox),目前己经推出了

信号课程设计(郑巧健)

<<信号与线性系统>> 课程设计 姓名:郑巧健 学号:120901228 班级:自动化1204

目录 实验一连续信号的时域分析 3 实验二连续时间系统的时域分析 8 实验三连续信号的频域分析 15 实验四连续系统的频域分析 21 实验五信号采样与重建 28 实验六离散时间信号和系统分析 32

实验一 一、实验目的 1、熟悉MATLAB软件。 2、掌握常用连续信号与离散信号的MA TLAB表示方法。 二、实验设备 安装有matlab6.5以上版本的PC机一台。 三、实验原理

四、实验内容 1、用MATLAB表示连续信号:Aeαt,0 A cos(ωt +?),0 A sin(ωt +?)。 clc clear all close all

A=10;a=2; f=A*exp(a*t) ezplot(f,[-10,10]); xlabel('t'); title('f=10*exp(2*t)'); grid on >> clc clear all close all syms t A=10;w=2;q=5; f=A*sin(w*t+q) ezplot(f,[-10,10]); xlabel('t'); title('f=10*sin(2*t+5)'); grid on >> clc clear all close all syms t A=10;w=2;q=5; f=A*cos(w*t+q) ezplot(f,[-10,10]); xlabel('t'); title('f=10*cos(2*t+5)'); grid on 2、用MATLAB表示抽样信号(sinc(t))、矩形脉冲信号(rectpuls(t, width)) 及三角脉冲信号(tripuls(t, width, skew))。 >> clc clear all close all t=-10:0.01:10 f=sinc(t)

郑州大学数字信号处理课程设计报告

实验一:基于DFT的数字谱分析以及可能出现的问题 一、实验目的: 1.进一步加深对DFT的基本性质的理解。 2.掌握在MATLAB环境下采用FFT函数编程实现DFT的语句用法。 3.学习用DFT进行谱分析的方法,了解DFT谱分析中出现的频谱泄露和栅栏效应现 象,以便在实际中正确应用DFT。 二、实验步骤: 1.复习DFT的定义、物理含义以及主要性质。 2.复习采用DFT进行谱分析可能出现的三个主要问题以及改善方案。 3.按实验内容要求,上机实验,编写程序。 4.通过观察分析实验结果,回答思考题,加深对DFT相关知识的理解。 三、上机实验内容: 1.编写程序产生下列信号供谱分析用: 离散信号: x1=R10(n) x2={1,2,3,4,4,3,2,1},n=0,1,2,3,4,5,6,7 x3={4,3,2,1, 1,2,3,4},n=0,1,2,3,4,5,6,7 连续信号: x4=sin(2πf1t)+sin(2πf2t) f1=100Hz, f2=120Hz,采样率fs=800Hz 2.对10点矩形信号x1分别进行10点、16点、64点和256点谱分析,要求256点 频谱画出连续幅度谱,10点、16点和64点频谱画出离散幅度谱,观察栅栏效应。 3.产生信号x2和x3分别进行8点、16点谱分析,画出离散幅度谱,观察两个信 号的时域关系和幅度谱的关系。 4.对双正弦信号x4以采样率fs=800Hz抽样,生成离散双正弦信号并画出连续波形; 对离散双正弦信号进行时域截断,截取样本数分别为1000、250、50。对不同样本的双正弦信号分别进行1024点谱分析,画出连续幅度谱,观察频谱泄露现象。

数字信号处理实验报告92885

目录 实验1 离散时间信号的频域分析-----------------------2 实验2 FFT算法与应用-------------------------------7 实验3 IIR数字滤波器的设计------------------------12 实验4 FIR数字滤波器的设计------------------------17

实验1 离散时间信号的频域分析 一.实验目的 信号的频域分析是信号处理中一种有效的工具。在离散信号的时域分析中,通常将信号表示成单位采样序列δ(n )的线性组合,而在频域中,将信号表示成复变量e n j ω-或 e n N j π2-的线性组合。通过这样的表示,可以将时域的离散序 列映射到频域以便于进一步的处理。 在本实验中,将学习利用MATLAB 计算离散时间信号的DTFT 和DFT,并加深对其相互关系的理解。 二、实验原理 (1)DTFT 和DFT 的定义及其相互关系。序列x(n)DTFT 定义为()jw X e = ()n x n e ∞ =∞ ∑ω jn -它是关于自变量ω的复函数,且是以2π为周期的连续函数。 ()jw X e 可以表示为()()()jw jw jw re im X e X e jX e =+,其中,()jw re X e 和()jw im X e 分别是 ()jw X e 实部和虚部;还可以表示为 ()jw X e =()|()|jw j w X e e θ,其中, |()|jw X e 和{} ()arg ()j w X e ωθ=分别是()jw X e 的幅度函数和相位函数;它们都是ω的实函数,也是以2π为周期的周期函数。 序列()x n 的N 点DFT 定义为2211 ()()()()N N j k j kn kn N N N N n X k X e x n e x n W π π ---==== ∑∑,()X k 是周期为N 的序列。()j X e ω与()X k 的关系:()X k 是对()j X e ω)在一个周期 中的谱的等间隔N 点采样,即 2k |()()|jw w N X k X e π = = ,而()j X e ω 可以通过对()X k 内插获得,即

数字信号课程设计

《数字信号》课程设计报 告 学院:信息科学与工程 专业班级:通信1201

一、 目的与要求 是使学生通过上机使用Matlab 工具进行数字信号处理技术的仿真练习,加深对《信号分析与处理(自)》课程所学基本理论和概念的理解,培养学生应用Matlab 等工具进行数字信号处理的基本技能和实践能力,为工程应用打下良好基础。 二、 主要内容 1.了解Matlab 基本使用方法,掌握Matlab 数字信号处理的基本编程技术。掌握数字信号的基本概念。 2.用Matlab 生成几种典型数字信号(正弦信号、矩形信号、三角波信号等),并做幅频特性分析 2.Matlab 编程实现典型离散信号(正弦信号、矩形信号、三角信号)的离散傅立叶变换,显示时域信号和频谱图形(幅值谱和相位谱);以正弦周期信号为例,观察讨论基本概念(混叠、泄漏、整周期截取、频率分辨率等)。 3.设计任意数字滤波器,并对某类型信号进行滤波,并对结果进行显示和分析。 4.利用matlab 求解差分方程,并做时域和频域分析。用matlab 函数求解单位脉冲响应,并利用窗函数分离信号。 5.用matlab 产生窗函数,并做世玉和频域分析。 6.显示图像,理解图像的模型,将图像进行三原色分解和边缘分析。 三.课程设计题目 一、 1) 生成信号发生器:能产生频率(或基频)为10Hz 的周期性正弦波、三角波和方波信号。绘出它们的时域波形 2) 为避免频谱混叠,试确定各信号的采样频率。说明选择理由。 3)对周期信号进行离散傅立叶变换,为了克服频谱泄露现象,试确定截取数据的长度,即信号长度。分析说明选择理由。 4)绘出各信号频域的幅频特性和相频特性 5)以正弦周期信号为例,观察讨论基本概念(频谱混叠、频谱泄漏、整周期截取等)。 二、已知三个信号()i a p n ,经调制产生信号3 1 ()()cos(/4)i i s n a p n i n π==∑,其中i a 为常 数,()p n 为具有窄带特性的Hanning 信号。将此已调信号通过信道传输,描述该信道的差分方程为 得到接收信号()()*()y n s n h n = 1)分析Hanning 信号()p n 的时域与频域特性 2)分析已调信号()s n 的时域与频域特性 () 1.1172(1)0.9841(2)0.4022(3)0.2247(4) 0.2247()0.4022(1)0.9841(2) 1.1172(3)(4)y n y n y n y n y n x n x n x n x n x n --+---+-= --+---+-

数字信号处理课程设计 1

(一)用窗函数法设计FIR数字滤波器 一、设计题目用窗函数法设计FIR数字低通滤波器 二、设计目的 1. 熟悉设计线性相位数字滤波器的一般步骤。 2. 掌握用窗函数法设计FIR数字滤波器的原理和方法。 3. 熟悉各种窗函数的作用以及各种窗函数对滤波特性的影响。 4. 学会根据指标要求选取合适的窗函数。 三、设计原理 窗函数法又称为傅里叶级数法,FIR数字滤波器的设计问题就是要所设计的FIR数字滤波器的响应H(ejw)去逼近所要求的理想滤波器的响应Hd(ejw)。从单位取样响应序列来看,就是使所设计的滤波器的h(n)逼近理想单位取样响应序列hd(n)。而且Hd(ejw)=逐段恒定的,且在频带边界处有不连续点,因此序列hd(n)是无限长的,通过直接截取无限长序列以得到有限长序列的办法,可以形象的比喻为h(n)通过一个窗口所看到的一段hd(n)。因此,h(n)也可以表达为hd(n)和一个窗函数w(n)的乘积,h(n)=w(n)hd(n)。这里的窗函数就是矩形序列RN(n)。 四、实现方法 用MATLAB编程实现给定指标要求的滤波器设计 五、设计内容及要求 1、各窗函数图(假设N=67;) N=67;

n=0:N-1; wn1=ones(1,N); stem(n, wn1);矩形窗 figure; wn2=hamming(N); stem(n, wn2);海明窗 figure; wn3=BARTLETT(N); stem(n, wn3);巴特列特 figure; wn4= Hanning(N); stem(n, wn4);汉宁窗 将窗函数分别画出来 2、计算理想低通滤波器单位冲激响应的源程序function[hd]=ideal(wc,N) q=(N-1)/2; n=0:N-1; m=n-q+eps; hd=sin(wc*m)./(pi*m); 3、计算频率响应的源程序 function[H]=fr(b,a,w); m=0:length(b)-1; l=0:length(a)-1; num=b*exp(-j*m'*w); den=a*exp(-j*l'*w); H=num./den;

《数字信号处理》课程设计,基于MATLAB的音乐信号处理和分析解析

《数字信号处理》课程设计设计题目:基于MATLAB的音乐信号处理和分析 院系:物理工程学院 专业:电子信息科学与技术 学号: 姓名:

一、课程设计的目的 本课程设计通过对音乐信号的采样、抽取、调制解调、滤波、去噪等多种处理过程的理论分析和MATLAB实现,使学生进一步巩固数字信号处理的基本概念、理论以及频谱分析方法和数字滤波器设计方法;使学生掌握的基本理论和分析方法只是得到进一步扩展;使学生能有效地将理论和实际紧密结合;增强学生软件编程实现能力和解决实际问题的能力。 二、课程设计的基本要求 1 学会MATLAB的使用,掌握MATLAB的基本编程语句。 2 掌握在Windows环境下音乐信号采集的方法。 3 掌握数字信号处理的基本概念、基本理论和基本方法。 4 掌握MATLAB设计FIR和IIR数字滤波器的方法。 5 掌握使用MATLAB处理数字信号、进行频谱分析、涉及数字滤波器的编程方法。 三、课程设计内容 实验1音乐信号的音谱和频谱观察 使用windows下的录音机录制一段音乐信号或采用其它软件截取一段音乐信号(要求:时间不超过5s、文件格式为wav文件) ①使用wavread语句读取音乐信号,获取抽样率;(注意:读取的信号时双声道信号,即为双列向量,需要分列处理); ②输出音乐信号的波形和频谱,观察现象; 使用sound语句播放音乐信号,注意不同抽样率下的音调变化,解释现象。 程序如下: [Y,FS,NBITS]=WAVREAD('怒放的生命 - 汪峰5s'); %读取音乐信号 plot(Y); %显示音乐信号的波形和频谱 sound(Y,FS); %听音乐(按照原来的抽样率) Y1=Y(:,1); %由双声道信号变为单声道信号 size(Y1) figure subplot(2,1,1);

相关文档
最新文档