数字信号 实验二
数字信号处理 实验报告 实验二 应用快速傅立叶变换对信号进行频谱分析

数字信号处理实验报告实验二应用快速傅立叶变换对信号进行频谱分析2011年12月7日一、实验目的1、通过本实验,进一步加深对DFT 算法原理合基本性质的理解,熟悉FFT 算法 原理和FFT 子程序的应用。
2、掌握应用FFT 对信号进行频谱分析的方法。
3、通过本实验进一步掌握频域采样定理。
4、了解应用FFT 进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT 。
二、实验原理与方法1、一个连续时间信号)(t x a 的频谱可以用它的傅立叶变换表示()()j t a a X j x t e dt +∞-Ω-∞Ω=⎰2、对信号进行理想采样,得到采样序列()()a x n x nT =3、以T 为采样周期,对)(n x 进行Z 变换()()n X z x n z +∞--∞=∑4、当ωj ez =时,得到序列傅立叶变换SFT()()j j n X e x n e ωω+∞--∞=∑5、ω为数字角频率sT F ωΩ=Ω=6、已经知道:12()[()]j a m X e X j T T Tωωπ+∞-∞=-∑ ( 2-6 )7、序列的频谱是原模拟信号的周期延拓,即可以通过分析序列的频谱,得到相应连续信号的频谱。
(信号为有限带宽,采样满足Nyquist 定理)8、无线长序列可以用有限长序列来逼近,对于有限长序列可以使用离散傅立叶变换(DFT )。
可以很好的反映序列的频域特性,且易于快速算法在计算机上实现。
当序列()x n 的长度为N 时,它的离散傅里叶变换为:1()[()]()N knN n X k DFT x n x n W-===∑ 其中2jNN W eπ-=,它的反变换定义为:101()[()]()N knN k x n IDFT X k X k W N --===∑比较Z 变换式 ( 2-3 ) 和DFT 式 ( 2-7 ),令kN z W -=则1()()[()]|kNN nkN N Z W X z x n W DFT x n ---====∑ 因此有()()|kNz W X k X z -==k N W -是Z 平面单位圆上幅角为2kNπω=的点,也即是将单位圆N 等分后的第k 点。
数字信号处理第二版(实验二) 信号的采样与重建

实验二信号的采样与重建一,实验目的(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)使用低通滤波器。
实验2 数字信号处理的基本作图工具

实验二数字信号处理的基本作图工具一、实验目的1. 进一步加深对离散时间系统的理解。
2. 学习在MATLAB中怎样表示离散时间信号。
3. 熟悉离散时间信号的作图。
二、实验步骤1. 复习离散时间系统的有关内容。
2. 复习MATLAB的基本语法。
3. 按实验内容熟悉stem。
4. 编写程序。
5. 输出结果,总结结论,按要求写出实验报告。
三、实验内容1.掌握stem函数STEM(Y) plots the data sequence Y as stems from the x axis terminated with circles for the data value.STEM(X,Y) plots the data sequence Y at the values specified in X.例:t=[0:0.1:2]; x=cos(pi*t+0.6); stem(t,x);xn=[4,2,2,3,6,7]; stem(xn);思考:STEM(Y)与STEM(X,Y)有什么不同?STEM与PLOT函数有什么不同?2.掌握subplot函数H = SUBPLOT(m,n,p), or SUBPLOT(mnp), breaks the Figure window into an m-by-n matrix of small axes, selects the p-th axes for the current plot, and returns the axis handle. The axes are counted along the top row of the Figure window, then the second row, etc.例:n1=0:3;x1=[1,1,1,1];subplot(221);stem(n1,x1);title('x1序列');n2=0:7;x2=[1,2,3,4,4,3,2,1];subplot(222);stem(n2,x2);title('x2序列');n3=0:7;x3=[4,3,2,1,1,2,3,4];subplot(223);stem(n3,x3);title('x3序列');n4=0:7;x41=cos((pi/4)*n4);subplot(224);stem(n4,x41);title('x4序列');思考:subplot是怎样分配各个作图分区的顺序号的?3.信号的运算]0,1.0,4.0,7.0,1[)(1=n x ,]9.0,7.0,5.0,3.0,1.0[)(2=n x ,请作出)()(21n x n x +,)()(21n x n x 的图形。
“数字信号处理”实验报告二

实验报告课程名称:数字信号处理实验任课教师:杨鉴实验名称:离散时间系统的时域分析年级、专业:2015级通信工程学号:**********姓名:***日期:2017 年10 月9 日云南大学信息学院一、实验1.通过MATLAB仿真一些简单的离散时间系统,并研究他们的时域特性。
2.掌握卷积在MATLAB的算法并理解滤波的概念。
二、实验内容1. 假定另一个系统为y[n]=x[n]x[n-1],修改程序P2.3,计算这个系统的输出序列y1[n],y2[n]和y[n]。
比较y[n]和yt[n]。
这两个序列是否相等?该系统是线性系统吗?2. 考虑另一个系统:y[n]=nx[n]+x[n-1],修改程序P2.4,以仿真上面的系统并确定该系统是否为时不变系统。
3.修改程序P2.7,计算长度为15的序列h[n]和长度为10的序列x[n]的卷积,重做问题Q2.28。
h[n]和x[n]的样本值你自己给定。
4.修改程序P2.9,将输入序列改变成扫频正弦序列(长度为301、最低频率为0、最高频率为0.5)。
那个滤波器能更好的抑制输入信号x[n]的高频分量?三、主要算法与程序Q2.11:clf;n = 0:40;a = 2;b = -3;f1=0.1;f2=0.4;x11=[0 cos(2*pi*f1*n) 0];x12=[0 0 cos(2*pi*f1*n)];x21=[0 cos(2*pi*f2*n) 0];x22=[0 0 cos(2*pi*f2*n)];x = a*x11 + b*x21;y1 = x11.*x12;y2 = x21.*x22;xd = a*x12+b*x22;y = x.*xd;yt = a*y1 + b*y2;d = y - yt; % Compute the difference output d[n]% Plot the outputs and the difference signalsubplot(3,1,1)stem([0 n 0],y);ylabel('Amplitude');title('Output Due to Weighted Input: a \cdot x_{1}[n] + b \cdot x_{2}[n]');subplot(3,1,2)stem([0 n 0],yt);ylabel('Amplitude');title('Weighted Output: a \cdot y_{1}[n] + b \cdot y_{2}[n]'); subplot(3,1,3)stem([0 n 0],d);xlabel('Time index n');ylabel('Amplitude');title('Difference Signal');Q2.17:clf;n = 0:40; D = 10;a = 3.0;b = -2;x = a*cos(2*pi*0.1*n) + b*cos(2*pi*0.4*n);xd = [zeros(1,D) x];nd=0:length(xd)-1;y=(n.*x)+[0 x(1:40)];yd=(nd.*xd)+[0 xd(1:length(xd)-1)];d = y - yd(1+D:41+D);subplot(3,1,1)stem(n,y);ylabel('振幅');title('输出 y[n]'); grid;subplot(3,1,2)stem(n,yd(1:41));ylabel('振幅');title('由于延时输入 x[n-10]的输出'); grid;subplot(3,1,3)stem(n,d);xlabel('时间序号 n'); ylabel('振幅');title('差值信号');grid;Q2.29:clf;h = [3 2 1 -2 1 0 -4 0 3 1 5 4 0 3 5]; % impulse responsex = [1 -2 3 -4 3 2 1 5 6 1]; % input sequencey = conv(h,x);n = 0:23;subplot(2,1,1);stem(n,y);xlabel('时间序号n');ylabel('振幅');title('用卷积得到的输出'); grid;x1 = [x zeros(1,14)];y1 = filter(h,1,x1);subplot(2,1,2);stem(n,y1);xlabel('时间序号 n'); ylabel('振幅');title('由滤波生成的输出'); grid;Q2.35:f=w/2pi=(2a*n+b)/2pi=[0,0.5],所以b=0,a*n<=0.5*pi,当n=300时,a取pi/600。
数字信号处理实验报告一二

数字信号处理课程实验报告实验一 离散时间信号和系统响应一. 实验目的1. 熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解2. 掌握时域离散系统的时域特性3. 利用卷积方法观察分析系统的时域特性4. 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号及系统响应进行频域分析二、实验原理1. 采样是连续信号数字化处理的第一个关键环节。
对采样过程的研究不仅可以了解采样前后信号时域和频域特性的变化以及信号信息不丢失的条件,而且可以加深对离散傅里叶变换、Z 变换和序列傅里叶变换之间关系式的理解。
对连续信号()a x t 以T 为采样间隔进行时域等间隔理想采样,形成采样信号: 式中()p t 为周期冲激脉冲,()a x t 为()a x t 的理想采样。
()a x t 的傅里叶变换为()a X j Ω:上式表明将连续信号()a x t 采样后其频谱将变为周期的,周期为Ωs=2π/T 。
也即采样信号的频谱()a X j Ω是原连续信号xa(t)的频谱Xa(jΩ)在频率轴上以Ωs 为周期,周期延拓而成的。
因此,若对连续信号()a x t 进行采样,要保证采样频率fs ≥2fm ,fm 为信号的最高频率,才可能由采样信号无失真地恢复出原模拟信号ˆ()()()a a xt x t p t =1()()*()21()n a a a s X j X j P j X j jn T π∞=-∞Ω=ΩΩ=Ω-Ω∑()()n P t t nT δ∞=-∞=-∑计算机实现时,利用计算机计算上式并不方便,因此我们利用采样序列的傅里叶变换来实现,即而()()j j n n X e x n e ωω∞-=-∞=∑为采样序列的傅里叶变换2. 时域中,描述系统特性的方法是差分方程和单位脉冲响应,频域中可用系统函数描述系统特性。
已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应。
(完整版)数字信号处理实验二

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('振幅');
数字信号处理实验二

实验二信号的分析与处理综合实验一、实验目的目的:综合运用数字信号处理的理论知识进行信号的采样,重构,频谱分析和滤波器的设计,通过理论推导得出相应结论,再利用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。
数字信号实验报告 (全)

三、实验内容和步骤
对以下典型信号进行谱分析:
x1 (n) R4 (n) n 1, x 2 (n) 8 n, 0 , 4 n, x3 (n) n 3, 0, 0n3 4n7
其它n
0n3 4n7
其它n
nห้องสมุดไป่ตู้
x4 ( n) cos
4
用 FFT 对信号作频谱分析是学习数字信号处理的重要内容。 经常需要进行谱 分析的信号是模拟信号和时域离散信号。 对信号进行谱分析的重要问题是频谱分 辨率 D 和分析误差。 频谱分辨率直接和 FFT 的变换区间 N 有关, 因为 FFT 能够实 现的频率分辨率是 2π /N≤D。可以根据此时选择 FFT 的变换区间 N。误差主要 来自于用 FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续 谱,只有当 N 较大时离散谱的包络才能逼近于连续谱,因此 N 要适当选择大一 些。 周期信号的频谱是离散谱,只有用整数倍周期的长度作 FFT,得到的离散谱 才能代表周期信号的频谱。 如果不知道信号周期,可以尽量选择信号的观察时间 长一些。 对模拟信号的频谱时, 首先要按照采样定理将其变成时域离散信号。如果是 模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照 周期序列的谱分析进行。
3 k 1
1
0.7051 z 2
0.0007378 1 z 1 1 1.0106 z 1 0.3583 z 2 1 0.9044 z 1 0.2155 z 2
6
H k z
(2.1)
式中:
H k z
A 1 2 z 1 z 2 ,k 1, 2, 3 1 Bk z 1 Ck z 2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DSP实验二
信通8班7号
朱志强
实验4 离散信号的DTFT 和DFT
(1)
DFT代码:
n=0:15;
y=cos(5*pi*n/16);
Y=fft(y,16);
YY=fft(y,32);
subplot(2,1,1);
stem(abs(Y));title('16点幅度谱');
subplot(2,1,2);
stem(abs(YY));title('32点幅度谱');
图:
(2)
DTFT代码:
n=0:15;
y=cos(5*pi*n/16);
w=linspace(0,2*pi,1000);
X=y*exp(-j*n'*w);
plot(w,X);title('16点序列DTFT') 图:
结论:对DTFT进行满足一定关系的频域抽样即可得到DFT。
实验5 FFT 算法的应用
(1)
n=0:63;
Y1=cos(2*pi*7*2*n/64)+0.5*cos(2*pi*19*2*n/64);
Y2=cos(2*pi*7*(2*n+1)/64)+0.5*cos(2*pi*19*(2*n+1)/64);
Y3=Y1+j*Y2;
Y4=Y1-j*Y2;
X3=fft(Y3,64);
X4=fft(Y4,64);
X1=0.5*(X3+X4);
X2=-0.5*j*(X3-X4);
k=0:127;
X1=[X1,X1];
X2=[X2,X2];
X=X1+X2.*exp(-j*pi*k/64);
stem(abs(X));
结论:通过有效合理的利用共扼偶分量和奇分量,能显著减少运算量。
(2)
b=[1,0];a=[1,-0.8];
[H,w]=freqz(b,a,'whole');
subplot(2,2,1);plot(abs(H));
subplot(2,2,1);plot(abs(H));title('频率响应');
xn=ifft(H);
subplot(2,2,2);stem(xn); title('x(n)');
X1=freqz(b,a,64,'whole');
subplot(2,2,3);stem(abs(X1));title('64点频域响应');
x1=ifft(X1,64);
subplot(2,2,4);stem(x1);title('64点x(n)');
结论:在IDTFT中,时域抽样,频域连续;而在DTF中,是频域抽样,时域延拓。