北邮《数字信号处理》Matlab实验——周期序列的谱分析
- 格式:pdf
- 大小:553.00 KB
- 文档页数:7
信号与系统实验报告实验三周期信号的频谱分析学院专业班级学号指导教师实验报告评分:_______实验三 周期信号的频谱分析一、实验目的1、掌握连续时间周期信号的傅里叶级数的物理意义和分析方法;2、观察截短傅里叶级数而产生的“Gibbs 现象”,了解其特点以及产生的原因;3、掌握各种典型的连续时间非周期信号的频谱特征。
二、实验容实验前,必须首先阅读本实验原理,读懂所给出的全部例程序。
实验开始时,先在计算机上运行这些例程序,观察所得到的信号的波形图。
并结合例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。
实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。
Q3-1 编写程序Q3_1,绘制下面的信号的波形图:-+-=)5cos(51)3cos(31)cos()(000t t t t x ωωω∑∞==10)cos()2sin(1n t n n nωπ其中,ω0 = 0.5π,要求将一个图形窗口分割成四个子图,分别绘制cos(ω0t)、cos(3ω0t)、cos(5ω0t) 和x(t) 的波形图,给图形加title ,网格线和x 坐标标签,并且程序能够接受从键盘输入的和式中的项数。
抄写程序Q3_1如下: clear,%Clear all variablesclose all,%Close all figure windowsdt = 0.00001; %Specify the step of time variable t = -2:dt:4; %Specify the interval of time w0=0.5*pi; x1=cos(w0.*t); x2=cos(3*w0.*t); x3=cos(5*w0.*t);N=input('Type in the number of the harmonic components N='); x=0; for q=1:N;x=x+(sin(q*(pi/2)).*cos(q*w0*t))/q; endsubplot(221)plot(t,x1)%Plot x1axis([-2 4 -2 2]);grid on,title('signal cos(w0.*t)')subplot(222)plot(t,x2)%Plot x2axis([-2 4 -2 2]);grid on,title('signal cos(3*w0.*t))')subplot(223)plot(t,x3)%Plot x3axis([-2 4 -2 2])grid on,title('signal cos(5*w0.*t))')执行程序Q3_1所得到的图形如下:Q3-2给程序Program3_1增加适当的语句,并以Q3_2存盘,使之能够计算例题1中的周期方波信号的傅里叶级数的系数,并绘制出信号的幅度谱和相位谱的谱线图。
数字信号处理实验报告实验名称:数字信号处理实验学生姓名:班级:班内序号:1.实验要求假设信号x(n) 由下述信号组成:请选择合适的长度N 和窗函数,用DFT 分析其频谱,得到清楚的三根谱线。
2.实验代码和实验结果N = 1000; % Length of DFTn = [0:1:N-1];xn = 0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);Xk = fft(xn,N);k=[0:1:N-1];subplot(5,1,1);stem(k,abs(Xk(1:1:N)));title('DFT x(n)');xlabel('k');axis([140,240,0,6])subplot(5,1,2);stem(k, abs(Xk(1:1:N)),'r');%画出sin(0.3npi)-cos(0.302npi-pi/4) axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,3);stem(k, 1000*abs(Xk(1:1:N)),'g');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');subplot(5,1,4);stem(k,0.01*abs(Xk(1:1:N)),'k');%画%sin(0.3npi)-cos(0.302npi-pi/4)axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,5);stem(k, 10*abs(Xk(1:1:N)),'m');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');结论:由上图及过程可知,当DFT变换长度为1000时所得到的谱线非常理想。
MATLAB 信号频谱分析实验报告实验目的本实验旨在使用MATLAB软件进行信号频谱分析,包括对信号的时域分析和频域分析,以及频谱图的绘制和解读。
实验步骤1. 准备工作在开始实验之前,首先需要安装MATLAB软件,并启动软件。
2. 信号生成在MATLAB的命令窗口中,通过使用信号发生器生成一个信号。
可以选择使用正弦波、方波、三角波等不同类型的信号进行频谱分析。
3. 信号时域分析使用MATLAB的时域分析函数,如plot函数,绘制生成的信号的时域波形图。
plot(t, x);title('信号的时域波形图');xlabel('时间');ylabel('幅值');其中,t表示时间轴上的时间点,x表示生成的信号。
4. 信号频域分析使用MATLAB的频域分析函数,如fft函数,将时域信号转换为频域信号。
X = fft(x);可以通过计算得到信号的频率分量f和幅度谱A。
L = length(x);f = Fs*(0:(L/2))/L;A = abs(X/L);A = A(1:L/2+1);其中,Fs表示信号的采样率。
5. 绘制频谱图使用MATLAB的绘图函数,如plot函数,将频域信号的频谱绘制成图表。
plot(f, A);title('信号的频谱图');xlabel('频率');ylabel('幅值');6. 频谱图解读通过观察频谱图,可以分析信号在不同频率上的能量分布情况。
高幅度的频率分量表示信号在该频率上具有较大的能量,低幅度的频率分量表示信号在该频率上具有较小的能量。
7. 实验总结通过本次实验,我们学习了如何使用MATLAB进行信号的时域分析和频域分析。
时域分析可以帮助我们观察信号在时域上的变化情况,频域分析可以帮助我们了解信号在不同频率上的能量分布情况。
通过绘制频谱图,我们可以直观地观察信号的频谱特征,并进行进一步的信号分析和处理。
matlab信号频谱分析实验报告《MATLAB信号频谱分析实验报告》摘要:本实验利用MATLAB软件对不同信号进行频谱分析,通过对信号的频谱特征进行分析和比较,探讨了不同信号的频谱特性及其应用。
实验结果表明,MATLAB信号频谱分析工具能够有效地帮助我们理解信号的频谱特性,为信号处理和通信系统设计提供了重要的参考依据。
引言:信号频谱分析是信号处理和通信领域中的重要内容之一,通过对信号的频谱特性进行分析,可以帮助我们了解信号的频率分布、能量分布和相位特性,为信号处理和通信系统设计提供重要的参考依据。
MATLAB作为一种强大的信号处理工具,提供了丰富的频谱分析函数和工具,能够帮助我们快速准确地分析信号的频谱特性。
实验目的:1. 掌握MATLAB中常用的信号频谱分析函数和工具;2. 对不同类型的信号进行频谱分析,比较它们的频谱特性;3. 探讨不同信号的频谱特性及其应用。
实验内容:1. 使用MATLAB中的fft函数对不同类型的信号进行频谱分析;2. 对比分析不同信号的频谱特性,包括频率分布、能量分布和相位特性;3. 分析不同信号的频谱特性对信号处理和通信系统设计的影响。
实验步骤:1. 生成不同类型的信号,包括正弦信号、方波信号和三角波信号;2. 使用MATLAB中的fft函数对生成的信号进行频谱分析;3. 分析不同信号的频谱特性,包括频率分布、能量分布和相位特性;4. 对比分析不同信号的频谱特性,探讨其应用和影响。
实验结果:1. 正弦信号的频谱特性:频率集中在一个点上,能量分布均匀,相位特性明显;2. 方波信号的频谱特性:频率分布为奇次谐波,能量分布不均匀,相位特性复杂;3. 三角波信号的频谱特性:频率分布为奇次谐波,能量分布均匀,相位特性简单。
实验结论:1. 正弦信号的频谱特性与其频率、幅值和相位有关,能够直观地反映信号的频率和相位特性;2. 方波信号的频谱特性包含丰富的谐波成分,能够用于频率多重复用通信系统的设计;3. 三角波信号的频谱特性简单明了,适合于频率调制和解调系统的设计。
数字信号处理软件实验——MatLab仿真实验报告学院:电子工程学院班级:2013211202姓名:学号:实验一:数字信号的 FFT 分析1、实验内容及要求(1) 离散信号的频谱分析:设信号 此信号的0.3pi 和 0.302pi 两根谱线相距很近,谱线 0.45pi 的幅度很小,请选择合适的序列长度 N 和窗函数,用 DFT 分析其频谱,要求得到清楚的三根谱线。
(2) DTMF 信号频谱分析用计算机声卡采用一段通信系统中电话双音多频(DTMF )拨号数字 0~9的数据,采用快速傅立叶变换(FFT )分析这10个号码DTMF 拨号时的频谱。
2、实验目的通过本次实验,应该掌握:(a) 用傅立叶变换进行信号分析时基本参数的选择。
(b) 经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT ) 后信号频谱上的区别,前者 DTFT 时间域是离散信号,频率域还是连续的,而 DFT 在两个域中都是离散的。
(c) 离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。
(d) 获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。
(e) 建立 DFT 从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用是数字音频压缩中的分析滤波器,例如 DVD AC3 和MPEG Audio 。
3.设计思路及实验步骤1)离散信号的频谱分析:该信号中要求能够清楚的观察到三根谱线。
由于频率0.3pi 和0.302pi 间隔非常小,要清楚的显示,必须采取足够大小的N ,使得分辨率足够好,至少到0.001单位级,而频率0.45pi 的幅度很小,要清楚的观察到它的谱线,必须采取幅度够大的窗函数,使得它的频谱幅度变大一些。
同时还要注意频谱泄漏的问题,三个正弦函数的周期(2pi/w )分别为20,40,1000,所以为了避免产生频谱泄漏(k=w/w0为整数),采样点数N 必须为1000的整数倍。
matlab 信号频谱分析实验报告《Matlab 信号频谱分析实验报告》摘要:本实验利用Matlab软件对信号进行频谱分析,通过对信号的频谱特性进行研究,探讨了信号频谱分析的基本原理和方法。
实验结果表明,Matlab软件可以有效地对信号进行频谱分析,并能够准确地显示信号的频谱特性,为信号处理和分析提供了有力的工具。
1. 引言信号频谱分析是信号处理领域中的重要内容之一,它可以帮助人们了解信号的频率成分和频谱特性,对信号的特征进行深入分析。
Matlab作为一种强大的科学计算软件,能够提供丰富的信号处理工具和函数,可以方便地进行信号频谱分析。
本实验旨在利用Matlab软件对信号进行频谱分析,探讨信号频谱分析的基本原理和方法,并通过实验验证Matlab软件在信号频谱分析中的有效性和可靠性。
2. 实验原理信号的频谱分析是指将信号在频域上进行分析,得到信号的频率成分和频谱特性。
信号的频谱分析可以通过傅里叶变换来实现,傅里叶变换能够将信号从时域转换到频域,得到信号的频谱信息。
在Matlab中,可以利用fft函数来进行信号的傅里叶变换,得到信号的频谱信息,并通过plot函数将频谱信息可视化显示出来。
3. 实验过程(1)生成信号:首先在Matlab中生成一个测试信号,可以是正弦信号、方波信号或其他类型的信号。
(2)进行频谱分析:利用fft函数对生成的信号进行傅里叶变换,得到信号的频谱信息。
(3)频谱可视化:利用plot函数将信号的频谱信息可视化显示出来,观察信号的频谱特性。
4. 实验结果通过对不同类型的信号进行频谱分析实验,得到了它们在频域上的频谱特性。
通过对频谱的观察和分析,可以清晰地看到信号的频率成分和频谱分布情况,从而了解信号的频谱特性。
5. 结论本实验利用Matlab软件对信号进行频谱分析,通过对信号的频谱特性进行研究,探讨了信号频谱分析的基本原理和方法。
实验结果表明,Matlab软件可以有效地对信号进行频谱分析,并能够准确地显示信号的频谱特性,为信号处理和分析提供了有力的工具。
实验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 的取值。
实验1用MATLAB进行信号频谱分析提供一个实验步骤,帮助您用MATLAB进行信号频谱分析。
以下是一个详细步骤,您可以按照提示进行操作。
1.准备信号数据选择一个信号数据,可以是一个音频文件或一个由数字数据表示的信号。
确保该文件位于MATLAB当前工作目录下,或者提供文件的完整路径。
2.导入信号数据在MATLAB命令窗口中键入以下命令,将信号数据导入到MATLAB中:`data = audioread('filename.wav');`或者,如果信号数据是数字数据矩阵,可以直接将其赋值给变量:`data = your_signal_data;`3.绘制时域波形图使用以下命令可以绘制信号的时域波形图:`plot(data);`这将绘制出信号的波形图。
可以使用音频播放器在MATLAB环境中播放信号,以便更好地了解信号特征:`sound(data, Fs);`这里的Fs是信号的采样率,通常以赫兹(Hz)为单位。
4.计算信号的频谱频谱可以通过对信号进行傅里叶变换来获得。
在MATLAB中,可以使用fft函数执行傅里叶变换。
使用以下命令来计算信号的频谱:`N = length(data); %获取信号数据的长度``Y = fft(data); %执行傅里叶变换``P = abs(Y/N); %计算信号的频谱(单侧幅度谱)`5.绘制频谱图使用以下命令可以绘制信号的频谱图:`f=(0:N-1)*(Fs/N);%计算频率轴``plot(f, P); %绘制频谱图``xlabel('频率(Hz)');``ylabel('幅度');`6.可选步骤:去除直流分量信号的频谱通常包含一个直流分量(频率为0Hz),可以通过以下步骤将其去除:`P(1)=0;%设置直流分量的幅度为0``plot(f, P); %绘制修正后的频谱图`到此为止,我们已经使用MATLAB完成了信号频谱分析的基本步骤。
北邮DSP数字信号处理Matlab实验⼀实验⼀:数字信号的产⽣和基本运算(1) 常⽤数字信号序列的产⽣:熟悉Matlab产⽣数字信号的基本命令,加深对数字信号概念的理解,并能够⽤Matlab 产⽣和绘制出⼀些常⽤离散信号序列。
请⽤Matlab画出下列序列的波形(-10a) δ(n)b) 单位阶跃序列2u(n-5)c) 矩形序列R(n)d) y(n)=2sin(0.3πn)+0.5cos2(0.6πn)(2)数字信号的基本运算:a)加、减、尺度(乘除)和移位是数字信号处理中最基本的算术运算,将上述基本序列进⾏这些基本运算,得到多个序列构成的组合序列。
b)请⽤您的计算机声卡采⽤⼀段您⾃⼰的声⾳x(n),长度为45喵,单声道。
取样频率44.1kHz,16bit/样值,然后与给定的⼀段背景⾳乐y(n)按下式叠加为⼀个声⾳信号z(n):z(n)=0.7x(n)+0.3y(n)(3)要求:a)在同⼀个figure中,画出采集声⾳x(n)、背景⾳乐y(n)和混⾳z(n)的时域波形;b)提交实验报告时,请把声⾳⽂件转换成mp3格式,图像转换为jpeg格式,以节省存储空间。
C)通过本次实验,掌握matlab中这些基本运算命令,对数字信号处理有⼀个基本概念,为后⾯的数字信号分析和滤波打下了基础。
(1):a)利⽤.m⽂件M⽂件代码:function[x,n]=delta(n0,n1,n2)if((n0error('false')endn=n1:n2;x=(n-n0)==0;图象为:b)利⽤.m⽂件M⽂件代码:function[x,n]=u(n0,n1,n2)if((n0endn=n1:n2;x=(n-n0)>=0;实现2u(n-5)的命令是:>> x=2*u(5,-10,10);>> n=-10:10;>> stem(n,x)图像为:c)利⽤.m⽂件M⽂件代码:function[x,n]=R(n0,n1,n2,n3)if((n0n3)||(n0>n1)||(n2>n3)) error('false')endn=n2:n3;x=(n>=n0)-(n>=n1);实现R(n)的命令是:>> x=R(-2,3,-10,10);>> n=-10:10;>> stem(n,x)图像为:d)命令如下:>> n=-10:0.1:10;>> y=2*sin(0.3*pi*n)+0.5*cos(2*(0.6*pi*n)); >> stem(n,y)图像为:(2)a)相加:δ(n)+2u(n-5) 命令如下:>> n=-10:10;>> y1=delta(0,-10,10); >> y2=2*u(5,-10,10); >> stem(n,y1+y2)图像为:乘法:2u(n-5)*R(n) 命令如下:>> n=-10:10;>> y1=u(0,-10,10); >> y2=R(-2,3,-10,10); >> stem(n,y1.*y2)图像为:移位:y(n)=2sin(0.3πn)+0.5cos2(0.6πn)右移两位命令如下:>> n=-10:0.1:10;>> y=2*sin(0.3*pi*(n-2))+0.5*cos(2*(0.6*pi*(n-2))); >> stem(n,y)图像为:b)⾳频处理:>> [record,fs,bits]=wavread('record.wav');>> [background,fs,bits]=wavread('background.wav');>> x=record((fs*0+1:fs*45),:);>> y=background((fs*0+1:fs*45),:);>> z=0.7*x+0.3*y;>> wavwrite(z,fs,bits,'music.wav');>> subplot(3,1,1),plot(x),title('record');>> subplot(3,1,2),plot(y),title('background');>> subplot(3,1,3),plot(z),title('music');//此时的录⾳是⽤audition录的,也可以⽤matlab⾃带的wavrecord函数来录⾳。
《数字信号处理》Matlab 实验一.离散信号的 FFT 分析知识点:利用FFT 对信号频谱进行分析,用DFT 进行信号分析时基本参数的选择,以及信号经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别。
实验教学内容:1.用Matlab 编程上机练习。
已知: N=25。
这里Q=0.9+j0.3。
可以推导出 ,首先根据这个式子计算X(k)的理论值,然后计算输入序列x(n)的32个值,再利用基2时间抽选的FFT 算法,计算x(n)的DFT X(k),与X(k)的理论值比较(要求计算结果最少6位有效数字)。
解:format long Q=0.9+0.3i;WN=exp(-2*pi*1i/32);Xk=(1-Q^32)./(1-Q*WN.^[0:24]); xn=Q.^[0:24]; Xkfft=fft(xn,32); for (k0=1:1:25)difference=Xk(k0)-Xkfft(k0); end;subplot(3,1,1);stem(abs(Xk(1:1:24)),'.');title('DFT x(n)');xlabel('k');axis([0,35,0,15]);subplot(3,1,2);stem(abs(Xkfft(1:1:32)),'g.');title('FFT x(n)');xlabel('k');axis([0,35,0,15]);subplot(3,1,3);stem(abs(difference(1:1:25)),'r.');title('Xk-Xkfft');xlabel('k');axis([0,35,0,15]);0n N-1()0 n 0, n Nn Q x n ⎧≤≤=⎨<≥⎩11,011)()()(kk1nk1-=--===∑∑-=-=N k QW Q QW W n x k X NNnN N n NN n ,2. 假设信号 x(n) 由下述信号组成:请选择合适的长度 N 和窗函数,用 DFT 分析其频谱,得到清楚的三根谱线。