Matlab数字信号处理实验报告
数字信号处理MATLAB实验报告-2
实验报告课程名称:数字信号处理实验专业班级:姓名:学号:一、实验目的及任务 学会运用MATLAB 求解离散时间系统的零状态响应;学会运用MATLAB 求解离散时间系统的单位取样响应;学会运用MATLAB 求解离散时间系统的卷积和。
二、实验内容与步骤离散时间系统的响应离散时间LTI 系统可用线性常系数差分方程来描述,即∑∑==-=-Mj jN i i j n x b i n y a 00)()( (3-1) 其中,i a (0=i ,1,…,N )和j b (0=j ,1,…,M )为实常数。
MATLAB 中函数filter 可对式(13-1)的差分方程在指定时间范围内的输入序列所产生的响应进行求解。
函数filter 的语句格式为y=filter(b,a,x)其中,x 为输入的离散序列;y 为输出的离散序列;y 的长度与x 的长度一样;b 与a 分别为差分方程右端与左端的系数向量。
离散时间系统的单位取样响应系统的单位取样响应定义为系统在)(n δ激励下系统的零状态响应,用)(n h 表示。
MATLAB 求解单位取样响应可利用函数filter ,并将激励设为前面所定义的impDT 函数。
MATLAB 另一种求单位取样响应的方法是利用控制系统工具箱提供的函数impz 来实现。
impz 函数的常用语句格式为impz(b,a,N)其中,参数N 通常为正整数,代表计算单位取样响应的样值个数。
离散时间信号的卷积和运算由于系统的零状态响应是激励与系统的单位取样响应的卷积,因此卷积运算在离散时间信号处理领域被广泛应用。
离散时间信号的卷积定义为∑∞-∞=-==m m n h m x n h n x n y )()()(*)()( (3-2)可见,离散时间信号的卷积运算是求和运算,因而常称为“卷积和”。
MATLAB 求离散时间信号卷积和的命令为conv ,其语句格式为y=conv(x,h)其中,x 与h 表示离散时间信号值的向量;y 为卷积结果。
基于MATLAB的数字信号处理实验报告
西北工业大学《基于MATLAB的数字信号处理》实验报告学院:学号:姓名:专业:实验时间: 2014年7月指导教师:西北工业大学2014年07 月title('三曲线对比图'); %标注标题六、实验结果实验结果1:X =所以,X=[x1,x2,x3]=[ , , ]’实验结果2:K=实验结果3:三曲线的对比图如下所示:figure;subplot(2,1,1);plot(f4,20*log10(abs(H4)));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 x(n)与y(n)的互相关序列图由实验结果可知,x(n)与y(n)的互相关只在区间[-4,8]上有能力,刚好是区间[-3,3]与右移后的区间[-1,5]两端点之和,与结论一致。
且互相关在2处达到最大。
实验结果:其表示的差分方程为:y(n)(n-4)=x(n)+x(n-4)实验结果:滤波器的幅频和相频图如下所示:图2-2 滤波器的幅频与相频图实验结果:由下图实验结果可知,输出信号相对于输入信号有一小小的延迟,基本上x(n)的频点都通过了,滤波器是个梳状filter,正好在想通过的点附近相位为0,也就是附加延迟为0图2-3 滤波器的幅度和相位变化图2-4 两信号波形实验结果:四种带通滤波器的窗函数的频率响应如下所示:图2-5 矩形窗的频率特性图2-6 汉宁窗的频率特性图2-7 海明窗的频率特性图2-8 布莱克曼窗的频率特性图3-1 加噪前、后图像对比图3-2 加椒盐噪声的图像均值滤波前、后的图像对比图3-3 加椒盐噪声的图像中值滤波前、后的图像对比图3-4加高斯噪声的图像均值滤波前、后的图像对比图3-5 加高斯噪声的图像中值滤波前、后的图像对比实验结果:图3-6 原图及重构图像图3-7 程序运行结果由实验结果可知,当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为,重构图像置为0的变换系数的个数个数为:;当DCT变换的系数置0个数小于10时,重构图像与原图像的峰值信噪比,重构图像置为0的变换系数的个数个数为:;当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为,重构图像置为0的变换系数的个数个数为:;可以发现,在抛弃部分DCT系数后,重构图像时不会带来其画面质量的显著下降,采用这种方法来实现压缩算法时,可以通过修改mask变量中的DCT系数来更好地比较仿真结果。
数字信号处理实验报告MATLAB5
第三章离散时间系统的频域分析(3)-Z变换分析目的:学习Z变换的性质及应用。
Q3.46 使用程序P3.1在单位圆生求下面的z变换:% 程序 P3_1% 离散时间傅里叶变换的求取clf;% 计算离散时间傅立叶变换的频率样本w = -4*pi:8*pi/511:4*pi;num = [2 5 9 5 3];den = [5 45 2 1 1];h=freqz(num,den,w);% Plot the DTFTfigure(1)subplot(2,1,1)plot(w/pi,real(h));gridtitle('H(e^{j\omega})的实部')xlabel('\omega /\pi');ylabel('振幅');subplot(2,1,2)plot(w/pi,imag(h));gridtitle('H(e^{j\omega})的虚部')xlabel('\omega /\pi');ylabel('振幅');figure(2)subplot(2,1,1)plot(w/pi,abs(h));gridtitle('|H(e^{j\omega})|幅度谱')xlabel('\omega /\pi');ylabel('振幅');subplot(2,1,2)plot(w/pi,angle(h));gridtitle('相位谱 arg[H(e^{j\omega})]')xlabel('\omega /\pi');ylabel('以弧度为单位的相位');figure(3)h = zplane(num, den);%画出极零图title('极零图')xlabel(''); ylabel('');运行结果为:Q3.47编写一个MATLAB程序,计算并显示零点和极点,计算并显示其因式形式,并产生以z^-1的两个多项式之比的形式表示的z变换的零点图。
数字信号处理实验报告
《数字信号处理》—实验指导数字信号处理课程组电子与信息工程学院班级:姓名:学号:综合评定:成绩:指导教师签字:实验一 典型离散信号及其MATLAB 实现一、实验目的1. 掌握MATLAB 语言的基本操作,学习基本的编程功能。
2. 掌握MATLAB 产生常用离散时间信号的编程方法。
3. 掌握MATLAB 计算卷积的方法。
二、实验原理(一)MATLAB 常用离散时间信号1. 单位抽样序列:⎩⎨⎧=01)(n δ 00≠=n n在MATLAB 中可以利用zeros()函数实现。
;1)1();,1(==x N zeros x如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ 0≠=n kn2.单位阶跃序列:⎩⎨⎧01)(n u<≥n n 在MATLAB 中可以利用ones()函数实现。
);,1(N ones x =3.正弦序列:)/2sin()(ϕπ+=Fs fn A n x在MATLAB 中:)/***2sin(*1:0fai Fs n f pi A x N n +=-=4.复正弦序列:n j e n x ϖ=)(在MATLAB 中:)**ex p(1:0n w j x N n =-=5.指数序列:na n x =)(在MATLAB 中:na x N n .^1:0=-=6.y=fliplr(x)——信号的翻转; y=square(x)——产生方波信号y=sawtooth(x)——产生锯齿波信号; y=sinc(x)——产生sinc 函数信号。
(二)离散时间信号的卷积由于系统的零状态响应是激励与系统的单位取样响应的卷积,因此卷积运算在离散时间信号处理领域被广泛应用。
离散时间信号的卷积定义为∑∞-∞=-==m m n h m x n h n x n y )()()(*)()(可见,离散时间信号的卷积运算是求和运算,因而常称为“卷积和”。
MATLAB 求离散时间信号卷积和的命令为conv ,其语句格式为y=conv(x,h)其中,x 与h 表示离散时间信号值的向量;y 为卷积结果。
【精品】数字信号处理实验报告
【精品】数字信号处理实验报告
1 实验目的
本次实验的目的是在MATLAB软件环境中运用数字信号处理理论,通过实验操作来检验用于数字信号处理的算法的正确性,以便明确数字信号处理理论在实际应用中的重要作用。
2 实验原理
数字信号处理实验的原理是使用MATLAB进行数字信号处理算法实验,首先,设置一些用于数字信号处理的参数,如传输函数、离散时间区间、采样频率、滤波器类型等;其次,按照信号处理的算法进行编程实现,搭建一个数字信号处理系统,在MATLAB下对信号进行处理,包括采样、滤波和量化等;最后,对处理后的信号进行数字分析,监测数字信号处理后的变化趋势,验证数字信号处理算法的正确性。
3 实验步骤
(1) 建立信号处理实验系统:选择一个常见的信号处理算法,运用MATLAB软件分别编写信号发生程序、信号采样程序、滤波程序和信号量化程序;
(2) 运行实验程序:实验同学可以自行设置参数,如传输函数、离散时间区间、采样频率、滤波器类型等,调整完毕后,点击“run”,运行实验程序;
(3) 观察实验结果:运行完毕后,可以观察MATLAB的图形结果,以此来分析信号处理算法的性能;
(4) 对结果进行分析:经过上述实验操作后,可以根据所得到的实验结果来判断信号处理算法的性能,如输出信号的噪声抑制能力、良好的时域和频域性能等,从而验证信号处理理论在实际应用中的价值。
4 总结。
数字信号处理实验报告——基于MATLAB的数字滤波器设计
实验6 基于MATLAB 的数字滤波器设计实验目的:加深对数字滤波器的常用指标和设计过程的理解。
实验原理:低通滤波器的常用指标:PP j P for e G ωωδδω≤+≤≤-,1)(1πωωδω≤≤≤S S j for eG ,)(通带边缘频率:Pω,阻带边缘频率:Sω ,通带起伏:P δ,通带峰值起伏:])[1(log2010dB p pδα--=,阻带起伏:sδ,最小阻带衰减:])[(log 2010dB s S δα-=。
数字滤波器有IIR 和FIR 两种类型,它们的特点和设计方法不同。
在MATLAB 中,可以用[b ,a]=butter (N,Wn )等函数辅助设计IIR 数字滤波器, 也可以用b=fir1(N,Wn,’ftype’) 等函数辅助设计FIR 数字滤波器。
实验内容: 利用MATLAB 编程设计一个数字带通滤波器,指标要求如下:通带边缘频率:10.4P ωπ=,20.6P ωπ=,通带峰值起伏:][1dB p≤α。
阻带边缘频率:πω3.01=S ,20.7S ωπ=,最小阻带衰减:][40dB S ≥α。
分别用IIR 和FIR 两种数字滤波器类型进行设计。
实验要求:给出IIR 数字滤波器参数和FIR 数字滤波器的冲激响应,绘出它们的幅度和相位频响曲线,讨论它们各自的实现形式和特点。
实验步骤:①Butterworth 滤波器的设计(IIR )>>wp=[0.4*pi,0.6*pi]; >>wr=[0.3*pi,0.7*pi]; >>Ap=1; >>Ar=40;Sω-Pω-P SωPassband StopbandTransition bandFig 7.1 Typical magnitudespecification for a digital LPF>>[N,Wn]=buttord(wp/pi,wr/pi,Ap,Ar)N =7Wn =0.3854 0.6146>> [b,a]=butter(N,Wn,'bandpass')b =Columns 1 through 120.0002 0 -0.0014 0 0.0042 0 -0.0071 0 0.0071 0 -0.0042 0Columns 13 through 150.0014 0 -0.0002a =Columns 1 through 121.0000 0.0000 3.7738 0.0000 6.5614 0.0000 6.6518 0.0000 4.2030 0.0000 1.6437 0.0000Columns 13 through 150.3666 0.0000 0.0359>> [H,w]=freqz(b,a);>>mag=abs(H);>>plot(w/pi,mag);>>xlabel('角频率(\Omega)');>>ylabel('幅度|Ha(j\Omega)|');>> title('数字butterworth带通滤波器幅度响应|Ha(j\Omega)|');>>phase=angle(H);>>plot(w/pi,phase);>>xlabel('角频率(\Omega)');>>ylabel('相位');>> title('数字butterworth带通滤波器相位响应曲线');>>②FIR滤波器的设计:>> wp1 = 0.4*pi; wp2 = 0.6*pi;>> ws1 = 0.3*pi; ws2 = 0.7*pi;>>tr_width = min((wp1-ws1),(ws2-wp2)) tr_width =0.3142>> M = ceil(6.2*pi/tr_width) + 1M =63>> n=[0:1:M-1];>> wc1 = (ws1+wp1)/2; wc2 = (wp2+ws2)/2; >>wc=[wc1/pi,wc2/pi];>>window= hanning(M);>> [h1,w]=freqz(window,1);>>figure(1);>>subplot(2,1,1)>>stem(window);>>axis([0 60 0 1.2]);>>grid;>>xlabel('n');>> title('Hanning窗函数');>>subplot(2,1,2)>>plot(w/pi,20*log(abs(h1)/abs(h1(1)))); >>axis([0 1 -350 0]);>>grid;>>xlabel('w/\pi');>>ylabel('幅度(dB)');>> title('Hanning窗函数的频谱');>>hn = fir1(M-1,wc, hanning (M));>> [h2,w]=freqz(hn,1,512);>>figure(2);>>subplot(2,1,1)>>stem(n,hn);>>axis([0 60 -0.25 0.25]);>>grid;>>xlabel('n');>>ylabel('h(n)');>> title('Hanning窗函数的单位脉冲响应'); >>subplot(2,1,2)>>plot(w/pi,20*log(abs(h2)/abs(h2(1)))); >>grid;>>xlabel('w/\pi');>>ylabel('幅度(dB)');>>figure(3);>>phase=angle(h1);>>plot(phase);>>axis([1 pi -1 0]);>>xlabel('w/\pi');>>ylabel('线性相位');>> title('Hanning窗函数相位特性曲线'); >>实现形式及特点分析:1.在本例中,相同的技术指标下,IIR滤波器实现的阶数为N=7,而FIR滤波器的阶数N=63。
数字信号处理实验报告1-5
实验一时域离散信号的产生及时域处理实验目的:了解Matlab软件数字信号处理工具箱的初步使用方法。
掌握其简单的Matlab语言进行简单的时域信号分析。
实验内容:[1.1]已知两序列x1=[0,1,2,3,4,3,2,1,0];n1=[-2:6];x2=[2,2,0,0,0,-2,-2],n2=[2:8].求他们的和ya及乘积yp. 程序如下:x1=[0,1,2,3,4,3,2,1,0];ns1=-2;x2=[2,2,0,0,0,-2,-2];ns2=2;nf1=ns1+length(x1)-1;nf2=ns2+length(x2)-1;ny=min(ns1,ns2):max(nf1,nf2);xa1=zeros(1,length(ny));xa2=xa1;xa1(find((ny>=ns1)&(ny<=nf1)==1))=x1;xa2(find((ny>=ns2)&(ny<=nf2)==1))=x2;ya=xa1+xa2yp=xa1.*xa2subplot(4,4,1),stem(ny,xa1,'.')subplot(4,1,2),stem(ny,xa2,'.')line([ny(1),ny(end)],[0,0])subplot(4,1,3),stem(ny,ya,'.')line([ny(1),ny(end)],[0,0])subplot(4,1,4),stem(ny,yp,'.')line([ny(1),ny(end)],[0,0])[1.2]编写产生矩形序列的程序。
并用它截取一个复正弦序列,最后画出波形。
程序如下:clear;close alln0=input('输入序列起点:n0=');N=input('输入序列长度:N=');n1=input('输入位移:n1=');n=n0:n1+N+5;u=[(n-n1)>=0];x1=[(n-n1)>=0]-[(n-n1-N)>=0];x2=[(n>=n1)&(n<(N+n1))];x3=exp(j*n*pi/8).*x2;subplot(2,2,1);stem(n,x1,'.');xlabel('n');ylabel('x1(n)');axis([n0,max(n),0,1]);subplot(2,2,3);stem(n,x2,'.');xlabel('n');ylabel('x2(n)');axis([n0,max(n),0,1]);subplot(2,2,2);stem(n,real(x3),'.'); xlabel('n');ylabel('x3(n)的实部');line([n0,max(n)],[0,0]);axis([n0,max(n),-1,1]);subplot(2,2,4);stem(n,imag(x3),'.'); xlabel('n');ylabel('x3(n)的虚部');line([n0,max(n)],[0,0]);axis([n0,max(n),-1,1]);[1.3]利用已知条件,利用MATLAB生成图形。
数字信号处理matlab实验报告材料-数字信号处理实验3
alpha=(N-1)/2; %求滤波器的相位延迟
xlabel(频率/Hz);ylabel(相位/^o);grid on;
m=n-alpha+eps; %eps 为 MATLAB 系统的精度
figure(2)
hd=sin(wc*m)./(pi*m); %求理想滤波器脉冲响应
f1=8;f2=21;%输入信号含有的频率
主函数(picture.m)
function d = mid_filter(x)
J=imread( C:\Users\yangk\Desktop\666\SaltPapperNoise.tif);%
[height, width]=size(x); %输入图像是 hight x width
读取图片
x1=double(x);
win=hanning(Nw); %接受汉宁窗
N=100;%数据点数
h=hd.*win; %在时间域乘积对应于频率域的卷积
dt=T;n=0:N-1;t=n*dt; %时间序列
b=h;
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t);%输入信号
figure(1)
subplot(2,1,1),plot(t,x),title(输入信号)
[height, width]=size(picture); %输入图像是 hight x width
图 1 Building.tif
图 2 Cups.tif
x1=double(picture);
实现函数(sharpen_filter.m)
x2=x1;
%3*3 锐化实现函数
for i=1:height-2%最终一列不用计算
end
matlab信号分析实验报告
matlab信号分析实验报告Matlab信号分析实验报告引言:信号分析是一门重要的学科,它涉及到信号的获取、处理和解释。
在现代科学和工程领域中,信号分析被广泛应用于各种领域,如通信、图像处理、音频处理等。
本实验报告将介绍在Matlab环境下进行信号分析的实验过程和结果。
1. 实验目的本实验旨在通过Matlab软件对不同类型的信号进行分析,包括时域分析、频域分析和滤波处理。
通过实验,我们可以深入了解信号的特性和分析方法,并掌握Matlab在信号分析中的应用。
2. 实验材料和方法本实验使用了Matlab软件和一些信号处理工具箱。
实验中使用的信号包括正弦信号、方波信号和噪声信号。
我们首先通过Matlab生成这些信号,并对其进行采样和量化。
然后,我们进行时域分析,包括信号的时域波形绘制和功率谱密度估计。
接下来,我们进行频域分析,包括信号的傅里叶变换和频谱绘制。
最后,我们对信号进行滤波处理,包括低通滤波和高通滤波。
3. 实验结果和讨论在实验中,我们首先生成了一个正弦信号,并对其进行采样和量化。
通过时域分析,我们可以观察到信号的周期性和振幅。
通过频域分析,我们可以观察到信号的频谱分布。
我们还对正弦信号进行了低通滤波和高通滤波,观察到滤波后信号的变化。
接下来,我们生成了一个方波信号,并对其进行采样和量化。
通过时域分析,我们可以观察到信号的周期性和方波特征。
通过频域分析,我们可以观察到信号的频谱分布。
我们还对方波信号进行了低通滤波和高通滤波,观察到滤波后信号的变化。
最后,我们生成了一个噪声信号,并对其进行采样和量化。
通过时域分析,我们可以观察到信号的随机性和波动性。
通过频域分析,我们可以观察到信号的频谱分布。
我们还对噪声信号进行了低通滤波和高通滤波,观察到滤波后信号的变化。
通过以上实验结果,我们可以得出以下结论:- 时域分析可以帮助我们观察信号的波形和特征。
- 频域分析可以帮助我们观察信号的频谱分布和频率成分。
数字信号处理MATLAB实验
. 精选文档 实验一 熟悉MATLAB环境 一、实验目的 (1)熟悉MATLAB的主要操作命令。 (2)学会简单的矩阵输入和数据读写。 (3)掌握简单的绘图命令。 (4)用MATLAB编程并学会创建函数。 (5)观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。 (2)用MATLAB实现以下序列。 a)x(n)=0.8n 0≤n≤15 b)x(n)=e(0.2+3j)n 0≤n≤15 c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π) 0≤n≤15 d)将c)中的x(n)扩展为以16为周期的函数x16(n)=x(n+16),绘出四个周期。 e)将c)中的x(n)扩展为以10为周期的函数x10(n)=x(n+10),绘出四个周期。 (3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本。 . 精选文档 a)x1(n)=2x(n+2)-x(n-1)-2x(n)
b)51k2)kn(nx(n) x (4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注。
a) x(t)=sin(2πt) 0≤t≤10s b) x(t)=cos(100πt)sin(πt) 0≤t≤4s (5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1形,起点为n1,终点为n2。 (6)给定一因果系统)0.9z0.67z-1)/(1z2(1H(z)-2-1-1
求出并绘制H(z)
的幅频响应与相频响应。 (7)计算序列{8 -2 -1 2 3}和序列{2 3 -1 -3}的离散卷积,并作图表示卷积结果。 (8)求以下差分方程所描述系统的单位脉冲响应h(n), 0≤n<50 y(n)+0.1y(n-1)-0.06y(n-2)=x(n)-2x(n-1) 三、思考题 (1)对于有限长序列,如何用MATLAB计算其DTFT? (2)对于由两个子系统级联或并联的系统,如何用MATLAB计算它们的幅频响应与相频响应? 四、实验报告要求 (1)简述实验目的及原理。 (2)按实验步骤附上实验程序。 (3)按实验步骤附上有关离散系统的频率特性曲线。 (4)简要回答思考题。 五、与本实验有关的MATLAB函数 x=sin(2*pi*f/fs*n);生成频率为f,采样频率为fs的正弦信号,式中,n=[0 1 2 … N]。 . 精选文档 sum(X);对于向量X,计算X各元素的和。对于矩阵X,计算X各列元素之和组成的行向量。 plot(t,y);画出以向量t为坐标的向量y(行或列)的曲线。向量t和向量y具有相同的维数。命令plot(s1,t1,s2,t2,s3,t3);将在同一图上画出分别以t1,t2,t3为坐标的向量s1,s2,s3的曲线。 xlabel(‘samples’);在x轴上加上标注。 ylabel(‘amplitude’);在y轴上加上标注。 title(‘sinusoidal signal’);在图的上部加上标题。 y=conv(h,x);计算向量h和x的卷积,结果放在y中。 y=filter(b,a,x);以向量b和a为参数的滤波器对输入信号向量x进行滤波处理。 h=impz(b,a,N);计算b和a为参数的N点滤波器脉冲响应。 [H,f]=freqz(b,a,N,Fs);给定以Hz为单位的采样频率Fs,计算以(b,a)为参数的滤波器N点频率向量f和N点复频率向量H。该命令用于绘制滤波器的幅频和相频响应。如果省略左边的[H,f],该命令将直接绘出滤波器的对数幅频和相频响应。 .
