实验一基于Matlab的数字信号处理基本分析解析
- 格式:doc
- 大小:2.99 MB
- 文档页数:8
Matlab数字信号处理实验报告本次实验使用MATLAB进行数字信号处理操作,目的是熟悉MATLAB中数字信号处理的相关工具箱,并进一步理解数字信号处理的基本概念和算法。
一、实验内容1.信号的生成与显示2.时域分析和频域分析3.滤波器设计4.数字滤波器性能分析二、实验步骤在MATLAB中,使用sawtooth函数生成一个锯齿波信号,并使用plot函数进行时域波形的显示。
代码如下:f = 1000;fs = 40000;t = 0:1/fs:0.01;y = sawtooth(2*pi*f*t);plot(t,y);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave');时域分析包括波形的观察和参数分析,如幅值、均值、方差等。
频域分析则是对信号进行傅里叶变换,得到其频谱图,包括频率分布和强度分布。
%时域分析amp = max(y)-min(y);mean_y = mean(y);var_y = var(y);设计一个低通滤波器,将高于1kHz的频率成分滤掉。
对滤波后的信号进行时域分析和频域分析,比较滤波前后信号的特征参数和频谱特征,并绘制原始信号、滤波后信号及其频谱图。
subplot(2,2,1);plot(t,y);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave');subplot(2,2,2);plot(t,y_filt);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave After Filter');subplot(2,2,3:4);plot(f2,fft_y_filt,'r',f,fft_y,'g');xlabel('Frequency (Hz)');ylabel('Amplitude');title('Sawtooth Wave Spectrum Comparison');legend('After Filter','Before Filter');三、实验结果与分析通过生成并显示一段锯齿波信号,并对其进行时域和频域分析,可以得到该信号的关键信息,如幅值、均值、方差和频率分布特性。
课程名称:数字信号处理实验实验地点:综合楼C407专业班级:2014级生物医学工程姓名:leifeng学号:指导老师:第一次实验第一章 离散时间信号的时域分析Q1.1运行程序P1.1,以产生单位样本序列u[n]并显示它clf; n=-10:20;u=[zeros(1,10) 1 zeros(1,20)]; stem(n,u);xlabel('时间序号');ylabel('振幅'); title('单位样本序列'); axis([-10 20 0 1.2]);时间序号振幅单位样本序列Q1.2 命令clf ,axis ,title ,xlabel 和ylabel 的作用是什么clf :清除图形窗口内容; axis:规定横纵坐标的范围;title :使图像面板上方显示相应的题目名称; xlable :定义横坐标的名字; ylable :定义纵坐标的名字。
Q1.3修改程序P1.1以产生带有延时11个样本的延迟单位样本序列ud[n],运行修改的程序并且显示产生的序列。
clf; n=0:30;u=[zeros(1,11) 1 zeros(1,19)]; stem(n,u);xlabel('时间序号');ylabel('振幅'); title('单位样本序列'); axis([0 30 0 1.2]);时间序号振幅单位样本序列Q1.5 修改程序P1.1,以产生带有超前7个样本的延时单位阶跃序列sd[n]。
运行修改后的程序并显示产生的序列。
clf; n=-10:20;sd=[zeros(1,3) 1 ones(1,27) ]; stem(n,sd);xlabel('时间序号');ylabel('振幅'); title('单位样本序列'); axis([-10 20 0 1.2]);时间序号振幅单位样本序列Q1.6运行程序P1.2,以产生复数值的指数序列。
0.60007.0000-5.4000所以,X=[错误!未找到引用源。
]=[ 0.6000, 7.0000, -5.4000]’实验结果2:K=1.732051实验结果3:三曲线的对比图如下所示:图1.1 三曲线的对比实验二基于MATLAB信号处理实验xlabel('频率/Hz');ylabel('振幅/dB');title('布莱克窗的幅频特性');grid on;subplot(2,1,2);plot(f4,180/pi*unwrap(angle(H4)));xlabel('频率/Hz');ylabel('相位');title('布莱克窗的相频特性');grid on;六、实验结果实验结果2.1:图2-1 x(n)与y(n)的互相关序列图由实验结果可知,x(n)与y(n)的互相关只在区间[-4,8]上有能力,刚好是区间[-3,3]与右移后的区间[-1,5]两端点之和,与结论一致。
且互相关在2处达到最大。
实验结果2.2.1:其表示的差分方程为:y(n)-0.8145y(n-4)=x(n)+x(n-4)实验结果2.2.2:滤波器的幅频和相频图如下所示:图2-2 滤波器的幅频与相频图实验结果2.2.3:由下图实验结果可知,输出信号相对于输入信号有一小小的延迟,基本上x(n)的频点都通过了,滤波器是个梳状filter,正好在想通过的点附近相位为0,也就是附加延迟为0图2-3 滤波器的幅度和相位变化图2-4 两信号波形实验结果2.3:四种带通滤波器的窗函数的频率响应如下所示:图2-5 矩形窗的频率特性图2-6 汉宁窗的频率特性图2-7 海明窗的频率特性图2-8 布莱克曼窗的频率特性图3-1 加噪前、后图像对比图3-2 加椒盐噪声的图像均值滤波前、后的图像对比图3-3 加椒盐噪声的图像中值滤波前、后的图像对比图3-4加高斯噪声的图像均值滤波前、后的图像对比图3-5 加高斯噪声的图像中值滤波前、后的图像对比实验结果3.2:图3-6 原图及重构图像图3-7 程序运行结果由实验结果可知,当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.768259,重构图像置为0的变换系数的个数个数为:43.708737;当DCT变换的系数置0个数小于10时,重构图像与原图像的峰值信噪比15.922448,重构图像置为0的变换系数的个数个数为:36.110705;当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.768259,重构图像置为0的变换系数的个数个数为:30.366348;可以发现,在抛弃部分DCT系数后,重构图像时不会带来其画面质量的显著下降,采用这种方法来实现压缩算法时,可以通过修改mask变量中的DCT系数来更好地比较仿真结果。
利用Matlab进行数字信号处理与分析数字信号处理是现代通信、控制系统、生物医学工程等领域中不可或缺的重要技术之一。
Matlab作为一种功能强大的科学计算软件,被广泛应用于数字信号处理与分析领域。
本文将介绍如何利用Matlab进行数字信号处理与分析,包括基本概念、常用工具和实际案例分析。
1. 数字信号处理基础在开始介绍如何利用Matlab进行数字信号处理与分析之前,我们首先需要了解一些基础概念。
数字信号是一种离散的信号,可以通过采样和量化得到。
常见的数字信号包括音频信号、图像信号等。
数字信号处理就是对这些数字信号进行处理和分析的过程,包括滤波、频谱分析、时域分析等内容。
2. Matlab在数字信号处理中的应用Matlab提供了丰富的工具箱和函数,可以方便地进行数字信号处理与分析。
其中,Signal Processing Toolbox是Matlab中专门用于信号处理的工具箱,提供了各种滤波器设计、频谱分析、时域分析等功能。
除此之外,Matlab还提供了FFT函数用于快速傅里叶变换,可以高效地计算信号的频谱信息。
3. 数字信号处理实例分析接下来,我们通过一个实际案例来演示如何利用Matlab进行数字信号处理与分析。
假设我们有一个包含噪声的音频文件,我们希望去除噪声并提取出其中的有效信息。
首先,我们可以使用Matlab读取音频文件,并对其进行可视化:示例代码star:编程语言:matlab[y, Fs] = audioread('noisy_audio.wav');t = (0:length(y)-1)/Fs;plot(t, y);xlabel('Time (s)');ylabel('Amplitude');title('Noisy Audio Signal');示例代码end接下来,我们可以利用滤波器对音频信号进行去噪处理:示例代码star:编程语言:matlabDesign a lowpass filterorder = 8;fc = 4000;[b, a] = butter(order, fc/(Fs/2), 'low');Apply the filter to the noisy audio signaly_filtered = filtfilt(b, a, y);Plot the filtered audio signalplot(t, y_filtered);xlabel('Time (s)');ylabel('Amplitude');title('Filtered Audio Signal');示例代码end通过以上代码,我们成功对音频信号进行了去噪处理,并得到了滤波后的音频信号。
MATLAB DSP实验报告介绍本实验报告将详细介绍在MATLAB环境下进行数字信号处理(DSP)的实验步骤和相关方法。
我们将通过逐步思考的方式,帮助读者理解和学习DSP的基本概念和技术。
实验环境和工具在进行DSP实验之前,我们需要准备以下环境和工具:1.MATLAB软件:确保已安装并配置好MATLAB软件,可以在MATLAB Command窗口中输入命令。
2.信号处理工具包:在MATLAB中,我们可以使用信号处理工具箱(Signal Processing Toolbox)来进行DSP实验和分析。
确保该工具箱已被安装并加载。
实验步骤下面是进行DSP实验的一般步骤:步骤一:加载信号首先,我们需要加载待处理的信号。
这可以通过在MATLAB中使用load命令加载一个音频文件或生成一个模拟信号实现。
例如,我们可以加载一个名为signal.wav的音频文件:load signal.wav步骤二:信号预处理在进行DSP之前,通常需要对信号进行预处理。
这可能包括去噪、滤波、均衡等操作。
例如,我们可以使用滤波器对信号进行降噪:filtered_signal = filter(filter_coefficients, signal);步骤三:信号分析一旦信号经过预处理,我们可以开始进行信号分析。
这可能涉及频域分析、时域分析、谱分析等。
例如,我们可以通过计算信号的快速傅里叶变换(FFT)获得其频谱:spectrum = fft(filtered_signal);步骤四:特征提取在信号分析之后,我们可以根据需要提取信号的特征。
这些特征可能包括幅度、频率、相位等。
例如,我们可以计算信号的能量:energy = sum(abs(filtered_signal).^2);步骤五:信号重构在完成信号分析和特征提取后,我们可以根据需要对信号进行重构。
这可能包括滤波、修复损坏的信号等。
例如,我们可以使用滤波器对信号进行重构:reconstructed_signal = filter(filter_coefficients, filtered_signal);步骤六:结果评估最后,我们需要评估重构后的信号和原始信号之间的差异。
实验1 离散时间信号的时域分析一、实验目的(1)了解MATLAB 语言的主要特点及作用;(2)熟悉MATLAB 主界面,初步掌握MATLAB 命令窗和编辑窗的操作方法;(3)学习简单的数组赋值、数组运算、绘图的程序编写;(4)了解常用时域离散信号及其特点;(5)掌握MATLAB 产生常用时域离散信号的方法。
二、知识点提示本章节的主要知识点是利用MATLAB 产生数字信号处理的几种常用典型序列、数字序列的基本运算;重点是单位脉冲、单位阶跃、正(余)弦信号的产生;难点是MATLAB 关系运算符“==、>=”的使用。
三、实验内容1. 在MATLAB 中利用逻辑关系式0==n 来实现()0n n -δ序列,显示范围21n n n ≤≤。
(函数命名为impseq(n0,n1,n2))并利用该函数实现序列:()()()632-+-=n n n y δδ;103≤≤-nn 0212. 在MATLAB 中利用逻辑关系式0>=n 来实现()0n n u -序列,显示范围21n n n ≤≤。
(函数命名为stepseq(n0,n1,n2))并利用该函数实现序列:()()()20522≤≤--++=n n u n u n y3. 在MATLAB 中利用数组运算符“.^”来实现一个实指数序列。
如: ()()5003.0≤≤=n n x n4. 在MATLAB 中用函数sin 或cos 产生正余弦序列,如:()()2003.0cos 553.0sin 11≤≤+⎪⎭⎫ ⎝⎛+=n n n n x πππ5. 已知()n n x 102cos 3π=,试显示()()()3,3,+-n x n x n x 在200≤≤n 区间的波形。
6. 参加运算的两个序列维数不同,已知()()6421≤≤-+=n n u n x ,()()8542≤≤--=n n u n x ,求()()()n x n x n x 21+=。
实验2 利用MATLAB 进行信号分析实验目的:学习用MATLAB 编程进行信号分析实验内容:1、 数字滤波器的频率响应:数字滤波器的系统函数为:H(z)=21214.013.02.0----++++z z z z ,求其幅频特性和相频特性:2、离散系统零极点图:b =[0.2 0.1 0.3 0.1 0.2]; a=[1.0 -1.1 1.5 -0.7 0.3]; 画出其零极点图3、数字滤波器的冲激响应: b=[0.2 0.1 0.3 0.1 0.2];a=[1.0 -1.1 1.5 -0.7 0.3]; 求滤波器的冲激响应。
4、 计算离散卷积:x=[1 1 1 1 0 0]; y=[2 2 3 4]; 求x(n)*y(n)。
5、 计算离散信号的能量和功率:序列的能量:E=∑∞=02)(n n x =∑∞=0)(*)(n n x n x序列的功率:P=N1∑-=102)(N n n x =N1∑∞=0)(*)(n n x n xx(n)=0.8nu(n),计算前10点的能量占总能量的百分比。
6、 求逆Z 变换:求X(z)=)9.01()9.01(121z z +-- z ﹥0.9的逆Z 变换。
实验要求:打印出程序、图形及运行结果,并分析实验结果。
利用MATLAB 进行信号分析● 数字滤波器的频率响应:例:对一数字滤波器H(z)=21214.013.02.0----++++zz z z ,求其幅频特性和相频特性: a=[1 0.4 1]; b=[0.2 0.3 1]; freqz(b,a,128)● 离散系统零极点图:b =[0.2 0.1 0.3 0.1 0.2]; a=[1.0 -1.1 1.5 -0.7 0.3]; zplane(b,a)● 数字滤波器的冲激响应: b=[0.2 0.1 0.3 0.1 0.2];a=[1.0 -1.1 1.5 -0.7 0.3]; impz(b,a,50)● 计算离散卷积:x=[1 1 1 1 0 0]; y=[2 2 3 4]; z=conv(x,y);stem(0:length(x)+length(y)-2,z)● 计算离散信号的能量和功率:序列的能量:E=∑∞=02)(n n x = ∑∞=0)(*)(n n x n x序列的功率:P=N1∑-=12)(N n n x =N1∑∞=0)(*)(n n x n x例:x(n)=0.8n u(n),计算前10点的能量占总能量的百分比。
matlab信号处理实验报告Matlab信号处理实验报告引言信号处理是一门研究如何获取、分析、变换和解释信号的学科。
在现代科技的发展中,信号处理在许多领域都扮演着重要的角色。
本文将以Matlab为工具,进行信号处理实验,并对实验结果进行分析和讨论。
实验一:信号的采样和重构在信号处理中,采样是指将连续时间的信号转化为离散时间的信号。
重构则是将离散时间的信号恢复为连续时间的信号。
我们选取了一个正弦信号进行实验。
首先,我们生成一个频率为10Hz的正弦信号,并对其进行采样。
使用Matlab的函数进行采样,可以得到离散时间的信号。
接下来,我们对采样后的信号进行重构。
使用Matlab的函数进行重构,可以得到连续时间的信号。
通过实验,我们可以观察到采样和重构过程中的信号失真情况。
信号的采样频率越高,重构后的信号越接近原始信号。
这是因为高采样频率可以提供更多的采样点,从而更好地还原原始信号。
实验二:信号的频谱分析频谱分析是信号处理中常用的一种方法,用于分析信号的频率成分。
我们选取了一个复杂的信号进行频谱分析。
首先,我们生成一个由多个正弦信号叠加而成的复杂信号。
使用Matlab的函数进行信号合成,可以得到复杂信号。
接下来,我们对复杂信号进行频谱分析。
使用Matlab的函数进行频谱分析,可以得到信号的频谱图。
通过实验,我们可以观察到复杂信号的频谱图中的不同频率成分。
频谱图上的峰值表示信号中的主要频率成分,而峰值的高度表示该频率成分的强度。
通过频谱分析,我们可以了解信号的频率特性,进而对信号进行进一步处理和分析。
实验三:信号的滤波处理滤波是信号处理中常用的一种方法,用于去除信号中的噪声或不需要的频率成分。
我们选取了一个包含噪声的信号进行滤波处理。
首先,我们生成一个包含噪声的信号。
使用Matlab的函数生成噪声信号,并将其与原始信号叠加,可以得到包含噪声的信号。
接下来,我们对包含噪声的信号进行滤波处理。
使用Matlab的函数进行滤波处理,可以得到去除噪声后的信号。
第一章MATLAB基本知识MATLAB是一种面向科学和工程计算的高级语言,包含的几十个工具箱,覆盖了通信、自动控制、信号处理、图像处理、生命科学等科技领域,现已成为国际公认的最优秀的科技界应用软件。
该软件的特点是:强大的计算功能、计算结果和编程可视化及极高的转换效率。
本章目的是帮助新用户在领略MATLAB非凡能力的同时能轻松跨越MA TLAB的门槛。
§1.1 MATLAB 语言的基本使用环境一.MATLAB的安装MATLAB5.3 版本仅有一张光盘,运行其上的安装文件setup.exe,则可以按提示安装整个MA TLAB 系统。
MATLAB6.1 版本有两张光盘,将其中的程序盘插入驱动器,运行其上的安装文件setup.exe,则可以按提示安装整个MA TLAB 系统。
MATLAB6.x与以前的版本相比,在界面上的变化是很大的,以前的版本只给出一个又一个命令窗口,MA TLAB6.1的程序界面,除了其右侧的Command Window (命令窗口)之外,还有Launch Pad (程序调用板) 和Command History (命令的历史记录)两个子窗口,以及Workspace (工作空间管理程序) 和Current Directory (当前目录管理程序)等,使MA TLAB 的操作更容易、方便了。
二.MATLAB5.3的操作步骤由于实验室安装的是MA TLAB5.3,下面我们介绍MATLAB5.3 的操作步骤。
双击桌面的MA TLAB5.3 的图标,如图1-1,将进入MA TLAB5.3的Command Window (命令窗口),如图1-2。
1.帮助[Help]选项Help Windows 打开分类帮助窗Help Tips 打开函数文件命令帮助窗Help Desk 打开以超文本形式存储的帮助文件主页Examples and Demos 打开演示窗主页About MA TLAB 注册图标、版本、制造商和用户信息选择[Help]中不同的类别,用户可以从相关的帮助信息得到帮助。
实验一 基于Matlab 的数字信号处理基本操作一、 实验目的:学会运用MA TLAB 表示的常用离散时间信号;学会运用MA TLAB 实现离散时间信号的基本运算。
二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。
三、 实验内容:(一) 离散时间信号在MATLAB 中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用)(n x 来表示,自变量必须是整数。
离散时间信号的波形绘制在MATLAB 中一般用stem 函数。
stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。
如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。
由于MATLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。
类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。
1. 单位取样序列单位取样序列)(n δ,也称为单位冲激序列,定义为)0()0(01)(≠=⎩⎨⎧=n n n δ要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。
在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即function y=impDT(n)y=(n==0); %当参数为0时冲激为1,否则为0调用该函数时n 必须为整数或整数向量。
【实例1-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。
解:MATLAB 源程序为>>n=-3:3; >>x=impDT(n);>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1])程序运行结果如图1-1所示。
班级: 学号: 姓名: 日期: 实验一:离散时间信号的分析一、实验目的利用DFT 卷积实现系统的时域分析二、实验原理在离散时间、连续频率的傅里叶变换中,由于卷积性质知道,对系统输出的计算可以通过求x[n]和h[n]的DTFT ,将得到的X(e jw )和H(e jw )相乘就可以得到Y(e jw ),进而再通过反变换得到y[n]。
这就避免了在时域进行繁琐的卷积求解。
三、实验步骤(包括代码和波形)1-2(2)x[k]=g[k]=k+1,0<=k<=3;x[k]=g[k]=0,其他 编码如下:ak=1:4 gk=1:4Z=conv(ak,gk) stem(Z)波形如下:12345675101520251-3(1)已知序列x[k]={1,2,3,4;k=0,1,2,3},y[k]={-1,1,2,3;k=0,1,2,3},试计算x[k]的自相关函数以及序列x[k]与y[k]的互相关函数。
编码如下:x=[1,2,3,4];kx=0:3; y=[-1,1,-2,3];ky=0:3; xf=fliplr(x); s1=conv(x,xf); s2=conv(xf,y); yf=fliplr(y); s3=conv(yf,x);k1=kx(1)+ky(1):kx(end)+ky(end); kxf=-fliplr(kx);k2=kxf(1)+ky(1):kxf(end)+ky(end); kyf=-fliplr(ky);k3=kyf(1)+kx(1):kyf(end)+kx(end); subplot(2,2,1); stem(k1,s1);xlabel('k1');ylabel('s1'); subplot(2,2,2); stem(k2,s2);xlabel('k2');ylabel('s2'); subplot(2,2,3) stem(k3,s3);xlabel('k3');ylabel('s3');波形如下:0246102030k1s 1-4-2024-10-50510k2s 2-4-2024-10-50510k3s 3M-1已知g1[t]=cos(6*pi*t),g2=cos(14*pi*t),g3=cos(26*pi*t),以抽样频率f(max)=10HZ对上述三个信号进行抽样。
基于MATLAB的数字信号处理实现数字信号处理是信号处理中的一个重要分支,随着数字信号处理技术的不断发展和完善,数字信号处理在科学研究、工程设计等领域都有着广泛的应用。
MATLAB作为一种常用的数字信号处理软件,可以方便地实现数字信号处理的各种算法。
本文将从数字信号处理的概念、MATLAB的基本操作和数字信号处理算法实现三个方面来介绍基于MATLAB的数字信号处理实现。
一、数字信号处理概述数字信号处理是指将模拟信号转换为数字信号,并对数字信号进行滤波、压缩、降噪等处理的一种信号处理方法。
数字信号处理的应用范围广泛,如通信系统、音频信号处理、图像处理等领域。
数字信号处理的基本步骤包括采样、量化、编码和数字滤波等。
二、MATLAB的基本操作MATLAB是一种常用的数字信号处理软件,可以方便地实现数字信号处理算法。
在使用MATLAB进行数字信号处理时,需要掌握一些基本操作,如矩阵运算、图像处理等。
(一)矩阵运算MATLAB中的基本数据类型是矩阵,因此矩阵运算是MATLAB中的基本操作之一。
MATLAB支持加、减、乘、除等基本运算符号,例如:A = [1 2; 3 4];B = [5 6; 7 8];C = A + B;D = A * B;E = A' ;disp(C);disp(D);disp(E);上述代码将两个矩阵相加、相乘,并求矩阵的转置,最后输出结果。
(二)图像处理MATLAB提供了强大的图像处理功能,可以对图像进行各种处理。
如读取图像、调整亮度和对比度、滤波等。
下面是一个简单的读取图像并显示的例子。
A = imread('peppers.png');imshow(A);上述代码从文件中读取一个图像,并使用MATLAB自带的imshow函数显示该图像。
三、数字信号处理算法实现在MATLAB中,可以方便地实现各种数字信号处理算法。
例如,信号滤波、频率分析、小波分析等。
下面将分别介绍这些算法的实现方法。
目录目录 (1)摘要 (2)一.设计目的和要求 (2)二.设计原理及方法 (2)2.1设计原理 (2)2.2设计方法 (5)三.实验内容 (5)3.1信号的产生 (5)3.2滤波器的设计 (7)3.3信号滤波分析 (9)总结与致谢 (16)参考文献 (17)摘要几乎所有的工程技术领域都要涉及到信号处理问题,信号处理一般是包括数据采集以及对信号进行分析、变换、综合、估计与识别。
对于数字信号来说,数字信号的幅度和时间都是离散值,数字信号处理是采用数值计算的方法完成对信号的处理。
而待处理的的信号往往夹带着噪声。
这就需要数字滤波器对信号进行滤波处理,滤除其中的噪声,得到想要的信号。
所谓数字滤波器,就是输入、输出都是数字信号的,通过数值计算处理改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序。
常用的经典滤波器有低通、高通、带通、带阻。
关键字:信号产生数字滤波器噪声频谱分析一.设计目的和要求1、产生一个连续信号,包含低频,中频,高频分量。
2、对产生的信号进行采样,进行频谱分析。
3、分别设计高通、低通、带通滤波器对信号进行滤波处理,观察滤波后信号的频谱。
二.设计原理及方法2.1设计原理理论上信号的采样要符合奈奎斯特采样定律,就是采样频率要高一点,一般为被采信号最高频率的2倍,只有这样,才能保证频域不混叠,也就是采样出来数字信号中包含了被采信号的所有信息,而且没有引入干扰。
这就是信号的时域采样。
频谱分析是指对信号进行频域谱的分析,观察其频域的各个分量的功率大小,其理论基础是傅立叶变换,现在一般采用数字的方法,也就是将时域信号数字化后做FFT,可以得到频域的波形。
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号的某些特定的频率成分进行过滤,这就是滤波器的基本原理。
如果系统是一个连续系统,则滤波器称为模拟滤波器。
数字信号处理实验报告姓名:班级:09电信一班学号:2)]得下图二,图二图一3.将如下文件另存为:sigadd.m文件function [y,n] = sigadd(x1,n1,x2,n2)% 实现y(n) = x1(n)+x2(n)% -----------------------------% [y,n] = sigadd(x1,n1,x2,n2)% y = 在包含n1 和n2 的n点上求序列和,% x1 = 在n1上的第一序列% x2 = 在n2上的第二序列(n2可与n1不等)n = min(min(n1),min(n2)):max(max(n1),max(n2)); % y(n)的长度y1 = zeros(1,length(n)); y2 = y1; % 初始化y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; % 具有y的长度的x1y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; % 具有y的长度的x2y = y1+y2;在命令窗口输入:x1=[1,0.5,0.3,0.4];n1=-1:2;x2=[0.2,0.3,0.4,0.5,0.8,1];n2=-2:3; [y,n] = sigadd(x1,n1,x2,n2)得:y =n=-1:10;x=sin(0.4*pi*n);y=fliplr(x);n1=-fliplr(n);subplot(2,1,1),stem(n,x) subplot(2,1,2),stem(n1,y在命令窗口键入:n=-1:10; x=sin(0.4*pi*n);n (samples)实验结果:1.(1)在命令窗口输入:tic; [am,pha]=dft1(x)N=length(x);w=exp(-j*2*pi/N);for k=1:Nsum=0;for n=1:Nsum=sum+x(n)*w^((k-1)*(n-1));endam(k)=abs(sum);pha(k)=angle(sum);end;toc得到如下结果:am =Columns 1 through 11120.0000 41.0066 20.9050 14.3996 11.3137 9.6215 8.6591 8.1567 8.0000 8.1567 8.6591Columns 12 through 169.6215 11.3137 14.3996 20.9050 41.0066pha =Columns 1 through 110 1.7671 1.9635 2.1598 2.3562 2.5525 2.7489 2.9452 3.1416 -2.9452 -2.7489Columns 12 through 16-2.5525 -2.3562 -2.1598 -1.9635 -1.7671Elapsed time is 0.047000 seconds.(2)在命令窗口输入:tic;[am,pha]=dft2(x)N=length(x);n=[0:N-1];k=[0:N-1];w=exp(-j*2*pi/N);nk=n’*k;wnk=w.^(nk); Xk=x*wnk; am= abs(Xk); pha=angle(Xk); toc得到下图:figure(1)00.10.20.30.40.50.60.70.80.91signal x(n), 0 <= n <= 99(2)在命令窗口键入:n3=[0:1:99];y3=[x(1:1:10) zeros(1,90)]; %添90个零。
实验2 离散时间信号的频谱分析1、实验内容一、编写子函数计算长度为N 的序列x(n) ( 0≤n ≤ N-1)的离散时间傅里叶变换,将频率均匀离散化, 一个周期内有M 个点。
要求画出虚部、实部、幅度、相位,并标注坐标轴。
二、对矩形序列x(n)=RN(n)1. 用公式表示x(n)的频谱,求出其幅度谱和相位谱;2. 利用编写的子函数,计算并画出x(n)的频谱1)固定M ,改变N ,观察N 的取值对频谱的最大值、过零点、第一旁瓣幅度与最大值的比值以及相位谱的影响;2)固定N ,改变M ,观察M 的取值对幅度谱和相位谱的影响。
如: M=4,26,100N=4,26,100三、利用子函数,画出信号x(n)=sin(pi*n/5)和 x(n)=cos(pi*n/4)+cos(pi*n/8) ( 0≤n ≤ N -1)的幅度谱和相位谱。
N 分别取为8,16,20,64,75,128,M=256。
观察N 取不同值时信号频谱的相同和不同之处,为什么会有这样的结果。
2、编程原理、思路和公式(1)、给定长度为N 的序列x(n)的离散时间傅里叶变换(DTFT )的公式为 10()()N jwjwn n X e x n e --==∙∑ 1()()2j w j w n x n X e e d w πππ-=⎰。
可以看出x(n)的DTFT 仍然是一个连续函数,所以需要将数字角频域w 离散化,设一个频率周期内离散点有M 个,则第k 个点所代表的数字角频率2w k M π=。
这样x(n)的DTFT 变成:2210()()()N j k j nk jw M M n X e X e x n eππ--===∙∑ 01k M ≤≤-,(2)、因为0≤.n ≤.N-1, 01k M ≤≤- 设置两层for 循环,用sum 表示累加求和的值,即可实现2210()()()N j k j nk jw MM n X e X e x n eππ--===∙∑(3)对矩形序列x(n)=R4(n),首先固定M 不变,改变N 的取值。
0.60007.0000-5.4000所以,X=[错误!未找到引用源。
]=[ 0.6000, 7.0000, -5.4000]’实验结果2:K=1.732051实验结果3:三曲线的对比图如下所示:图1.1 三曲线的对比实验二基于MATLAB信号处理实验xlabel('频率/Hz');ylabel('振幅/dB');title('布莱克窗的幅频特性');grid on;subplot(2,1,2);plot(f4,180/pi*unwrap(angle(H4)));xlabel('频率/Hz');ylabel('相位');title('布莱克窗的相频特性');grid on;六、实验结果实验结果2.1:图2-1 x(n)与y(n)的互相关序列图由实验结果可知,x(n)与y(n)的互相关只在区间[-4,8]上有能力,刚好是区间[-3,3]与右移后的区间[-1,5]两端点之和,与结论一致。
且互相关在2处达到最大。
实验结果2.2.1:其表示的差分方程为:y(n)-0.8145y(n-4)=x(n)+x(n-4)实验结果2.2.2:滤波器的幅频和相频图如下所示:图2-2 滤波器的幅频与相频图实验结果2.2.3:由下图实验结果可知,输出信号相对于输入信号有一小小的延迟,基本上x(n)的频点都通过了,滤波器是个梳状filter,正好在想通过的点附近相位为0,也就是附加延迟为0图2-3 滤波器的幅度和相位变化图2-4 两信号波形实验结果2.3:四种带通滤波器的窗函数的频率响应如下所示:图2-5 矩形窗的频率特性图2-6 汉宁窗的频率特性图2-7 海明窗的频率特性图2-8 布莱克曼窗的频率特性图3-1 加噪前、后图像对比图3-2 加椒盐噪声的图像均值滤波前、后的图像对比图3-3 加椒盐噪声的图像中值滤波前、后的图像对比图3-4加高斯噪声的图像均值滤波前、后的图像对比图3-5 加高斯噪声的图像中值滤波前、后的图像对比实验结果3.2:图3-6 原图及重构图像图3-7 程序运行结果由实验结果可知,当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.768259,重构图像置为0的变换系数的个数个数为:43.708737;当DCT变换的系数置0个数小于10时,重构图像与原图像的峰值信噪比15.922448,重构图像置为0的变换系数的个数个数为:36.110705;当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.768259,重构图像置为0的变换系数的个数个数为:30.366348;可以发现,在抛弃部分DCT系数后,重构图像时不会带来其画面质量的显著下降,采用这种方法来实现压缩算法时,可以通过修改mask变量中的DCT系数来更好地比较仿真结果。
物理与电子电气工程学院实验报告课程名称:数字信号处理院系:物电学院专业:电子信息工程班级:1307学号:171313199姓名:董宝坤实验报告(1)实验名称常见离散信号产生与实现实验日期指导教师实验报告(2)实验名称离散时间系统的时域分析实验日期指导教师实验报告(3)实验名称离散时间LTI系统的z域分析实验日期指导教师实验报告(4)实验名称用FFT进行谱分析实验日期指导教师实验五 数字滤波器的结构一、 实验目的(1) 加深对数字滤波器分类与结构的了解;(2) 明确数字滤波器的基本结构及其相互间的转换方法;(3) 掌握用MATLAB 进行数字滤波器各种结构相互间转换的子函数及程序编写方法。
二、 实验原理一个离散LSI 系统可用系统函数来表示;()()()12001212120z 11MmM mm M NNkN k k bz Y b b z b z b z H z X z a z a z a z a z ----=----=++++===+++++∑∑ 也可用差分方程来表示:()()()1NMk m k m y n a y n k b x n m ==+-=-∑∑当k a 至少有一个不为0时,则在有限z 平面上存在极点,表示一个IIR 数字滤波器;当k a 全都为0时,系统不存在极点,表示一个FIR 系统。
IIR 数字滤波器的基本结构分为直接Ⅰ型、直接Ⅱ型、级联型和并联型。
FIR 数字滤波器的基本结构分为横截型、级联型、并联型、、线性相位型和频率抽样型。
三、实验仪器微型计算机、MATLAB 四、 实验内容(1) 已知一个IIR 系统的系统函数为()1231230.10.40.40.110.30.550.2z z z H z z z z-------+-=+++ 将其从直接型转换为级联型和并联型结构,并画出各种结构的流程图。
(2) 已知一个FIR 系统的系统函数为()12340.20.8850.212+0.212+0.885H z z z z z ----=++将其从横截型转换为级联型结构,并画出各种结构的流程图。
实验一 基于Matlab 的数字信号处理基本操作一、 实验目的:学会运用MA TLAB 表示的常用离散时间信号;学会运用MA TLAB 实现离散时间信号的基本运算。
二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。
三、 实验内容:(一) 离散时间信号在MATLAB 中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用)(n x 来表示,自变量必须是整数。
离散时间信号的波形绘制在MATLAB 中一般用stem 函数。
stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。
如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。
由于MATLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。
类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。
1. 单位取样序列单位取样序列)(n δ,也称为单位冲激序列,定义为)0()0(01)(≠=⎩⎨⎧=n n n δ要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。
在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即function y=impDT(n)y=(n==0); %当参数为0时冲激为1,否则为0调用该函数时n 必须为整数或整数向量。
【实例1-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。
解:MATLAB 源程序为>>n=-3:3; >>x=impDT(n);>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1])程序运行结果如图1-1所示。
图1-1 单位冲激序列2. 单位阶跃序列单位阶跃序列)(n u 定义为)0()0(01)(<≥⎩⎨⎧=n n n u在MA TLAB 中,冲激序列可以通过编写uDT .m 文件来实现,即function y=uDT(n)y=n>=0; %当参数为非负时输出1调用该函数时n 也同样必须为整数或整数向量。
【实例1-2】 利用MATLAB 的uDT 函数绘出单位阶跃序列的波形图。
解:MATLAB 源程序为>>n=-3:5; >>x=uDT(n);>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位阶跃序列') >>axis([-3 5 -0.1 1.1])程序运行结果如图1-2所示。
3. 矩形序列矩形序列)(n R N 定义为),0()10(01)(N n n N n n R N ≥<-≤≤⎩⎨⎧= 1矩形序列有一个重要的参数,就是序列宽度N 。
)(n R N 与)(n u 之间的关系为)()()(N n u n u n R N --=因此,用MATLAB 表示矩形序列可利用上面所讲的uDT 函数。
图2-2 单位阶跃序列【实例1-3】 利用MATLAB 命令绘出矩形序列)(5n R 的波形图。
解:MATLAB 源程序为>>n=-3:8;>>x=uDT(n)-uDT(n-5);>>stem(n,x,'fill'),xlabel('n'),grid on >>title('矩形序列') >>axis([-3 8 -0.1 1.1])程序运行结果如图1-3所示。
4. 单边指数序列单边指数序列定义为)()(n u a n x n =【实例2-4】 试用MA TLAB 命令分别绘制单边指数序列)(2.1)(1n u n x n =、)()2.1()(2n u n x n -=、)()8.0()(3n u n x n =、)()8.0()(4n u n x n -=的波形图。
解:MATLAB 源程序为>>n=0:10;>>a1=1.2;a2=-1.2;a3=0.8;a4=-0.8; >>x1=a1.^n;x2=a2.^n;x3=a3.^n;x4=a4.^n; >>subplot(221)>>stem(n,x1,'fill'),grid on >>xlabel('n'),title('x(n)=1.2^{n}') >>subplot(222)>>stem(n,x2,'fill'),grid on>>xlabel('n'),title('x(n)=(-1.2)^{n}') >>subplot(223)>>stem(n,x3,'fill'),grid on >>xlabel('n'),title('x(n)=0.8^{n}') >>subplot(224)>>stem(n,x4,'fill'),grid on图1-3 矩形序列>>xlabel('n'),title('x(n)=(-0.8)^{n}')单边指数序列n 的取值范围为0≥n 。
程序运行结果如图1-4所示。
从图可知,当1||>a 时,单边指数序列发散;当1||<a 时,该序列收敛。
当0>a 时,该序列均取正值;当0<a 时,序列在正负摆动。
5. 正弦序列正弦序列定义为)sin()(0ϕω+=n n x其中,0ω是正弦序列的数字域频率;ϕ为初相。
与连续的正弦信号不同,正弦序列的自变量n 必须为整数。
可以证明,只有当2ωπ为有理数时,正弦序列具有周期性。
【实例1-5】 试用MATLAB 命令绘制正弦序列)6sin()(πn n x =的波形图。
解:MATLAB 源程序为>>n=0:39; >>x=sin(pi/6*n);>>stem(n,x,'fill'),xlabel('n'),grid on >>title('正弦序列') >>axis([0,40,-1.5,1.5]); eree程序运行结果如图1-5所示。
图1-4 单边指数序列6. 复指数序列复指数序列定义为n j a e n x )(0)(ω+=当0=a 时,得到虚指数序列nj e n x 0)(ω=,式中0ω是正弦序列的数字域频率。
由欧拉公式知,复指数序列可进一步表示为)]sin()[cos()(00)(00ωωωωn j n e e e e n x an n j an n j a +===+与连续复指数信号一样,我们将复指数序列实部和虚部的波形分开讨论,得出如下结论:(1)当0>a 时,复指数序列)(n x 的实部和虚部分别是按指数规律增长的正弦振荡序列;(2)当0<a 时,复指数序列)(n x 的实部和虚部分别是按指数规律衰减的正弦振荡序列;(3)当0=a 时,复指数序列)(n x 即为虚指数序列,其实部和虚部分别是等幅的正弦振荡序列。
【实例1-6】 用MA TLAB 命令画出复指数序列n j e n x )6101(2)(π+-=的实部、虚部、模及相角随时间变化的曲线,并观察其时域特性。
解:MATLAB 源程序为>>n=0:30;>>A=2;a=-1/10;b=pi/6; >>x=A*exp((a+i*b)*n); >>subplot(2,2,1)>>stem(n,real(x),'fill'),grid on图1-5 正弦序列>>title('实部'),axis([0,30,-2,2]),xlabel('n') >>subplot(2,2,2)>>stem(n,imag(x),'fill'),grid on>>title('虚部'),axis([0,30,-2,2]) ,xlabel('n') >>subplot(2,2,3)>>stem(n,abs(x),'fill'),grid on >>title('模'),axis([0,30,0,2]) ,xlabel('n') >>subplot(2,2,4)>>stem(n,angle(x),'fill'),grid on>>title('相角'),axis([0,30,-4,4]) ,xlabel('n')程序运行后,产生如图1-6所示的波形。
(二) 离散时间信号的基本运算对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位、反折等。
两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MA TLAB 的点乘和点除、序列移位和反折来实现,与连续时间信号处理方法基本一样。
【实例1-7】 用MA TLAB 命令画出下列离散时间信号的波形图。
(1)()()()[]N n u n u a n x n--=1;(2)()()312+=n x n x (3)()()213-=n x n x ;(4)()()n x n x -=14解:设8.0=a ,8=N ,MATLAB 源程序为>>a=0.8;N=8;n=-12:12; >>x=a.^n.*(uDT(n)-uDT(n-N)); >>n1=n;n2=n1-3;n3=n1+2;n4=-n1; >>subplot(411)图1-6 复指数序列图1-7 离散时间信号的基本运算及波形图>>stem(n1,x,'fill'),grid on >>title('x1(n)'),axis([-15 15 0 1]) >>subplot(412)>>stem(n2,x,'fill'),grid on >>title('x2(n)'),axis([-15 15 0 1]) >>subplot(413)>>stem(n3,x,'fill'),grid on >>title('x3(n)'),axis([-15 15 0 1]) >>subplot(414)>>stem(n4,x,'fill'),grid on >>title('x4(n)'),axis([-15 15 0 1])其波形如图1-7所示。