数字信号处理实验二
数字信号处理实验报告(实验二)
实验二 时域采样与频域采样1. 实验目的:(1) 掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息。
(2) 掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。
(3) 会用MATLAB 语言进行时域抽样与信号重建的方法,以及频域抽样与恢复时程序的编写方法。
2. 实验原理:了解时域采样定理的要点,理解理想采样信号)(ˆt xa 和模拟信号)(t x a 之间的关系,了解频域采样定理的要点,掌握这两个采样理论的结论:“时域采样频谱周期延拓,频域采样时域信号周期延拓”。
3. 实验内容:(1)时域采样理论的验证。
给定模拟信号,)()sin()(0t u t Ae t x t a Ω=-α式中A=444.128,α=502π,0Ω=502πrad/s(2)用DFT(FFT)求该模拟信号的幅频特性,选取三种采样频率,以验证时域采样理论。
(3)编写实验程序,计算)(1n x 、)(2n x 和)(3n x 的幅度特性,并绘图显示。
观察分析频谱混叠失真。
(4)频域采样理论的验证。
给定信号如下:⎪⎩⎪⎨⎧≤≤-≤≤+=其它02614271301)(n n n n n x(5)编写程序分别对频谱函数()FT[()]j X e x n ω=在区间]2,0[π上等间隔采样32和16点,得到)()(1632k X k X 和,再分别对)()(1632k X k X 和进行32点和16点IFFT ,得到)()(1632n x n x 和。
(6)分别画出()j X e ω、)()(1632k X k X 和的幅度谱,并绘图显示x(n)、)()(1632n x n x 和的波形,进行对比和分析,验证总结频域采样理论。
4. 思考题:如果序列x(n)的长度为M ,希望得到其频谱()j X e ω在]2,0[π上的N 点等间隔采样,当N<M 时, 如何用一次最少点数的DFT 得到该频谱采样?答:将长序列分段分段计算,这种分段处理方法有重叠相加法和重叠保留法两种。
数字信号处理第二版(实验二) 信号的采样与重建
实验二信号的采样与重建一,实验目的(1)通过观察采样信号的混叠现象,进一步理解奈奎斯特采样频率的意义。
(2)通过实验,了解数字信号采样转换过程中的频率特征。
(3)对实际的音频文件作内插和抽取操作,体会低通滤波器在内插和抽取中的作用。
二,实验内容(1)采样混叠,对一个模拟信号Va(t)进行等间采样,采样频率为200HZ,得到离散时间信号V(n).Va(t)由频率为30Hz,150Hz,170Hz,250Hz,330Hz的5个正弦信号的加权和构成。
Va(t)=6cos(60pi*t)+3sin(300pi*t)+2cos(340pi*t)+4cos(500pi*t )+10sin(660pi*t)观察采样后信号的混叠效应。
程序:clear,close all,t=0:0.1:20;Ts=1/2;n=0:Ts:20;V=8*cos(0.3*pi*t)+5*cos(0.5*pi*t+0.6435)-10*sin(0.7*pi*t);Vn=8*cos(0.3*pi*n)+5*cos(0.5*pi*n+0.6435)-10*sin(0.7*pi*n);subplot(221)plot(t,V),grid on,subplot(222)stem(n,Vn,'.'),gridon,05101520-40-200204005101520-40-2002040(2)输入信号X(n)为归一化频率f1=0.043,f2=0.31的两个正弦信号相加而成,N=100,按因子M=2作抽取:(1)不适用低通滤波器;(2)使用低通滤波器。
分别显示输入输出序列在时域和频域中的特性。
程序:clear;N=100; M=2;f1=0.043; f2=0.31; n=0:N-1;x=sin(2*pi*f1*n)+sin(2*pi*f2*n); y1=x(1:2:100);y2=decimate(x,M,'fir'); figure(1);stem(n,x(1:N));title('input sequence'); xlabel('n');ylabel('fudu'); figure(2); n=0:N/2-1; stem(n,y1);title('output sequence without LP'); xlabel('n');ylabel('fudu'); figure(3); m=0:N/M-1;stem(m,y2(1:N/M));title('output sequence with LP'); xlabel('n');ylabel('fudu'); figure(4);[h,w]=freqz(x);plot(w(1:512),abs(h(1:512)));title('frequency spectrum of the input sequence'); xlabel('w');ylabel('fudu'); figure(5);[h,w]=freqz(y1);plot(w(1:512),abs(h(1:512)));title('frequency spectrum of the output sequence without LP'); xlabel('w');ylabel('fudu'); figure(6);[h,w]=freqz(y2);plot(w(1:512),abs(h(1:512)));title('frequency spectrum of the output sequence without LP'); xlabel('w');ylabel('fudu');0102030405060708090100-2-1.5-1-0.500.511.52input sequencenf u d u05101520253035404550-2-1.5-1-0.500.511.52output sequence without LPnf u d u05101520253035404550-1.5-1-0.50.511.5output sequence with LPnf u d u0.511.522.533.505101520253035404550frequency spectrum of the input sequencewf u d u00.51 1.52 2.53 3.551015202530frequency spectrum of the output sequence without LPwf u d u00.51 1.52 2.53 3.5510152025frequency spectrum of the output sequence without LPwf u d u(3)输入信号X(n)为归一化频率f1=0.043,f2=0.31的两个正弦信号相加而成,长度N=50,内插因子为2.(1)不适用低通滤波器;(2)使用低通滤波器。
数字信号处理实验报告(二)
数字信号处理第二次实验报告学院:信息工程学院班级:2012级电子信息工程*班姓名:学号:20125507**指导老师:实验四:IIR数字滤波器设计及软件实现一、实验目的1、熟悉双线性变换设计IIR滤波器的原理与方法2、掌握IIR滤波器的MATLAB实现方法二、实验原理简述IIR数字滤波器间接法基本设计过程:1、将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;2、设计过渡模拟滤波器;3、将过渡模拟滤波器系统函数转换成数字滤波器的系统函数三、程序与图形1、%-----------------信号产生函数mstg---------------function st=mstg %功能函数的写法%产生信号序列向量st,并显示st的时域波形和频谱%st=mstg 返回三路调幅信号相加形成的混合信号,长度N=1600N=1600 %N为信号st的长度。
Fs=10000;T=1/Fs;Tp=N*T; %采样频率Fs=10kHz,Tp为采样时间t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;fc1=Fs/10; %第1路调幅信号的载波频率fc1=1000Hz,fm1=fc1/10; %第1路调幅信号的调制信号频率fm1=100Hzfc2=Fs/20; %第2路调幅信号的载波频率fc2=500Hzfm2=fc2/10; %第2路调幅信号的调制信号频率fm2=50Hzfc3=Fs/40; %第3路调幅信号的载波频率fc3=250Hz,fm3=fc3/10; %第3路调幅信号的调制信号频率fm3=25Hzxt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %产生第1路调幅信号xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %产生第2路调幅信号xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %产生第3路调幅信号st=xt1+xt2+xt3; %三路调幅信号相加fxt=fft(st,N); %计算信号st的频谱%-------绘制st的时域波形和幅频特性曲线-----subplot(2,1,1)plot(t,st);grid;xlabel('t/s');ylabel('s(t)');axis([0,Tp/8,min(st),max(st)]);title('(a) s(t)的波形')subplot(2,1,2)stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b) s(t)的频谱') axis([0,Fs/5,0,1.2]);xlabel('f/Hz');ylabel('幅度')-10123t/ss (t )(b) s(t)的频谱f/Hz幅度2、%-------实验4-2--------- clear all;close allFs=10000;T=1/Fs; %采样频率%调用信号产生函数mstg 产生由三路抑制载波调幅信号相加构成的复合信号st st=mstg;fp=280;fs=450; %下面wp,ws,为fp,fs 的归一化值范围为0-1wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; %DF 指标(低通滤波器的通、阻带边界频)[N,wp]=ellipord(wp,ws,rp,rs); %调用ellipord 计算椭圆DF 阶数N 和通带截止频率wp[B,A]=ellip(N,rp,rs,wp); %调用ellip 计算椭圆带通DF 系统函数系数向量B 和A[h,w]= freqz(B,A);y1t=filter(B,A,st); %滤波器软件实现 figure(2);subplot(2,1,1); plot(w,20*log10(abs(h))); axis([0,1,-80,0]) subplot(2,1,2);t=0:T:(length(y1t)-1)*T; plot(t,y1t);%axis([0,1,-80,0])-10123t/ss (t )(b) s(t)的频谱f/Hz幅度-80-60-40-20000.020.040.060.080.10.120.140.16-1-0.500.511.53、%-------实验4-3---------fpl=440;fpu=560;fsl=275;fsu=900;wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];rp=0.1;rs=60;[N,wp]=ellipord(wp,ws,rp,rs); %调用ellipord 计算椭圆DF 阶数N 和通带截止频率wp[B,A]=ellip(N,rp,rs,wp); %调用ellip 计算椭圆带通DF 系统函数系数向量B 和A[h,w]= freqz(B,A); y2t=filter(B,A,st);figure(3);subplot(2,1,1);plot(w,20*log10(abs(h))); axis([0,1,-80,0]) subplot(2,1,2);t=0:T:(length(y2t)-1)*T; plot(t,y2t);00.20.40.60.81-80-60-40-20000.020.040.060.080.10.120.140.16-2-10124、%-------实验4-4--------- fp=900;fs=550;wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; %DF 指标(低通滤波器的通、阻带边界频)[N,wp]=ellipord(wp,ws,rp,rs);%调用ellipord 算椭圆DF 阶数N 通带截止频率 [B,A]=ellip(N,rp,rs,wp,'high'); %调用ellip 计算椭圆带通DF 系统函数系数向量B 和A[h,w]= freqz(B,A); y3t=filter(B,A,st);figure(4);subplot(2,1,1); plot(w,20*log10(abs(h))); axis([0,1,-80,0]) subplot(2,1,2);t=0:T:(length(y3t)-1)*T; plot(t,y3t);-80-60-40-20000.020.040.060.080.10.120.140.16-2-1012四、实验结果分析由图可见,三个分离滤波器指标参数选取正确,损耗函数曲线达到所给指标。
数字信号处理 实验二
实验二离散时间信号时域表示一、实验类型:验证性实验二、实验目的1)掌握序列的产生方法;2)熟悉关于序列的简单运算;3)序列及其运算结果的可视化表示。
三、实验内容和步骤1)编写sy2_1.m程序文件,生成单位抽样序列和单位阶跃序列(n=-10~20),用图形显示。
2)编写sy2_2.m程序文件,生成一个实数值的指数序列(n=0~35,a=1.2),用图形显示。
3)编写sy2_3.m程序文件,生成扫频正弦序列X(n)=cos(pi*n2/200)(n=0~100),用图形显示。
4)编写sy2_4,m程序文件以实现下列功能:用rand函数随机产生噪声,加在一个已知的确定信号上,然后采用三点滑动平均算法y(n)=1/3(x[n-1]+x[n]+x[n+1])实现信号的平滑,用图形显示平滑后的信号。
四、实验结果及分析1)单位阶跃 sy2_1.mn=-10:20;y=[zeros(1,10),1,ones(1,20)];stem(n,y);2) 单位抽样sy2_1_1.mn=-10:20;y=[zeros(1,10),1,zeros(1,20)]; stem(n,y);3) 扫频正弦序列sy2_3.mn=0:1:100;f=cos(pi*n.^2/200);stem(n,f);4)指数序列sy2_2.mn=0:35;a=1.2;y=a.^n;stem(n,y);5)sy2_4.mN=128n=1:N;x=0.5-rand(1,N);stem(n,x);y=1.5*sin(60*pi*n*0.001); z=x+y;plot(n,z);-2-1.5-1-0.50.511.52五、问题思考:Legend 命令的作用是什么?解:添加AXES 里每条线的标识。
(完整版)数字信号处理实验二
y = filter(num,den,x,ic);
yt = a*y1 + b*y2;
d = y - yt;
subplot(3,1,1)
stem(n,y);
ylabel('振幅');
title('加权输入: a \cdot x_{1}[n] + b \cdot x_{2}[n]的输出');
subplot(3,1,2)
%扫频信号通过2.1系统:
clf;
n = 0:100;
s1 = cos(2*pi*0.05*n);
s2 = cos(2*pi*0.47*n);
a = pi/2/100;
b = 0;
arg = a*n.*n + b*n;
x = cos(arg);
M = input('滤波器所需的长度=');
num = ones(1,M);
三、实验器材及软件
1.微型计算机1台
2. MATLAB 7.0软件
四、实验原理
1.三点平滑滤波器是一个线性时不变的有限冲激响应系统,将输出延时一个抽样周期,可得到三点平滑滤波器的因果表达式,生成的滤波器表示为
归纳上式可得
此式表示了一个因果M点平滑FIR滤波器。
2.对线性离散时间系统,若y1[n]和y2[n]分别是输入序列x1[n]和x2[n]的响应,则输入
plot(n, y);
axis([0, 100, -2, 2]);
xlabel('时间序号 n'); ylabel('振幅');
数字信号处理实验二DFT 和FFT
实验二DFT 和FFT一.实验内容1.认真复习周期序列DFS、有限长序列DFT 的概念、旋转因子的定义、以及DFS 和DFT的性质等有关内容;复习基2-FFT 的基本算法,混合基-FFT 的基本算法、Chirp-Z 变换的算法等快速傅立叶变换的方法。
2.掌握有限长序列的循环移位、循环卷积的方法,对序列共轭对称性的含义和相关内容加深理解和掌握,掌握利用DFT 分析序列的频谱特性的基本方法。
3.掌握FFT 算法的基本原理和方法、Chirp-Z 变换的基本原理和方法,掌握利用FFT 分析序列的频谱特性的方法。
4.熟悉利用MATLAB 进行序列的DFT、FFT 的分析方法。
二.实验内容a. 设周期序列x~(n)={ …,0,1,2,3,0,1,2,3,0,1,2,3,….},求该序列的离散傅立叶级数X(k) = DFS[x~(n)],并画出DFS 的幅度特性。
在matlab中新建函数dfs:function [Xk]=dfs(xn,N)n=0:1:N-1;k=0:1:N-1;Wn=exp(-j*2*pi/N);nk=n'*k;Wnk=Wn.^nk;Xk=xn*Wnk;在matlab中输入以下代码:xn=[0,1,2,3];k=0:1:3;N=4;Xk=dfs(xn,N);y=abs(Xk);stem(k,y);title('周期序列的离散傅立叶级数');生成图像如下:由定义可知,对于周期序列,根据离散傅里叶级数公式即可求出,实验中显示了一个周期的傅里叶级数。
b. 设周期方波序列为x(n)=⎩⎨⎧+≤≤++≤≤)1-1)N (m n (01)-L mN n 1(mN L mN (m=0,,....2,1±±)其中N 为基波周期,L/N 是占空比。
(1) 用L 和N 求| X (k) |的表达式;(2) 当L 和N 分别为:L=5,N=20;L=5,N=40;L=5,N=60 以及L=7,N=60 时画出DFS 的幅度谱;(3) 对以上结果进行讨论,总结其特点和规律。
数字信号处理实验二
实验二 快速傅里叶变换(FFT)及其应用一、思考题(1) 实验中的信号序列()c x n 和()d x n 在单位圆上的z 变换频谱()()c j j d X e X e ωω和会相同吗?如果不同,说出哪一个低频分量更多一些,为什么?答:设j Z r e ω=⨯ ()()n n G z g n z ∞-=-∞=⨯∑因为为单位圆,故r=1.因为()()j j n n G e g n e ωω∞-=-∞=⨯∑,故3723456704()(8)23432j j n j n j j j j j j j c n n X e nen e e e e e e e e ωωωωωωωωωω---------===+-=++++++∑∑7235670()(4)43223j j n j j j j j j d n X e n ee e e e e e ωωωωωωωω-------==-=+++---∑比较可知频谱不相同,()c X n 的低频分量多。
(2) 对一个有限长序列进行DFT 等价于将该序列周期延拓后进行DFS 展开,因为DFS 也只是取其中一个周期来运算,所以FFT 在一定条件下也可以用以分析周期信号序列。
如果实正弦信号()sin(2),0.1x n fn f π== 用16点FFT 来做DFS 运算,得到的频谱是信号本身的真实谱吗?为什么?答:针对原来未经采样的连续时间信号来说,FFT 做出来的永远不会是信号本身的真实频谱,只能够是无限接近。
FFT 频谱泄露问题是一定会存在的,因为毕竟采样率再高,也不能完全达到原来的连续时间信号准确。
原题的采样率是1/10,就是将2*pi 分成10份,即每个正弦波周期进行10次采样,这样的采样率很低,而最后你只截取16个点来做分析,泄露一般会挺严重,看到的频谱,应该是一个上头尖,下面慢慢变宽的尖锥形,而纯正的正弦波的理想频谱应该是在某频点只有一个尖峰。
二. 实验原理:(1)混叠:采样序列的频谱是被采样信号频谱的周期延拓,当采样频率不满足奈奎斯特采样定理的时候,就会发生混叠,使得刺痒后的序列信号的频谱不能真实的反映原采样信号的频谱。
数字信号处理实验
实验二DFT用于频谱分析(一)、在运用DFT进行频谱分析的过程中可能产生三种误差:(1)混叠序列的频谱时被采样信号的周期延拓,当采样速率不满足Nyquist定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。
避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解,在一般情况下,为了保证高于折叠频率的分量不会出现,在采样前,先用低通模拟滤波器对信号进行滤波。
(2)泄漏实际中我们往往用截短的序列来近似很长的甚至是无限长的序列,这样可以使用较短的DFT来对信号进行频谱分析,这种截短等价于给原信号序列乘以一个矩形窗函数,也相当于在频域将信号的频谱和矩形窗函数的频谱卷积,所得的频谱是原序列频谱的扩展。
泄漏不能与混叠完全分开,因为泄漏导致频谱的扩展,从而造成混叠。
为了减少泄漏的影响,可以选择适当的窗函数使频谱的扩散减至最小。
DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续函数,就一定意义上看,用DFT来观察频谱就好像通过一个栅栏来观看一个图景一样,只能在离散点上看到真实的频谱,这样就有可能发生一些频谱的峰点或谷点被“尖桩的栅栏”所拦住,不能别我们观察到。
减小栅栏效应的一个方法就是借助于在原序列的末端填补一些零值,从而变动DFT的点数,这一方法实际上是人为地改变了对真实频谱采样的点数和位置,相当于搬动了每一根“尖桩栅栏”的位置,从而使得频谱的峰点或谷点暴露出来。
用FFT可以实现两个序列的圆周卷积。
在一定的条件下,可以使圆周卷积等于线性卷积。
一般情况,设两个序列的长度分别为N1和N2,要使圆周卷积等于线性卷积的充要条件是FFT的长度N≥N1+N2对于长度不足N的两个序列,分别将他们补零延长到N。
当两个序列中有一个序列比较长的时候,我们可以采用分段卷积的方法。
有两种方法:重叠相加法。
将长序列分成与短序列相仿的片段,分别用FFT对它们作线性卷积,再将分段卷积各段重叠的部分相加构成总的卷积输出。
数字信号处理实验二
实验二信号的分析与处理综合实验一、实验目的目的:综合运用数字信号处理的理论知识进行信号的采样,重构,频谱分析和滤波器的设计,通过理论推导得出相应结论,再利用Matlab作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
二、基本要求1.掌握数字信号处理的基本概念、基本理论和基本方法;2.学会MA TLAB的使用,掌握MA TLAB的程序设计方法;3.掌握用MA TLAB设计简单实验验证采样定理的方法;4.掌握在Windows环境下语音信号采集的方法;5.学会用MA TLAB对信号进行频谱分析;6.掌握MA TLAB设计FIR和IIR数字滤波器的方法;三、实验内容1.利用简单正弦信号设计实验验证采样定理:(1)Matlab产生离散信号的方法,作图的方法,以及基本运算操作(2)对连续正弦信号以不同的采样频率作采样(3)对采样前后信号进行傅立叶变换,并画频谱图(4)分析采样前后频谱的有变化,验证采样定理。
掌握画频谱图的方法,深刻理解采样频率,信号频率,采样点数,频率分辨率等概念2.真实语音信号的采样重构:录制一段自己的语音信号,并对录制的信号进行采样;画出采样前后语音信号的时域波形和频谱图;对降采样后的信号进行插值重构,滤波,恢复原信号。
(1)语音信号的采集(2)降采样的实现(改变了信号的采样率)(3)以不同采样率采样后,语音信号的频谱分析(4)采样前后声音的变化(5)对降采样后的信号进行插值重构,滤波,恢复原信号3.带噪声语音信号的频谱分析(1)设计一频率已知的噪声信号,与实验2中原始语音信号相加,构造带噪声信号(2)画出原始语音信号和加噪声后信号,以及它们的频谱图(3)利用频谱图分析噪声信号和原语音信号的不同特性4.对带噪声语音信号滤波去噪:给定滤波器性能指标,采样窗函数法或双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采样的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;(1)分析带噪声信号频谱,找出噪声所在的频率段(2)利用matlab中已有的滤波器滤波(3)根据语音信号特点,自己设计滤波器滤波(4)比较各种滤波器性能(至少四种),选择一种合适的滤波器将噪声信号滤除(5)回放语音信号,比较滤波前后声音的变化四、实验原理参考《数字信号处理》教材《数字信号处理的MATLAB实现》万永革编著五、主要实验仪器及材料微型计算机、Matlab。
数字信号处理实验二
实验二信号的分析与处理综合实验一、实验目的目的:综合运用数字信号处理的理论知识进行信号的采样,重构,频谱分析和滤波器的设计,通过理论推导得出相应结论,再利用Matlab作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
二、基本要求1.掌握数字信号处理的基本概念、基本理论和基本方法;2.学会MATLAB的使用,掌握MA TLAB的程序设计方法;3.掌握用MA TLAB设计简单实验验证采样定理的方法;4.掌握在Windows环境下语音信号采集的方法;5.学会用MA TLAB对信号进行频谱分析;6.掌握MATLAB设计FIR和IIR数字滤波器的方法;三、实验内容1.利用简单正弦信号设计实验验证采样定理:(1)Matlab产生离散信号的方法,作图的方法,以及基本运算操作(2)对连续正弦信号以不同的采样频率作采样(3)对采样前后信号进行傅立叶变换,并画频谱图(4)分析采样前后频谱的有变化,验证采样定理。
掌握画频谱图的方法,深刻理解采样频率,信号频率,采样点数,频率分辨率等概念2.真实语音信号的采样重构:录制一段自己的语音信号,并对录制的信号进行采样;画出采样前后语音信号的时域波形和频谱图;对降采样后的信号进行插值重构,滤波,恢复原信号。
(1)语音信号的采集(2)降采样的实现(改变了信号的采样率)(3)以不同采样率采样后,语音信号的频谱分析(4)采样前后声音的变化(5)对降采样后的信号进行插值重构,滤波,恢复原信号3.带噪声语音信号的频谱分析(1)设计一频率已知的噪声信号,与实验2中原始语音信号相加,构造带噪声信号(2)画出原始语音信号和加噪声后信号,以及它们的频谱图(3)利用频谱图分析噪声信号和原语音信号的不同特性4. 对带噪声语音信号滤波去噪:给定滤波器性能指标,采样窗函数法或双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采样的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;(1) 分析带噪声信号频谱,找出噪声所在的频率段(2) 利用matlab 中已有的滤波器滤波(3) 根据语音信号特点,自己设计滤波器滤波(4) 比较各种滤波器性能(至少四种),选择一种合适的滤波器将噪声信号滤除(5) 回放语音信号,比较滤波前后声音的变化四、实验原理参考《数字信号处理》教材《数字信号处理的MATLAB 实现》万永革 编著五、主要实验仪器及材料微型计算机、Matlab 。
数字信号处理第2次实验
信号与系统实验报告(第二次实验)实验一:给定两个序列x1和x2,X1=[0,1,2,3,4,3,2,1,0],起始位置ns1=-2;X2=[2,2,0,0,0,-2,-2],起始位置ns2=2;求它们的和ya及乘积yp,并画出序列x1,x2,ya和yp的图实验要求:分析参考程序,写实验报告,说明编程思路。
参考程序中给出了中间序列y1和y2的计算及图示,握有关函数length、min、max、find的用法,以及有关逻辑操作运算和点乘运算。
掌握有关绘图函数的使用。
参考程序:% 离散信号序列相加和相乘参考程序如下:%x1=[0,1,2,3,4,3,2,1,0];ns1=-2; % 给定x1及ns1x2=[2,2,0,0,0,-2,-2]; ns2=2; % 给定x2及ns2nf1=ns1+length(x1)-1; nf2=ns2+length(x2)-1;ny= min(ns1,ns2):max(nf1,nf2); % y(n)的位置向量y1 = zeros(1,length(ny)); y2 = y1; % 延拓序列初始化y1(find((ny>=ns1)&(ny<=nf1)==1))=x1; % 给y1赋值x1y2(find((ny>=ns2)&(ny<=nf2)==1))=x2; % 给y2 赋值x2ya = y1 + y2; % 序列相加yp = y1.* y2; % 序列相乘subplot(4,2,1), stem(ns1:nf1,x1,'.') % 绘图xlabel('nx1'),ylabel('x1'),axis([-5,10,0,4])subplot(4,2,3), stem(ns2:nf2,x2,'.'),axis([-5,10,-2,2])xlabel('nx2'),ylabel('x2')subplot(4,2,2), stem(ny,y1,'.') % 绘图xlabel('ny'),ylabel('y1')subplot(4,2,4), stem(ny,y2,'.')xlabel('ny'),ylabel('y2')line([ny(1),ny(end)],[0,0]) % 画x轴subplot(4,2,6), stem(ny,ya,'.')xlabel('ny'),ylabel('ya')line([ny(1),ny(end)],[0,0]) % 画x轴subplot(4,2,8), stem(ny,yp,'.')xlabel('ny'),ylabel('yp')line([ny(1),ny(end)],[0,0]) % 画x轴set(gcf,'color','w') % 置图形背景色为白实验结果:编程思路:实验中给出的两个序列的起始位置和长度都不同,对该两个序列进行的操作实际上是对两个矩阵进行的操作,根据矩阵的运算性质可知,要想实现需要的操作,这两个序列起始位置和长度必须相等,所以先要对其进行序列的延拓之后才能进行相应的操作。
数字信号处理实验二时域采样和频域采样
数字信号处理实验二时域采样和频域采样数字信号处理是一门研究信号的数字化表示、处理和传输的学科。
在数字信号处理中,时域采样和频域采样是两种常用的信号分析方法。
下面我们将对这两种采样方法进行详细介绍和比较。
一、时域采样时域采样是数字信号处理中最基本的采样方法之一。
它通过对连续时间信号进行离散时间采样,将连续时间信号转换为离散时间信号。
时域采样的基本原理是,如果一个连续时间信号f(t)在采样时刻t=kT(k=0,1,2,)上的值f(kT)能够被准确地测量,则可以通过这些采样值重建出原始信号。
时域采样的优点是简单易行,适用于大多数信号的采样。
但是,时域采样也存在一些缺点。
首先,如果信号中含有高于采样率的频率成分,这些高频成分将会被混叠到低频部分,导致信号失真。
这种现象被称为混叠效应。
其次,时域采样需要大量的采样数据才能准确地重建出原始信号,这会占用大量的存储空间和计算资源。
二、频域采样频域采样是一种在频域上对信号进行采样的方法。
它通过对信号进行傅里叶变换,将信号转换到频域,然后对频域中的信号进行采样。
频域采样的基本原理是,如果一个离散时间信号f(n)的傅里叶变换在频域上有有限的带宽,那么频域上的信号可以被认为是无穷多个离散的冲激函数的线性组合。
通过对这些冲激函数的幅度和相位进行采样,可以得到频域采样值。
相比时域采样,频域采样具有一些优点。
首先,频域采样可以避免混叠效应,因为高频成分在频域中可以被准确地表示和处理。
其次,频域采样只需要采样信号的幅度和相位信息,而不必存储大量的采样数据,可以节省存储空间和计算资源。
此外,频域采样还可以用于对信号进行压缩和编码,以便于信号的传输和存储。
然而,频域采样也存在一些缺点。
首先,傅里叶变换需要将信号从时域转换到频域,这需要使用复杂的数学运算和计算。
其次,频域采样的结果通常需要经过逆傅里叶变换才能得到原始信号的离散时间表示,这同样需要复杂的数学运算和计算。
此外,频域采样的结果可能存在频率混叠和泄漏现象,这会影响到重建出的原始信号的质量。
数字信号处理实验二
实验二 快速傅里叶变换(FFT)及其应用一、思考题(1) 实验中的信号序列()c x n 和()d x n 在单位圆上的z 变换频谱()()c j j d X e X e ωω和会相同吗?如果不同,说出哪一个低频分量更多一些,为什么?答:设j Z r e ω=⨯ ()()n n G z g n z ∞-=-∞=⨯∑因为为单位圆,故r=1.因为()()j j n n G e g n eωω∞-=-∞=⨯∑,故3723456704()(8)23432j j n j n j j j j j j j c n n X e nen e e e e e e e e ωωωωωωωωωω---------===+-=++++++∑∑7235670()(4)43223j j n j j j j j j d n X e n ee e e e e e ωωωωωωωω-------==-=+++---∑比拟可知频谱不相同,()c X n 的低频分量多。
(2) 对一个有限长序列进行DFT 等价于将该序列周期延拓后进行DFS 展开,因为DFS 也只是取其中一个周期来运算,所以FFT 在一定条件下也可以用以分析周期信号序列。
如果实正弦信号()sin(2),0.1x n fn f π== 用16点FFT 来做DFS 运算,得到的频谱是信号本身的真实谱吗?为什么?答:针对原来未经采样的连续时间信号来说,FFT 做出来的永远不会是信号本身的真实频谱,只能够是无限接近。
FFT 频谱泄露问题是一定会存在的,因为毕竟采样率再高,也不能完全到达原来的连续时间信号准确。
原题的采样率是1/10,就是将2*pi 分成10份,即每个正弦波周期进行10次采样,这样的采样率很低,而最后你只截取16个点来做分析,泄露一般会挺严重,看到的频谱,应该是一个上头尖,下面慢慢变宽的尖锥形,而纯粹的正弦波的理想频谱应该是在某频点只有一个尖峰。
二. 实验原理:〔1〕混叠:采样序列的频谱是被采样信号频谱的周期延拓,当采样频率不满足奈奎斯特采样定理的时候,就会发生混叠,使得刺痒后的序列信号的频谱不能真实的反映原采样信号的频谱。
数字信号处理实验报告s实验一和实验二
实验一离散时间信号的产生一、实验目的数字信号处理系统中的信号都是以离散时间形态存在的,所以对离散时间信号的研究是数字信号的基本所在。
而要研究离散时间信号,首先需要产生出各种离散时间信号。
使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大绘图功能,便于用户直观地处理输出结果。
通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,实现信号的卷积运算,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。
二、实验原理离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用x(n)来表示,自变量必须是整数。
常见的离散信号如下:(1)单位冲激序列δ(n)如果δ(n)在时间轴上延迟了k个单位,得到δ(n-k),即长度为N的单位冲激序列δ(n)可以通过下面的MATLAB命令获得。
n=-(N-1):N-1x=[zeros(1,N-1) 1 zeros(1,N-1)];stem(n,x)延迟K个采样点的长度为N的单位冲激序列δ(n-k)(k<N)可以用下面命令获得:n=0:N-1y=[zeros(1,M) 1 zeros(1,N-M-1)];stem(n,y)(2)单位阶跃序列u(n)如果u(n)在时间轴上延迟了k个单位,得到u(n-k),即长度为N的单位阶跃序列u(n)可以通过下面的MATLAB命令获得。
n=-(N-1):N-1x=[zeros(1,N-1) ones(1,N)];stem(n,x)延迟的单位阶跃序列可以使用类似于单位冲激序列的方法获得。
(3)矩形序列矩形序列有一个重要的参数,就是序列的宽度N。
矩形序列与u(n)之间的关系为矩形序列等= u(n)— u(n-N)。
因此,用MATLAB表示矩形序列可利用上面的单位阶跃序列组合而成。
(4)正弦序列x(n)这里,正弦序列的参数都是实数。
与连续的正弦信号不同,正弦序列的自变量n 必须为整数。
数字信号处理实验二
实验二 快速傅里叶变换(FFT)及其应用一、思考题(1) 实验中的信号序列()c x n 和()d x n 在单位圆上的z 变换频谱()()c j j d X e X e ωω和会相同吗如果不同,说出哪一个低频分量更多一些,为什么答:设j Z r e ω=⨯ ()()n n G z g n z ∞-=-∞=⨯∑因为为单位圆,故r=1.因为()()j j n n G e g n eωω∞-=-∞=⨯∑,故3723456704()(8)23432j j n j n j j j j j j j c n n X e nen e e e e e e e e ωωωωωωωωωω---------===+-=++++++∑∑ 7235670()(4)43223j j n j j j j j j d n X e n ee e e e e e ωωωωωωωω-------==-=+++---∑比较可知频谱不相同,()c X n 的低频分量多。
(2) 对一个有限长序列进行DFT 等价于将该序列周期延拓后进行DFS 展开,因为DFS 也只是取其中一个周期来运算,所以FFT 在一定条件下也可以用以分析周期信号序列。
如果实正弦信号()sin(2),0.1x n fn f π== 用16点FFT 来做DFS 运算,得到的频谱是信号本身的真实谱吗为什么答:针对原来未经采样的连续时间信号来说,FFT 做出来的永远不会是信号本身的真实频谱,只能够是无限接近。
FFT 频谱泄露问题是一定会存在的,因为毕竟采样率再高,也不能完全达到原来的连续时间信号准确。
原题的采样率是1/10,就是将2*pi 分成10份,即每个正弦波周期进行10次采样,这样的采样率很低,而最后你只截取16个点来做分析,泄露一般会挺严重,看到的频谱,应该是一个上头尖,下面慢慢变宽的尖锥形,而纯正的正弦波的理想频谱应该是在某频点只有一个尖峰。
二.?实验原理:?(1)混叠:采样序列的频谱是被采样信号频谱的周期延拓,当采样频率不满足奈奎斯特采样定理的时候,就会发生混叠,使得刺痒后的序列信号的频谱不能真实的反映原采样信号的频谱。
数字信号处理实验02
实验二2019年11月16日一、实验目的(1)通过实验进一步理解卷积定理,了解卷积的过程。
(2)掌握应用线性卷积求解离散时间系统响应的基本方法。
(3)加深对离散LSI系统时域特性的认识。
(4)掌握MATLAB求解离散时间系统相应的基本方法。
(5)了解MATLAB中求解系统响应的子函数及其应用方法。
(6)加深对离散系统变换域分析——z变换的理解。
(7)掌握进行z变换和z反变换的基本方法,了解部分分式法在z反变换中的应用。
(8)掌握使用MATLAB语言进行z变换和z反变换的常用子函数。
(9)了解离散系统的基本描述模型。
(10)掌握各种模型相互间的关系及转换方法。
(11)熟悉MATLAB中进行离散系统模型间转换的常用子函数。
二、实验用到的MATLAB函数(1)conv 进行两个序列间的卷积运算。
(2)sum 求各元素之和。
(3)hold 控制当前图形是否刷新的双向切换开关。
(4)pause 暂停执行文件。
(5)dlsim 求解离散系统的响应。
(6)ztrans 返回无限长序列函数x[n]的z变换。
(7)iztrans 求函数X(z)的z反变换x[n]。
(8)syms 定义多个符号变量。
(9)residuez 有理多项式的部分分式展开。
(10)tf2zp 将系统传递函数(tf)模型转换为系统函数的零-极点增益(zpk)模型。
(11)zp2tf 将系统函数的零-极点增益(zpk)模型转换为系统传递函数(tf)模型。
(12)tf2sos 将系统传递函数(tf)模型转换为系统函数的二次分式(sos)模型。
(13)sos2tf 将系统函数的二次分式(sos)模型转换为系统传递函数(tf)模型。
(14)sos2zp 将系统函数的二次分式(sos)模型转换为系统函数的零-极点增益(zpk)模型。
(15)zp2sos 将系统函数的零-极点增益(zpk)模型转换为系统函数的二次分式(sos)模型。
(16)ss2tf 将系统状态空间(ss)模型转换为系统传递函数(tf)模型。
数字信号处理实验2
实验报告课程名称:数字信号处理 学号:09042128 姓名:熊文基实验二 系统及系统响应一、实验目的(1) 观察离散系统的频率响应。
(2) 熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。
(3) 利用序列的FT 对连续信号、离散信号及系统响应进行频域分析。
(4) 利用卷积方法观察分析系统的时域特性。
二、实验内容(1) 给定一因果系统()21219.067.0121----+-++=zz z z z H ,求出并绘制H(z)的幅频响应与相频响应。
00.51 1.52 2.53 3.5102030w0.511.522.533.5-4-3-2-101(2) 对信号()()()t u t Ae t x at a π0sin Ω=-进行采样可10.80.60.40.010.020.030.040.050.060.070.080.090.1模拟信号t(s)x a (t )010*******4005006007008009001000模拟信号的幅度频谱f(Hz)|X a (j f )|采样序列x1(n)nx 1(n)f(Hz)|X 1(j f )|采样序列x2(n)nx 2(n )050100150200250300x2(n)的幅度频谱f(Hz)|X 2(j f )|得到采样序列其中A=444.128,π250=a ,π2500=Ω,实现下 列实验内容:a.取采样频率s f =1kHz ,即T =1ms 观察所得采样x a (n)的幅频特性()||jw e X 和图中的|)(Ωj X a |在折叠频率附近有无明显差别。
b.改变采样频率s f =300Hz ,观察()||jw e X 的变化,并做记录;进一步降低采样频率,s f =200Hz ,观察频谱混叠是否明显存在,说明原因,并记录这时的()||jw e X 曲线。
(2)采样序列3)给定系统的单位抽样响应为()()n R n h 101=a.利用线性卷积求信号x1(n)=δ(n)通过该系统的响应y1(n)。
数字信号处理第二次实验报告
2
% 设计Butterworth低通模拟滤波器 % 通带衰减小于1分贝、阻带(>0.6pi)衰减大于25分贝 % n: 阶数 % wn:低通模拟滤波器的3分贝通带截止频率 [B1,A1] = BUTTER(n,wn,'s'); % 设计Butterworth低通模拟滤波器 % B,A:模拟滤波器传递函数分子、分母多项式系数 [b1,a1]=impinvar(B1,A1,fs); % 用脉冲响应不变法将模拟低通滤波器转换为数字滤波器b,a:分子、分母多项式系 数 % 双曲变换的预畸变 [B2,A2]=butter(n,2000*tan(pi/5),'s'); % 用双曲变换法将模拟低通滤波器转化为数字滤波器b,a:分子,分母多项式系数 [b2,a2]=bilinear(B2,A2,fs);
(3) 熟悉巴特沃思滤波器,切比雪夫滤波器和椭圆滤波器的频率特性。
二. 实验原理:
(1) 实验中有关变量的定义:fc 通带边界频率ห้องสมุดไป่ตู้fr 阻带边界频率,tao 通带波动,at 最 小阻带衰减,fs 采样频率,t 采样周期。
(2) 设计一个数字滤波器一般包括以下两步: a.按照任务要求,确定滤波器性能指标 b.用一个因果稳定的离散时不变系统的系统函数去逼近这一性能要求
姓名:陈桐 学号:04004316
实验日期:2006 年 11 月 14 日
一. 实验目的:
(1) 掌握双线形变换法及脉冲响应不变法设计 IIR 数字滤波器的具体设计方法及其原理, 熟悉用双线形变换法及脉冲响应不变法设计低通,高通和带通 IIR 数字滤波器的计 算机编程。
(2) 观察双线形变换法及脉冲响应不变法设计的滤波器的频域特性,了解双线形变换法 及脉冲响应不变法的特点。
数字信号处理实验实验二离散时间傅里叶变换.wps
实验二 离散时间傅里叶变换一、实验原理经由正、逆离散时间傅里叶变换表达的傅里叶表示式是信号分析的一个关键部分,下面是分析方程与综合方程。
∑∞-∞=-=n n j j e n x e X ωω][)( ωπππωωd e e X n X n j j ⎰-=)(21][由以上公式知,离散时间傅里叶变换是w 的周期复值函数,周期是π2, 并且周期常选为[-π, π].对离散时间傅里叶变换有两个问题:(1) DTFT 的定义对无限长信号是有效的。
(2) DTFT 是连续变量的ω函数。
第二个问题是频率抽样问题。
Matlab 擅长在有线网格点上计算DTFT 。
通常选择足够多的频率以使绘出的图平滑,逼近真实的DTFT 。
对计算有利的最好选择是在(-π,π)区间上一组均匀的隔开的频率,或者共轭对称变换选择【0,π】,采用上述抽样方法,DTFT 式变为1,...,1,0,][)()(10/2(/2-===∑-=-N k en x e X e X L n N k j N k j j n k )ππω在对DTFT 进行抽样时,并不要求N=L ,尽管通常由DFT 进行计算时,如果N=L 计算很方便。
1. 实验内容(1) asic 的m 文件编写一个matlab 文件如asic (w ,L ),之间从式中计算在频格上的asinc (w ,L ),该函数有两个输入:L 和W ,函数必须检查被0除的情形。
直接计算混叠sinc 函数得到脉冲信号DTFT 绘出幅度,保存该图以便与dtft 得到的结果比较。
程序:函数文件是function a=asinc(w,L)if (w==0)a=L;else a=sin(1/2*w*L)/sin(1/2*w);end当输入asinc(0,2)ans =2混叠程序function a=L(m);w=-pi:pi/50:pi;b=sin(1/2*w*m)./sin(1/2*w);c=exp(-j*w*(m-1)/2);R=b.*c;plot(w,abs(R))Grid当输入L(8)有而dtft程序是function[H,W]=dtft(h,N)%DTFT calculate DTFT at N equally spaced frequencies %Usage%[H,W]=dtft(h,N)%h:finite-length input vector,whose length is L%N:nambei of frequencies for evaluation over [-pi,pi) %==>constraint:n>=L%H:DTFT values(complex)%W:(2nd output)vector of freqs where DTFT is computed %N=fix(N);L=length(h);h=h(:);if(N<L)error('DTFT:#data samples cannot exceed #freq samples')endW=(2*pi/N)*[0:(N-1)]';mid=ceil(N/2)+1;W(mid:N)=W(mid:N)-2*pi;W=fftshift(W);H=fftshift(fft(h,N));当输入n=0:7;r=ones(8,1);r(1)=1[X,W]=dtft(r,128);plot(W,abs(X))grid有结果分析:两种方法得到的图形基本一致,证明了公式的真确性。
数字信号处理实验二时域采样和频域采样
实验二-时域采样和频域采样一、实验目的时域采样理论与频域采样理论是数字信号处理中的重要理论。
要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息;要求掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。
二、实验原理及方法1、时域采样定理的要点:a)对模拟信号)(t x a 以间隔T 进行时域等间隔理想采样,形成的采样信号的频谱)(ˆΩj X 是原模拟信号频谱()aX j Ω以采样角频率s Ω(T s /2π=Ω)为周期进行周期延拓b)采样频率s Ω必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的频谱不产生频谱混叠。
利用计算机计算上式并不方便,下面我们导出另外一个公式,以便用计算机上进行实验。
2、频域采样定理的要点:a)对信号x(n)的频谱函数X(ej ω)在[0,2π]上等间隔采样N 点 则N 点IDFT[()N X k ]得到的序列就是原序列x(n)以N 为周期进行周期延拓后的主值区序列。
三、实验内容及步骤1、时域采样理论的验证程序:clear;clcA=444.128;a=50*sqrt(2)*pi;w0=50*sqrt(2)*pi;Tp=50/1000;F1=1000;F2=300;F3=200;T1=1/F1;T2=1/F2;T3=1/F3;n1=0:Tp*F1-1;n2=0:Tp*F2-1;n3=0:Tp*F3-1;x1=A*exp(-a*n1*T1).*sin(w0*n1*T1);x2=A*exp(-a*n2*T2).*sin(w0*n2*T2);x3=A*exp(-a*n3*T3).*sin(w0*n3*T3);f1=fft(x1,length(n1));f2=fft(x2,length(n2)); %f3=fft(x3,length(n3)); %k1=0:length(f1)-1;fk1=k1/Tp; %k2=0:length(f2)-1;fk2=k2/Tp; % k3=0:length(f3)-1;fk3=k3/Tp; % subplot(3,2,1)stem(n1,x1,'.')title('(a)Fs=1000Hz');xlabel('n');ylabel('x1(n)');subplot(3,2,3)stem(n2,x2,'.')title('(b)Fs=300Hz');xlabel('n');ylabel('x2(n)');subplot(3,2,5)stem(n3,x3,'.')title('(c)Fs=200Hz');xlabel('n');ylabel('x3(n)');subplot(3,2,2)plot(fk1,abs(f1))title('(a) FT[xa(nT)],Fs=1000Hz'); xlabel('f(Hz)');ylabel('·ù¶È')subplot(3,2,4)plot(fk2,abs(f2))title('(b) FT[xa(nT)],Fs=300Hz'); xlabel('f(Hz)');ylabel('·ù¶È')subplot(3,2,6)plot(fk3,abs(f3))title('(c) FT[xa(nT)],Fs=200Hz'); xlabel('f(Hz)');ylabel('·ù¶È')结果分析:由图2.2可见,采样序列的频谱的确是以采样频率为周期对模拟信号频谱的周期延拓。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二: 用FFT 作谱分析
实验目的
(1) 进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法, 所以FFT 的运算结果必然满足DFT 的基本性质)。
(2) 熟悉FFT 算法原理和FFT 子程序的应用。
(3) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法, 了解可能出现的分析误差及其原因, 以便在实际中正确应用FFT 。
● 实验步骤
(1) 复习DFT 的定义、 性质和用DFT 作谱分析的有关内容。
(2) 复习FFT 算法原理与编程思想, 并对照DIT-FFT 运算流图和程序框图, 读懂本实验提供的FFT 子程序。
(3) 编制信号产生子程序, 产生以下典型信号供谱分析用:
(4) 编写主程序。
下图给出了主程序框图, 供参考。
本实验提供FFT 子程序和通用绘图子程序。
(5) 按实验内容要求, 上机实验, 并写出实验报告。
1423()()1,03()8470
403()3470x n R n n n x n n n n n x n n n =⎧+≤≤⎪=-≤≤⎨⎪⎩-≤≤⎧⎪=-≤≤⎨⎪⎩456()cos 4()sin 8()cos8cos16cos20x n n x n n x n t t t πππππ===++
●实验内容
(1) 对2 中所给出的信号逐个进行谱分析。
(2) 令x(n)=x4(n)+x5(n),用FFT计算8 点和16 点离散傅里叶变换,
X(k)=DFT[x(n)]
(3) 令x(n)=x4(n)+jx5(n),重复(2)。
●实验报告要求
(1) 简述实验原理及目的。
(2) 结合实验中所得给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产生的原因以及用FFT作谱分析时有关参数的选择方法。
(3) 总结实验所得主要结论。
(4) 简要回答思考题。
Matlab代码:
对六个所给信号进行谱分析的主程序(对信号进行64点的FFT变换):
clc;clear all;
N=64;
x1=Signal_x1(N);
myfft(x1);
x2=Signal_x2(N);
myfft(x2);
x3=Signal_x3(N);
myfft(x3);
x4=Signal_x4(N);
myfft(x4);
x5=Signal_x5(N);
myfft(x5);
x6=Signal_x6(N);
myfft(x6);
编写的画序列、对序列进行FFT变换及画其频谱的函数:function Y=myfft(X)
L=length(X);
n=0:L-1;
figure;
stem(n,X);%»-³öÐźÅÐòÁÐ
Y=fft(X);
figure;
stem(n,abs(Y));%»-³öÐźŵÄFFT±ä»»µÃµ½µÄX(k)ÐòÁÐ
编写的六个信号产生子程序:
信号1:
function X=Signal_x1(n)
X=zeros(1,n);
X(1:4)=1;
信号2:
function X=Signal_x2(n)
X=zeros(1,n);
for i=0:3
X(i+1)=i+1;
end
for i=4:7
X(i+1)=8-i;
end
信号3:
function X=Signal_x3(n)
X=zeros(1,n);
for i=0:3
X(i+1)=4-i;
end
for i=4:7
X(i+1)=i-3;
end
信号4:
function X=Signal_x4(N)
n=0:N-1;
X=zeros(1,n);
X=cos(pi/4*n);
信号5:
function X=Signal_x5(N)
n=0:N-1;
X=zeros(1,n);
X=sin(pi/8*n);
信号6:
function X=Signal_x6(N)
n=0:N-1;
X=zeros(1,n);
X=cos(pi*8*n)+cos(pi*16*n)+cos(pi*20*n);
对x(n)=x4(n)+x5(n)进行8点和16点的FFT变换程序:8点:
clc;clear all;
N=8;
x=Signal_x4(N)+Signal_x5(N);
myfft(x);
16点:
clc;clear all;
N=16;
x=Signal_x4(N)+Signal_x5(N);
myfft(x);
对x(n)=x4(n)+jx5(n)进行8点和16点的FFT变换程序:
8点:
clc;clear all;
N=8;
x=Signal_x4(N)+j*Signal_x5(N); myfft(x);
16点:
clc;clear all;
N=16;
x=Signal_x4(N)+j*Signal_x5(N); myfft(x);
运行结果:
x(1)序列及其FFT变换得到的频谱:
x(6)序列及其FFT变换得到的频谱:
x(n)=x4(n)+x5(n)序列及其进行8点的FFT变换结果:
x(n)=x4(n)+x5(n)序列及其进行16点的FFT变换结果:
对x(n)=x4(n)+j*x5(n)进行8点的FFT变换结果:对x(n)=x4(n)+j*x5(n)进行16点的FFT变换结果:
思考题
(1) 在N=8时,x2(n)和x3(n)的幅频特性会相同吗? 为什么? N=16呢?
答:8点的时候幅频特性相同,16点的时候不相同。
因为当N=8时对两序列进行循环延拓之后信号的变化规律相同,因此fft变换得到的频谱幅频特性相同。
而当N=16时对两序列补零之后,再进行循环延拓之后信号的变化规律不再相同,因此频谱幅频特性也不同了。
N=8时的幅频特性:
N=16时的幅频特性:
X3:
X4:
(2) 如果周期信号的周期预先不知道,如何用FFT进行谱分析?
答:周期信号的周期预先不知道时,可先截取M点进行DFT,再将截取长度扩大1倍截取,比较结果,如果二者的差别满足分析误差要求,则可以近似表示该信号的频谱,如果不满足误差要求就继续将截取长度加倍,重复比较,直到结果满足要求。