数字信号实验报告

数字信号实验报告
数字信号实验报告

实验一:快速傅立叶变换的谱分析

一、实验目的:

学会利用matlab中的FFT函数,即进行信号的谱分析。

二、实验题目:

1.已知:

t1=[0:0.001:0.3];

t2=[0.301:0.001:0.6];

t3=[0.601:0.001:0.9];

t4=[0.901:0.001:1.199];

x1=sin(2*pi*100*t1);

x2=sin(2*pi*50*t2);

x3=sin(2*pi*25*t3);

x4=sin(2*pi*10*t4);

信号s1为

t= 0:0.001:1.199;s1= sin(2*pi*100*t)+sin(2*pi*50*t)+sin(2*pi*25*t)+sin(2*pi*10*t);

信号s2为t=[t1,t2,t3,t4];s2= [x1,x2,x3,x4];

信号s3为t=[t1,t2,t3,t4];s3= [x1,x4,x2,x3];

a.编写程序分别画出信号s1,s2,s3的时域波形和幅频图(参考图1,2,3)。

b.观察信号s1,s2,s3的时域波形和频谱图,思考其幅频图的差别及其原因。

c.信号s1,s2,s3的抽样频率fs为多少?对于1200个点的时域离散序列,对其

FFT后仍为长度为1200个点的序列,即周期N=1200,试分析N与离散时间信号频谱的周期fs的对应关系。各频谱图的频率分辨率为多少Hz?

d.若有信号s4的幅频图与s2的幅频图完全相同(如图2所示),问s4的时域

波形和s2是相同的吗,为什么?

实验程序清单:

t1=[0:0.001:0.3];

t2=[0.301:0.001:0.6];

t3=[0.601:0.001:0.9];

t4=[0.901:0.001:1.199];

x1=sin(2*pi*100*t1);

x2=sin(2*pi*50*t2);

x3=sin(2*pi*25*t3);

x4=sin(2*pi*10*t4);

%信号s1的时域图和频域图

t5=0:0.001:1.199;

x5=sin(2*pi*100*t5)+sin(2*pi*50*t5)+sin(2*pi*25*t5)+sin(2*pi*10*t5);

y5=abs(fft(x5));

f=1000*(0:(1/1200):0.5);

figure(1)

subplot(2,1,1),plot(t5,x5);grid on;axis tight;%波形图

title('时域波形');xlabel('t(s)');

subplot(2,1,2),plot(f,y5(1:601));grid on;axis tight;%幅频图

title('幅频图');xlabel('f(Hz)');

%信号s2的时域图和频谱图

t6=[t1,t2,t3,t4];

x6=[x1,x2,x3,x4];

y6=abs(fft(x6));

figure(2)

subplot(2,1,1),plot(t6,x6);grid on;axis tight; %波形图

title('时域波形');xlabel('t(s)');

subplot(2,1,2),plot(f,y6(1:601));grid on;axis tight; %幅频图

title('幅频图');xlabel('f(Hz)');

%信号s3的时域图和频域图

x7=[x1,x4,x2,x3];

y7=abs(fft(x7));

figure(3)

subplot(2,1,1),plot(t6,x7);grid on;axis tight; %波形图

title('时域波形');xlabel('t(s)');

subplot(2,1,2),plot(f,y7(1:601));grid on;axis tight; %幅频图

title('幅频图');xlabel('f(Hz)');

结果分析

a.编写程序分别画出信号s1,s2,s3的时域波形和幅频图(参考下图)。

b.观察信号s1,s2,s3的时域波形和频谱图,思考其幅频图的差别及其原因。

因为信号s1、s2、s3这三个信号中都有频率为100hz,50hz,25hz,10hz的

频率分量,从波形图可以看出s1只是单纯的含有这四种分量,而s2,s3的频谱图相同,除了这四种分量还有其他分量,因为s1中这四种分量一直存在,但s2,s3中只是特定时间段出现。

c. 信号s1,s2,s3的抽样频率fs为多少?对于1200个点的时域离散序列,对其

FFT后仍为长度为1200个点的序列,即周期N=1200,试分析N与离散时间信号频谱的周期fs的对应关系。各频谱图的频率分辨率为多少Hz?

频谱图横坐标所以两相邻点的频率间隔为1000/1200=5/6hz,所以各频谱图的频率分辨率F=5/6HZ.又因为F=1/tp=1/NT=fs/N,因为N=1200,所以s1,s2,s3的抽样频率fs=NF=1200*5/6=1000HZ.

d .若有信号s4的幅频图与s2的幅频图完全相同(如图2所示),问s4的时域波形和s2是相同的吗,为什么?

若有信号s4的幅频图与s2的幅频图完全相同,s4的时域波形和s2可能是不同的,因为幅频特性图只表明了幅度和频率的关系,即对应频率分量的幅值,而其相位特性未知,时域图是幅度和相位图完全一致时才相同。

实验小结

虽然第一次实验看起来比较简单,但是由于平时不怎么接触Matlab,导致很多对Matlab语法以及命令操作不是很熟悉,但是Matlab本省提供的帮助文档很全,所以遇到不会的命令或者函数可以直接调用帮助文档,可以很快的解决问题。其次就是通过实验,反复研究代码,可以加深对快速傅立叶变换的谱分析的理解。

实验二:IIR数字滤波器设计

一、实验目的:

1、熟悉滤波器的基本概念;

2、了解滤波器的分类;

3、熟悉应用matlab设计各种滤波器的方法。

二、实验相关原理:

1.数字滤波器分类

实现方法

有限长冲激响应----FIR滤波器

无限长冲激响应----IIR滤波器

功能

低通(LP)

高通(HP)

带通(BP)

带阻(BS)

2、数字滤波器设计步骤

一、给出所需要的滤波器的技术指标

二、设计一个H(Z)使其逼近所需要的技术指标

三、实现所设计的H(Z)

( H(Z)为系统的数学模型:传递函数模型、状态方程模型和零极点增益模型

等)

3、IIR数字滤波器设计步骤

一、按一定规则将给出的数字滤波器的技术指标转换为模拟滤波器的技术指标

二、根据转换后的技术指标使用滤波器阶数选择函数,确定最小阶数N和固有频率Wn

三、运用最小阶数N、固有频率Wn产生模拟滤波器原型

四、运用冲激响应不变法或双线性不变法把模拟滤波器转换成数字滤波器函数

1、Buttord(Wp,Ws,Rp,Rs)

butterworth滤波器阶数选择函数,返回符合要求性质的滤波器最小阶数N 以及固有频率Wn

Wp 通带截至频率

Ws 阻带截至频率

Rp 通带衰减(不超过)

Rs 阻带衰减(不小于)

Wp,Ws是归一化频率,范围是[0,1],对应д弧度归一化处理: Wp(或Ws)/(fs/2)

例:确定数字低通Butterworth滤波器的阶数和固有频率。

要求:wp=500hz,ws=550hz,rp=1db,rs=50db,fs=2000hz

程序清单:

Wp=500;ws=550;rp=1;rs=50;fs=2000 ;

[N,Wn]=buttord(wp/(fs/2),ws/(fs/2),rp,rs)

2、Butter(N,Wn)

设计数字滤波器函数

格式:[B,A]= Butter(N,Wn) [B,A]是滤波器系数矩阵。

如果Wn=[w1,w2]是一个二元向量,则该函数将设计出带通、带阻数字滤波器3、freqz(B,A)

求线性离散时间系统的传输函数的频率响应

格式:

[H,W]= freqz(B,A)

H:频率响应

W:所要计算响应的频率点组成的向量

4、filter()

一维数字滤波函数

格式:

y= filter(B,A,x)

x:待滤波信号

y:滤波以后的信号

x1=wavread('pb8k.wav');%读取语音信号

实验题目:

用双线性变换法设计Butterworth滤波器对加噪后的语音信号进行滤波。绘制频率响应曲线,画出滤波前后的时域图和频谱图。

实验程序清单:

%双线性变换法设计Butterworth滤波器

fs=8000;

x1=wavread('pb8k.wav');

t=(0:length(x1)-1)/8000;

f=fs*(0:1023)/2048;

A1=0.05;A2=0.10;

d=[A1*cos(2*pi*3800*t)+A2*sin(2*pi*3600*t)]';

x2=x1+d;

%用双线性变换法设计一数字巴特沃斯低通器

fp=3200;

fs=3400;

Fs=8000;

Ts=1/Fs;

wp=2*pi*fp*Ts;

ws=2*pi*fs*Ts;

Rp=1;

Rs=15;

wp1=2/Ts*tan(wp/2); %将模拟截止频率进行预畸变

ws1=2/Ts*tan(ws/2);

[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s'); %选择滤波器的最小阶数

[Z,P,K]=buttap(N); %创建butterworth模拟滤波器

%输入N:滤波器的阶数

%输出Z:零点;P:极点;K:增益

[Bap,Aap]=zp2tf(Z,P,K);

[b,a]=lp2lp(Bap,Aap,Wn); %求模拟滤波器的传递函数

[bz,az]=bilinear(b,a,Fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换(即求的数字滤波器的系统函数)

[H,W]=freqz(bz,az); %绘制频率响应曲线

figure(1)

plot(W*Fs/(2*pi),abs(H))

grid on;axis tight;

xlabel('频率(Hz)')

ylabel('频率响应')

title('Butterworth')

f1=filter(bz,az,x2);

figure(2)

subplot(2,1,1)

plot(t,x2) %画出滤波前的时域图

grid on;axis tight;

title('滤波前的时域波形');

subplot(2,1,2)

plot(t,f1); %画出滤波后的时域图

grid on;axis tight;

title('滤波后的时域波形');

y3=fft(f1,2048);

figure(3)

y2=fft(x2,2048);

subplot(2,1,1);

plot(f,abs(y2(1:1024))); %画出滤波前的频谱图grid on;axis tight;

title('滤波前的频谱')

xlabel('Hz');

ylabel('幅度');

subplot(2,1,2)

plot(f,abs(y3(1:1024))); %画出滤波后的频谱图grid on;axis tight;

title('滤波后的频谱')

xlabel('Hz');

ylabel('幅度');

实验波形图:

实验小结

对于IIR数字滤波器的设计还真是遇到很多问题,刚开始是找不到音频文件,寻求助教和同学的帮助后,自己慢慢一步一步操作才得到实验结果。主要是刚开始对于IIR数字滤波器原理不是很理解,导致设计滤波器来不够熟练。经过这次实验,可以说从新认识了IIR滤波器原理以及滤波器的设计原理,日后还需多加

练习,熟练掌握IIR数字滤波器的设计。

实验三:综合实验

一、实验目的

对之前的学习内容做到学以致用,通过实验能够设计滤波器并解决具体问题,能够利用数字信号处理语音或图像等实际问题。

二、实验要求及内容

给一段原始的语音信号(可以是自己录制的一段语音),加上一频率为3.8kHz

的高频余弦噪声和频率为3.6kHz的高频正弦噪声(幅度自己可以选择),用窗函

数设计一滤波器(要求最小阻带衰减为50dB)对加噪后的语音信号进行滤波,

画出滤波器的频率响应曲线,画出滤波前后的时域图和频谱图。

需要用到的函数:

fir1 用窗函数设计FIR滤波器的函数

三、实验设计

首先利用窗函数设计出滤波所需要的FIR滤波器,然后对处理前和处理后的语音信号进行时域波形仿真,再分别进行频谱分析,再检查滤波效果。

滤波器设计

1、给出所要设计的FIR模拟滤波器的技术指标

%模拟指标

fp=3200; %通带截止频率

ft=3400; %阻带截止频率

2、计算数字滤波器的数字指标

%数字指标

wp=2*pi*fp*Ts;

ws=2*pi*ft*Ts;

3、根据允许的过渡带宽度及阻带衰减,初步选择窗函数和N值

wdelta=ws-wp; %过渡带宽度

N=ceil(6.6*pi/wdelta); %取整

wn=(0.8+0.85)*pi/2; %截止频率

[bz,az]=fir1(N,wn/pi,hamming(N+1)); %选择窗函数,并归一化截止频率

4、若选用理想低通逼近,理想低通的截止频率

wn=(0.8+0.85)*pi/2; %截止频率

实验程序清单:

fs=8000;

x1=wavread('pb8k.wav');

t=(0:length(x1)-1)/8000;

f=fs*(0:2047)/4096;

A1=0.05;A2=0.10;

d=[A1*cos(2*pi*3600*t)+A2*sin(2*pi*3800*t)]';

x2=x1+d;

%模拟指标

fp=3200; %通带截止频率

ft=3400;%阻带截止频率

Ts=1/fs;

%数字指标

wp=2*pi*fp*Ts;

ws=2*pi*ft*Ts;

wdelta=ws-wp; %过渡带宽度

N=ceil(6.6*pi/wdelta); %取整

wn=(0.8+0.85)*pi/2; %截止频率

[bz,az]=fir1(N,wn/pi,hamming(N+1)); %选择窗函数,并归一化截止频率figure(1)

freqz(bz,az);

grid on;axis tight;

f2=filter(bz,az,x2);

figure(2)

subplot(2,1,1)

plot(t,x2);

grid on;axis tight;

title('滤波前的时域波形');

subplot(2,1,2)

plot(t,f2);

grid on;axis tight;

title('滤波后的时域波形');

y3=fft(f2,4096);

f=fs*(0:2047)/4096;

figure(3)

y2=fft(x2,4096);

subplot(2,1,1);

plot(f,abs(y2(1:2048)));

grid on;axis tight;

title('滤波前的频谱')

xlabel('Hz');

ylabel('幅度');

subplot(2,1,2)

plot(f,abs(y3(1:2048)));

grid on;axis tight;

title('滤波后的频谱')

xlabel('Hz');

ylabel('幅度');

实验波形图:

1、滤波器频谱特性图,幅度响应图和相位响应图,设计出了线性相位。

由上图可知布莱克曼窗比汉明窗得到的滤波器幅度响应衰减更快,但过渡带要比汉明窗宽。

2、语音信号滤波前后的时域波形图。

3、语音信号滤波前后的频域波形图。

由上图可知,用布莱克满窗得到的低通滤波器可以滤除分量为3600hz,3800hz的噪声,满足题目的要求。

数字信号处理实验报告

实验一MATLAB语言的基本使用方法 实验类别:基础性实验 实验目的: (1)了解MATLAB程序设计语言的基本方法,熟悉MATLAB软件运行环境。 (2)掌握创建、保存、打开m文件的方法,掌握设置文件路径的方法。 (3)掌握变量、函数等有关概念,具备初步的将一般数学问题转化为对应计算机模型并进行处理的能力。 (4)掌握二维平面图形的绘制方法,能够使用这些方法进行常用的数据可视化处理。 实验内容和步骤: 1、打开MATLAB,熟悉MATLAB环境。 2、在命令窗口中分别产生3*3全零矩阵,单位矩阵,全1矩阵。 3、学习m文件的建立、保存、打开、运行方法。 4、设有一模拟信号f(t)=1.5sin60πt,取?t=0.001,n=0,1,2,…,N-1进行抽样,得到 序列f(n),编写一个m文件sy1_1.m,分别用stem,plot,subplot等命令绘制32 点序列f(n)(N=32)的图形,给图形加入标注,图注,图例。 5、学习如何利用MATLAB帮助信息。 实验结果及分析: 1)全零矩阵 >> A=zeros(3,3) A = 0 0 0 0 0 0 0 0 0 2)单位矩阵 >> B=eye(3) B = 1 0 0 0 1 0 0 0 1 3)全1矩阵 >> C=ones(3) C = 1 1 1 1 1 1 1 1 1 4)sy1_1.m N=32; n=0:N-1; dt=0.001; t=n*dt; y=1.5*sin(60*pi*t); subplot(2,1,1), plot(t,y); xlabel('t'); ylabel('y=1.5*sin(60*pi*t)'); legend('正弦函数'); title('二维图形'); subplot(2,1,2), stem(t,y) xlabel('t'); ylabel('y=1.5*sin(60*pi*t)'); legend('序列函数'); title('条状图形'); 00.0050.010.0150.020.0250.030.035 t y = 1 . 5 * s i n ( 6 * p i * t ) 二维图形 00.0050.010.0150.020.0250.030.035 t y = 1 . 5 * s i n ( 6 * p i * t ) 条状图形

数字信号处理实验报告

数字信号处理作业提交日期:2016年7月15日

实验一 维纳滤波器的设计 第一部分 设计一维纳滤波器。 (1)产生三组观测数据,首先根据()(1)()s n as n w n =-+产生信号()s n ,将其加噪(信噪比分别为20,10,6dB dB dB ),得到观测数据123(),(),()x n x n x n 。 (2)估计()i x n ,1,2,3i =的AR 模型参数。假设信号长度为L ,AR 模型阶数为N ,分析实验结果,并讨论改变L ,N 对实验结果的影响。 1 实验原理 滤波技术是信号分析、处理技术的重要分支,无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传递是至关重要的。信号分析检测与处理的一个十分重要的内容就是从噪声中提取信号,实现这种功能的有效手段之一是设计一种具有最佳线性过滤特性的滤波器,当伴有噪声的信号通过这种滤波器的时候,它可以将信号尽可能精确地重现或对信号做出尽可能精确的估计,而对所伴随噪声进行最大限度地抑制。维纳滤波器就是这种滤波器的典型代表之一。 维纳(Wiener )是用来解决从噪声中提取信号的一种过滤(或滤波)方法。这种线性滤波问题,可以看做是一种估计问题或一种线性估计问题。 设一线性系统的单位样本响应为()h n ,当输入以随机信号()x n ,且 ()() () x n s n v n =+,其中()s n 表示原始信号,即期望信号。()v n 表示噪声,则输出()y n 为()=()()m y n h m x n m -∑,我们希望信号()x n 经过线性系统()h n 后得到的()y n 尽可能接近 于()s n ,因此称()y n 为估计值,用?()s n 表示。 则维纳滤波器的输入-输出关系可用下面表示。 设误差信号为()e n ,则?()()()e n s n s n =-,显然)(n e 可能是正值,也可能是负值,并且它是一个随机变量。因此,用它的均方误差来表达误差是合理的,所谓均方误差最小即 它的平方的统计期望最小:222?[|()|][|()()|][|()()|]E e n E s n s n E s n y n =-=-=min 。而要使均方误差最小,则需要满足2[|()|]j E e n h ?=0. 进一步导出维纳-霍夫方程为:()()()()*(),0,1,2...xs xx xx i R m h i R m i R m h m m =-==∑ 写成矩阵形式为:xs xx R R h =,可知:1xs xx h R R -=。表明已知期望信号与观测数据的互相关函数以及观测信号的自相关函数时,可以通过矩阵求逆运算,得到维纳滤波器的

西电数字信号处理上机实验报告

数字信号处理上机实验报告 14020710021 张吉凯 第一次上机 实验一: 设给定模拟信号()1000t a x t e -=,t 的单位是ms 。 (1) 利用MATLAB 绘制出其时域波形和频谱图(傅里叶变换),估计其等效带宽(忽略谱分量降低到峰值的3%以下的频谱)。 (2) 用两个不同的采样频率对给定的()a x t 进行采样。 ○1()()15000s a f x t x n =以样本秒采样得到。 ()()11j x n X e ω画出及其频谱。 ○2()()11000s a f x t x n =以样本秒采样得到。 ()() 11j x n X e ω画出及其频谱。 比较两种采样率下的信号频谱,并解释。 (1)MATLAB 程序: N=10; Fs=5; T s=1/Fs; n=[-N:T s:N]; xn=exp(-abs(n)); w=-4*pi:0.01:4*pi; X=xn*exp(-j*(n'*w)); subplot(211) plot(n,xn); title('x_a(t)时域波形'); xlabel('t/ms');ylabel('x_a(t)'); axis([-10, 10, 0, 1]); subplot(212); plot(w/pi,abs(X)); title('x_a(t)频谱图'); xlabel('\omega/\pi');ylabel('X_a(e^(j\omega))');

ind = find(X >=0.03*max(X))*0.01; eband = (max(ind) -min(ind)); fprintf('等效带宽为%fKHZ\n',eband); 运行结果: 等效带宽为12.110000KHZ

数字信号处理上机实验代码

文件名:tstem.m(实验一、二需要) 程序: f unction tstem(xn,yn) %时域序列绘图函数 %xn:被绘图的信号数据序列,yn:绘图信号的纵坐标名称(字符串)n=0:length(xn)-1; stem(n,xn,'.'); xlabel('n');ylabel('yn'); axis([0,n(end),min(xn),1.2*max(xn)]); 文件名:tplot.m(实验一、四需要) 程序: function tplot(xn,T,yn) %时域序列连续曲线绘图函数 %xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串) %T为采样间隔 n=0;length(xn)-1;t=n*T; plot(t,xn); xlabel('t/s');ylabel(yn); axis([0,t(end),min(xn),1.2*max(xn)]); 文件名:myplot.m(实验一、四需要)

%(1)myplot;计算时域离散系统损耗函数并绘制曲线图。function myplot(B,A) %B为系统函数分子多项式系数向量 %A为系统函数分母多项式系数向量 [H,W]=freqz(B,A,1000) m=abs(H); plot(W/pi,20*log10(m/max(m)));grid on; xlabel('\omega/\pi');ylabel('幅度(dB)') axis([0,1,-80,5]);title('损耗函数曲线'); 文件名:mstem.m(实验一、三需要) 程序: function mstem(Xk) %mstem(Xk)绘制频域采样序列向量Xk的幅频特性图 M=length(Xk); k=0:M-1;wk=2*k/M;%产生M点DFT对应的采样点频率(关于pi归一化值) stem(wk,abs(Xk),'.');box on;%绘制M点DFT的幅频特性图xlabel('w/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(Xk))]); 文件名:mpplot.m(实验一需要)

数字信号处理实验报告一

武汉工程大学 数字信号处理实验报告 姓名:周权 学号:1204140228 班级:通信工程02

一、实验设备 计算机,MATLAB语言环境。 二、实验基础理论 1.序列的相关概念 2.常见序列 3.序列的基本运算 4.离散傅里叶变换的相关概念 5.Z变换的相关概念 三、实验内容与步骤 1.离散时间信号(序列)的产生 利用MATLAB语言编程产生和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形表示。 四实验目的 认识常用的各种信号,理解其数字表达式和波形表示,掌握在计算机中生成及绘制数字信号波形的方法,掌握序列的简单运算及计算机实现与作用,理解离散时间傅里叶变换,Z变换及它们的性质和信号的频域分

实验一离散时间信号(序列)的产生 代码一 单位样值 x=2; y=1; stem(x,y); title('单位样值 ') 单位阶跃序列 n0=0; n1=-10; n2=10; n=[n1:n2]; x=[(n-n0)>=0]; stem(n,x); xlabel('n'); ylabel('x{n}'); title('单位阶跃序列');

实指数序列 n=[0:10]; x=(0.5).^n; stem(n,x); xlabel('n'); ylabel('x{n}'); title('实指数序列');

正弦序列 n=[-100:100]; x=2*sin(0.05*pi*n); stem(n,x); xlabel('n'); ylabel('x{n}'); title('正弦序列');

随机序列 n=[1:10]; x=rand(1,10); subplot(221); stem(n,x); xlabel('n'); ylabel('x{n}'); title('随机序列');

数字信号处理上机实验(第三版)

数字信号处理实验(Matlab) 实验一: 系统响应及系统稳定性 %实验1:系统响应及系统稳定性 close all;clear all %======内容1:调用filter解差分方程,由系统对u(n)的响应判断稳定性====== A=[1,-0.9];B=[0.05,0.05]; %系统差分方程系数向量B和A x1n=[1 1 1 1 1 1 1 1 zeros(1,50)]; %产生信号x1(n)=R8(n) x2n=ones(1,128); %产生信号x2(n)=u(n) hn=impz(B,A,58); %求系统单位脉冲响应h(n) subplot(2,2,1);y='h(n)';tstem(hn,y); %调用函数tstem绘图 title('(a)系统单位脉冲响应h(n)');box on y1n=filter(B,A,x1n); %求系统对x1(n)的响应y1(n) subplot(2,2,2);y='y1(n)';tstem(y1n,y); title('(b)系统对R8(n)的响应y1(n)');box on y2n=filter(B,A,x2n); %求系统对x2(n)的响应y2(n) subplot(2,2,4);y='y2(n)';tstem(y2n,y); title('(c)系统对u(n)的响应y2(n)');box on %===内容2:调用conv函数计算卷积============================ x1n=[1 1 1 1 1 1 1 1 ]; %产生信号x1(n)=R8(n) h1n=[ones(1,10) zeros(1,10)]; h2n=[1 2.5 2.5 1 zeros(1,10)];

数字信号处理实验报告(实验1_4)

实验一 MATLAB 仿真软件的基本操作命令和使用方法 实验容 1、帮助命令 使用 help 命令,查找 sqrt (开方)函数的使用方法; 2、MATLAB 命令窗口 (1)在MATLAB 命令窗口直接输入命令行计算3 1)5.0sin(21+=πy 的值; (2)求多项式 p(x) = x3 + 2x+ 4的根; 3、矩阵运算 (1)矩阵的乘法 已知 A=[1 2;3 4], B=[5 5;7 8],求 A^2*B

(2)矩阵的行列式 已知A=[1 2 3;4 5 6;7 8 9],求A (3)矩阵的转置及共轭转置 已知A=[1 2 3;4 5 6;7 8 9],求A' 已知B=[5+i,2-i,1;6*i,4,9-i], 求B.' , B' (4)特征值、特征向量、特征多项式 已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征值、特征向量、特征多项式;

(5)使用冒号选出指定元素 已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3 列前2 个元素;A 中所有列第2,3 行的元素; 4、Matlab 基本编程方法 (1)编写命令文件:计算1+2+…+n<2000 时的最大n 值;

(2)编写函数文件:分别用for 和while 循环结构编写程序,求 2 的0 到15 次幂的和。

5、MATLAB基本绘图命令 (1)绘制余弦曲线 y=cos(t),t∈[0,2π]

(2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5), t∈[0,2π] (3)绘制[0,4π]区间上的 x1=10sint 曲线,并要求: (a)线形为点划线、颜色为红色、数据点标记为加号; (b)坐标轴控制:显示围、刻度线、比例、网络线 (c)标注控制:坐标轴名称、标题、相应文本; >> clear;

数字信号处理上机实验答案(全)1

第十章 上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一 系统响应及系统稳定性。 实验二 时域采样与频域采样。 实验三 用FFT 对信号作频谱分析。 实验四 IIR 数字滤波器设计及软件实现。 实验五 FIR 数字滤波器设计与软件实现 实验六 应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR 数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 10.1 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握 求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MA TLAB 语言的工具箱函数filter 函数。也可以用MATLAB 语言的工具箱函数conv 函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。 系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。 系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。 实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。系统的稳态输出是指当∞→n 时,系统的输出。如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n 的加大,幅度趋于稳定,达到稳态输出。 注意在以下实验中均假设系统的初始状态为零。 3.实验内容及步骤 (1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用filter 函数或conv 函数求解系统输出响应的主程序。程序中要有绘制信号波形的功能。 (2)给定一个低通滤波器的差分方程为

西南交大数字信号处理报告

信息科学与技术学院本科三年级 数字信号处理实验报告 2011 年12 月21日

实验一 序列的傅立叶变换 实验目的 进一步加深理解DFS,DFT 算法的原理;研究补零问题;快速傅立叶变换 (FFT )的应用。 实验步骤 1. 复习DFS 和DFT 的定义,性质和应用; 2. 熟悉MATLAB 语言的命令窗口、编程窗口和图形窗口的使用;利用提供的 程序例子编写实验用程序;按实验内容上机实验,并进行实验结果分析;写出完整的实验报告,并将程序附在后面。 实验内容 1. 周期方波序列的频谱试画出下面四种情况下的的幅度频谱,并分析补零后,对信号频谱的影响。 实验结果: 60 ,7)4(;60,5)3(; 40,5)2(;20,5)1()] (~[)(~,2,1,01 )1(,01,1)(~=========±±=???-+≤≤+-+≤≤=N L N L N L N L n x DFS k X m N m n L m N L m N n m N n x ) 52.0cos()48.0cos()(n n n x ππ+=

2. 有限长序列x(n)的DFT (1) 取x(n)(n=0:10)时,画出x(n)的频谱X(k) 的幅度; (2) 将(1)中的x(n)以补零的方式,使x(n)加长到(n:0~100)时,画出 x(n)的频谱X(k) 的幅度; (3) 取x(n)(n:0~100)时,画出x(n)的频谱X(k) 的幅度。利用FFT 进行谱分析 已知:模拟信号 以t=0.01n(n=0:N-1)进行采样,求N 点DFT 的幅值谱。 请分别画出N=45; N=50;N=55;N=60时的幅值曲线。 实验结果: ) 8cos(5)4sin(2)(t t t x ππ+=

数字信号处理上机报告-一

数字信号处理上机报告-一

数字信号处理第一次上机实验报告 实验一: 设给定模拟信号()1000t a x t e -=,的单位是ms 。 (1) 利用MATLAB 绘制出其时域波形和频谱图(傅里叶变换),估计其等效带宽(忽略谱分量降低到峰值的3%以下的频谱)。 (2) 用两个不同的采样频率对给定的进行采样。 ○1 。 ○2 。 比较两种采样率下的信号频谱,并解释。 实验一MATLAB 程序: (1) N=10; Fs=5; Ts=1/Fs; n=[-N:Ts:N]; xn=exp(-abs(n)); w=-4*pi:0.01:4*pi; X=xn*exp(-j*(n'*w)); subplot(211) plot(n,xn); title('x_a(t)时域波形'); xlabel('t/ms');ylabel('x_a(t)'); t ()a x t ()()15000s a f x t x n =以样本秒采样得到。()()11j x n X e ω画出及其频谱()()11000s a f x t x n =以样本秒采样得到。()() 11j x n X e ω画出及其频谱

axis([-10, 10, 0, 1]); subplot(212); plot(w/pi,abs(X)); title('x_a(t)频谱图'); xlabel('\omega/\pi');ylabel('X_a(e ^(j\omega))'); ind = find(X >=0.03*max(X))*0.01; eband = (max(ind) -min(ind)); fprintf('等效带宽为 %fKHZ\n',eband); 运行结果:

数字信号实验报告1

实验一信号、系统及系统响应 1、实验目的 认真复习采样理论、离散信号与系统、线性卷积、序列的z 变换及性质等有关内容;掌握离散时间序列的产生与基本运算,理解离散时间系统的时域特性与差分方程的求解方法,掌握离散信号的绘图方法; 熟悉序列的z 变换及性质,理解理想采样前后信号频谱的变化。 2、实验内容 a. 产生长度为500 的在[0,1]之间均匀分布的随机序列,产生长度为500 的均值为0 单位方差的高斯分布序列。 clc y1=rand(500); x1=linspace(0,1,100); yn=hist(y1,x1); yn=yn/length(y1); bar(x1,yn); title('[0,1]均匀分布'); figure; y2=randn(1,500); ymin=min(y2); ymax=max(y2); x2=linspace(ymin,ymax,100); ym=hist(y2,x2); ym=ym/length(y2); bar(x2,ym); title('[0,1]高斯分布');

b. 线性时不变系统单位脉冲响应为h(n)=(0.9)n u(n),当系统输入为x(n)=R10(n)时,求系统的零状态响应,并绘制波形图。 function [x,n]=stepseq(n0,ns,ne) n=[ns:ne]; x=[(n-n0)>=0]; function [y,ny]=conv_m(x,nx,h,nh) ny1=nx(1)+nh(1); ny2=nx(length(x))+nh(length(h)); ny=[ny1:ny2]; y=conv(x,h); h=((0.9).^n).*stepseq(0,-5,50); subplot(3,1,1); stem(n,x,'filled'); axis([-5,50,0,2]); ylabel('X(n)'); subplot(3,1,2); stem(n,h,'filled');

数字信号处理上机实验答案完整版

数字信号处理上机实验 答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

第十章上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一系统响应及系统稳定性。 实验二时域采样与频域采样。 实验三用FFT对信号作频谱分析。 实验四 IIR数字滤波器设计及软件实现。 实验五 FIR数字滤波器设计与软件实现 实验六应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 functiontstem(xn,yn) %时域序列绘图函数 %xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串) n=0:length(xn)-1; stem(n,xn,'.');boxon xlabel('n');ylabel(yn); axis([0,n(end),min(xn),*max(xn)]) 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可

数字信号实验报告

实验一:快速傅立叶变换的谱分析 一、实验目的: 学会利用matlab中的FFT函数,即进行信号的谱分析。 二、实验题目: 1.已知: t1=[0:0.001:0.3]; t2=[0.301:0.001:0.6]; t3=[0.601:0.001:0.9]; t4=[0.901:0.001:1.199]; x1=sin(2*pi*100*t1); x2=sin(2*pi*50*t2); x3=sin(2*pi*25*t3); x4=sin(2*pi*10*t4); 信号s1为 t= 0:0.001:1.199;s1= sin(2*pi*100*t)+sin(2*pi*50*t)+sin(2*pi*25*t)+sin(2*pi*10*t); 信号s2为t=[t1,t2,t3,t4];s2= [x1,x2,x3,x4]; 信号s3为t=[t1,t2,t3,t4];s3= [x1,x4,x2,x3]; a.编写程序分别画出信号s1,s2,s3的时域波形和幅频图(参考图1,2,3)。 b.观察信号s1,s2,s3的时域波形和频谱图,思考其幅频图的差别及其原因。 c.信号s1,s2,s3的抽样频率fs为多少?对于1200个点的时域离散序列,对其 FFT后仍为长度为1200个点的序列,即周期N=1200,试分析N与离散时间信号频谱的周期fs的对应关系。各频谱图的频率分辨率为多少Hz? d.若有信号s4的幅频图与s2的幅频图完全相同(如图2所示),问s4的时域 波形和s2是相同的吗,为什么? 实验程序清单: t1=[0:0.001:0.3]; t2=[0.301:0.001:0.6]; t3=[0.601:0.001:0.9]; t4=[0.901:0.001:1.199]; x1=sin(2*pi*100*t1); x2=sin(2*pi*50*t2); x3=sin(2*pi*25*t3); x4=sin(2*pi*10*t4); %信号s1的时域图和频域图 t5=0:0.001:1.199; x5=sin(2*pi*100*t5)+sin(2*pi*50*t5)+sin(2*pi*25*t5)+sin(2*pi*10*t5); y5=abs(fft(x5));

数字信号处理实验报告

3.(1)用双线性变换法设计一个Chebyshev型高通滤波器程序如下 Rp=1.2;Rs=20;T=0.001;fp=300;fs=200; wp=2*pi*fp*T;ws=2*pi*fs*T; wp1=(2/T)*tan(wp/2);ws1=(2/T)*tan(ws/2); [n,wn]=cheb1ord(wp1,ws1,Rp,Rs,'s'); [b,a]=cheby1(n,Rp,wn,'high','s'); [bz,az]=bilinear(b,a,1/T); [db,mag,pha,grd,w]=freqz_m(bz,az);plot(w/pi,db); axis([0,1,-30,2]); 3.(2) a用双线性变换法设计一个Butterworth型数字低通滤波器程序如下Rp=1;Rs=25;T=0.001;fp=300;fs=200; wp=2*pi*fp*T;ws=2*pi*fs*T; wp1=(2/T)*tan(wp/2);ws1=(2/T)*tan(ws/2); [n,wn]=buttord(wp1,ws1,Rp,Rs,'s'); [b,a]=butter(n,wn,'low','s'); [bz,az]=bilinear(b,a,1/T); [db,mag,pha,grd,w]=freqz_m(bz,az);plot(w/pi,db); axis([0,1,-30,2]); b用脉冲响应不变法设计一个Butterworth数字低通滤波器的程序如下:wp=400*pi;ws=600*pi;Rp=1;Rs=25; [n,wn]=buttord(wp,ws,Rp,Rs,'s') [b,a]=butter(n,wn,'s') [db,mag,pha,w]=freqs_m(b,a,500*2*pi);

数字信号处理上机实验答案(第三版)

实验1:系统响应及系统稳定性 实验程序清单: close all;clear all %======容1:调用filter解差分方程,由系统对u(n)的响应判断稳定性====== A=[1,-0.9];B=[0.05,0.05]; %系统差分方程系数向量B和A x1n=[1 1 1 1 1 1 1 1 zeros(1,50)]; %产生信号x1(n)=R8(n) x2n=ones(1,128); %产生信号x2(n)=u(n) hn=impz(B,A,58); %求系统单位脉冲响应h(n) subplot(2,2,1);y='h(n)';stem(hn, 'y'); %调用函数tstem绘图 title('(a) 系统单位脉冲响应h(n)'); y1n=filter(B,A,x1n); %求系统对x1(n)的响应y1(n) subplot(2,2,2);y='y1(n)';stem(y1n,'y'); title('(b) 系统对R8(n)的响应y1(n)'); y2n=filter(B,A,x2n); %求系统对x2(n)的响应y2(n) subplot(2,2,4);y='y2(n)';stem(y2n,'y'); title('(c) 系统对u(n)的响应y2(n)'); %===容2:调用conv函数计算卷积============================ x1n=[1 1 1 1 1 1 1 1 ]; %产生信号x1(n)=R8(n) h1n=[ones(1,10) zeros(1,10)]; h2n=[1 2.5 2.5 1 zeros(1,10)]; y21n=conv(h1n,x1n); y22n=conv(h2n,x1n); figure(2) subplot(2,2,1);y='h1(n)';stem(h1n,'y'); %调用函数tstem绘图 title('(d) 系统单位脉冲响应h1(n)'); subplot(2,2,2);y='y21(n)'; stem(y21n,'y'); title('(e) h1(n)与R8(n)的卷积y21(n)'); subplot(2,2,3);y='h2(n)'; stem(h2n, 'y'); %调用函数tstem绘图 title('(f) 系统单位脉冲响应h2(n)'); subplot(2,2,4);y='y22(n)';stem(y22n,'y'); title('(g) h2(n)与R8(n)的卷积y22(n)'); %=========容3:谐振器分析======================== un=ones(1,256); %产生信号u(n) n=0:255; xsin=sin(0.014*n)+sin(0.4*n); %产生正弦信号 A=[1,-1.8237,0.9801];B=[1/100.49,0,-1/100.49]; %系统差分方程系数向量B和A y31n=filter(B,A,un); %谐振器对u(n)的响应y31(n) y32n=filter(B,A,xsin); %谐振器对u(n)的响应y31(n) figure(3) subplot(2,1,1);y='y31(n)';stem(y31n,'y'); title('(h) 谐振器对u(n)的响应y31(n)'); subplot(2,1,2);y='y32(n)';stem(y32n,'y'); title('(i) 谐振器对正弦信号的响应y32(n)');

数字信号处理实验报告

南京邮电大学 实验报告 实验名称_____熟悉MATLAB环境 ___ 快速傅里叶变换及其应用 ____IIR数字滤波器的设计_ FIR数字滤波器的设计 课程名称数字信号处理A 班级学号_______09002111___________ 姓名王都超 开课时间 2011/2012学年,第二学期

实验一熟悉MATLAB环境 一、实验目的 (1)熟悉MA TLAB的主要操作命令。 (2)学会简单的矩阵输入和数据读写。 (3)掌握简单的绘图命令。 (4)用MATLAB编程并学会创建函数。 (5)观察离散系统的频率响应。 二、实验内容 (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。 D = -2 -2 -2 -2 E = 3 8 15 24 F = 0.3333 0.5000 0.6000 0.6667 G =

1 16 243 4096 (2) 用MATLAB 实现下列序列: a) 08(). 0n 15n x n =≤≤ n=0:1:15; x1=0.8.^n; a=(0.2+3*i)*n; stem(x1) b) 023(.)() 0n 15j n x n e +=≤≤ n=0:1:15; x2=exp(a); a=(0.2+3*i)*n; stem(x2)

c) 3012502202501()cos(..)sin (..)x n n n ππππ=+++ 0n 15≤≤ (4) 绘出下列时间函数的图形,对x 轴、y 轴以及图形上方均须加上适当的标注:

数字信号处理实验报告

数字信号处理实验 利用FFT对信号进行频谱分析

一 实验目的 学习用FFT FFT 。 二 实验原理 用FFT 对信号作频分析是学习数字信号处理的重要内容,经常需要进行分析的信号是模拟信号的时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是2π/N ,因此要求2π/N 小于等于D 。可以根据此式选择FFT 的变换区间N 。误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时,离散谱的包络才能逼近连续谱因此N 要适当选择大一些。 三 实验内容 1.模拟信号)8cos(5)4sin(2)(t t t x ππ+=,以)1:0(01.0-==N n n t 进行采样,求: (1)N =40点FFT 的幅度频谱,从图中能否观察出信号的2个频谱分量? (2)提高采样点数,如N =128,256,512,再求该信号的幅度频谱,此时幅度频谱发生了什么变化?信号的2个模拟频率和数字频率各为多少?FFT 频谱分析结果与理论上是否一致? 实验代码: clc;clear all; N=40; % N=128;%%%%%%对N 的值进行改变 % N=256; % N=512; n=0:N-1; t=0.01*n; x=2*sin(4*pi*t)+5*cos(8*pi*t);

x1=x(1:N);X1=fft(x1,2048); figure, subplot(211),plot(0:N-1,x1);xlabel('n');ylabel('x(n)');title('时域波形');grid; subplot(212),plot(abs(X1));xlabel('k');ylabel('|X(k)|');title('幅频特性');grid; set(gcf,'color','w'); N=40 N=128

数字信号处理上机报告-一

数字信号处理第一次上机实验报告 实验一: 设给定模拟信号()1000t a x t e -=,的单位是ms 。 (1)利用MATLAB 绘制出其时域波形和频谱图(傅里叶变换),估计其等效带宽(忽略谱分量降低到峰值的3%以下的频谱)。 (2)用两个不同的采样频率对给定的进行采样。 ○1 。 ○2 。 比较两种采样率下的信号频谱,并解释。 实验一MATLAB 程序: (1) N=10; Fs=5; Ts=1/Fs; n=[-N:Ts:N]; xn=exp(-abs(n)); w=-4*pi:0.01:4*pi; X=xn*exp(-j*(n'*w)); subplot(211) plot(n,xn); title('x_a(t)时域波形'); xlabel('t/ms');ylabel('x_a(t)'); axis([-10, 10, 0, 1]); subplot(212); plot(w/pi,abs(X)); title('x_a(t)频谱图'); xlabel('\omega/\pi');ylabel('X_a(e^(j\omega))'); ind = find(X >=0.03*max(X))*0.01; eband = (max(ind) -min(ind)); fprintf('等效带宽为 %fKHZ\n',eband); 运行结果: t ()a x t ()()15000s a f x t x n =以样本秒采样得到。()()11j x n X e ω画出及其频谱()()11000s a f x t x n =以样本秒采样得到。()() 11j x n X e ω画出及其频谱

北邮数字信号处理实验报告(特选借鉴)

2011级数字信号处理实验报告 实验名称:实验一数字信号的产生和基本运算 1.实验要求 因为现实世界里存在的是模拟信号,因此数字信号处理的第一个问题是将信号离散化,得到一个数字信号,然后再进行数字处理。 (1) 常用数字信号序列的产生: 熟悉Matlab 产生数字信号的基本命令,加深对数字信号概念的理解,并能够用Matlab 产生和绘制出一些常用离散信号序列。请用Matlab 画出下列序列的波形(-10

数字信号处理实验报告_五个实验

实验一 信号、系统及系统响应 一、 实验目的 1、熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解; 2、熟悉时域离散系统的时域特性; 3、利用卷积方法观察分析系统的时域特性; 4、掌握序列傅立叶变换的计算机实现方法,利用序列的傅立叶变换对连续信号、离散信号及系统响应进行频域分析。 二、 实验原理及方法 采样是连续信号数字处理的第一个关键环节。对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生变化以及信号信息不丢失的条件,而且可以加深对傅立叶变换、Z 变换和序列傅立叶变换之间关系式的理解。 对一个连续信号)(t x a 进行理想采样的过程可用下式表示: )()()(^ t p t t x x a a = 其中)(^ t x a 为)(t x a 的理想采样,p(t)为周期脉冲,即 ∑∞ -∞ =-= m nT t t p )()(δ )(^ t x a 的傅立叶变换为 )]([1)(^ s m a m j X T j a X Ω-Ω=Ω∑∞ -∞ = 上式表明 ^)(Ωj X a 为 )(Ωj X a 的周期延拓。其延拓周期为采样角频率 (T /2π=Ω)。只有满足采样定理时,才不会发生频率混叠失真。 在实验时可以用序列的傅立叶变换来计算^ )(Ωj X a 。公式如下: T w jw a e X j X Ω==Ω|)()(^ 离散信号和系统在时域均可用序列来表示。为了在实验中观察分析各种序列的频域特性,通常对)(jw e X 在[0,2π]上进行M 点采样来观察分析。对长度为N 的有限长序列x(n),有: n jw N n jw k k e m x e X --=∑=)()(1

哈工大数字信号处理实验报告

实验一: 用FFT 作谱分析 实验目的: (1) 进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法, 所以FFT 的运算结果必然满足DFT 的基本性质)。 (2) 熟悉FFT 算法原理和FFT 子程序的应用。 (3) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT 。 实验原理: DFT 的运算量: 一次完整的DFT 运算总共需要2N 次复数乘法和(1)N N -复数加法运算,因而 直接计算DFT 时,乘法次数和加法次数都和2N 成正比,当N 很大时,运算量很客观的。例如,当N=8时,DFT 运算需64位复数乘法,当N=1024时,DFT 运算需1048576次复数乘法。而N 的取值可能会很大,因而寻找运算量的途径是很必要的。 FFT 算法原理: 大多数减少离散傅里叶变换运算次数的方法都是基于nk N W 的对称性和周期 性。 (1)对称性 ()*()k N n kn kn N N N W W W --==

(2)周期性 ()(mod`)()()kn N kn n N k n k N N N N N W W W W ++=== 由此可得 ()()/2 (/2)1 n N k N n k nk N N N N N k N k N N W W W W W W ---+?==?=-??=-? 这样: 1.利用第三个方程的这些特性,DFT 运算中有些项可以合并; 2.利用nk N W 的对称性和周期性,可以将长序列的DFT 分解为短序列的DFT 。 前面已经说过,DFT 的运算量是与2N 成正比的,所以N 越小对计算越有利, 因而小点数序列的DFT 比大点数序列的DFT 运算量要小。 快速傅里叶变换算法正是基于这样的基本思路而发展起来的,她的算法基本 上可分成两大类,即按时间抽取法和按频率抽取法。 我们最常用的是2M N =的情况,该情况下的变换成为基2快速傅里叶变换。 完成一次完整的FFT 计算总共需要 2log 2 N N 次复数乘法运算和2log N N 次复数加法运算。很明显,N 越大,FFT 的优点就越突出。 实验步骤 (1) 复习DFT 的定义、 性质和用DFT 作谱分析的有关内容。 (2) 复习FFT 算法原理与编程思想, 并对照DIT-FFT 运算流图和程序框图, 读懂本实验提供的FFT 子程序。 (3) 编制信号产生子程序, 产生以下典型信号供谱分析用:

相关文档
最新文档