资源描述
信息科学与工程学院 《信号与系统》 实验报告四
专业班级 电信 09- 班 姓 名 学 号
实验时间 2011 年 月 日 指导教师 陈华丽 成 绩
实验
名称
离散信号的频域分析
实验
目的
1. 掌握离散信号谱分析的方法:序列的傅里叶变换、离散傅里叶级数、离散傅里叶变换、快速傅里叶变换,进一步理解这些变换之间的关系;
2. 掌握序列的傅里叶变换、离散傅里叶级数、离散傅里叶变换、快速傅里叶变换的Matlab实现;
3. 熟悉FFT算法原理和FFT子程序的应用。
4. 学习用FFT对连续信号和离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
实验
内容
1.对连续信号(,,)进行理想采样,可得采样序列。图1给出了的幅频特性曲线,由此图可以确定对采用的采样频率。分别取采样频率为 1KHz、300Hz和200Hz,画出所得采样序列的幅频特性。并观察是否存在频谱混叠。 图1 连续信号
2. 设
(1)取()时,求的FFT变换,并绘出其幅度曲线。
(2)将(1)中的以补零方式加长到,求并绘出其幅度曲线。
(3)取(),求并绘出其幅度曲线。
(4)观察上述三种情况下,的幅度曲线是否一致?为什么?
3. (1)编制信号产生子程序,产生以下典型信号供谱分析用。
(2)对信号,,进行两次谱分析,FFT的变换区间N分别取8和16,观察两次的结果是否一致?为什么?
(3)连续信号的采样频率,。观察三次变换的结果是否一致?为什么?
实验记录及个人小结(包括:实验源程序、注释、结果分析与讨论等)
1. 对连续信号(,,)进行理想采样,可得采样序列。图1给出了的幅频特性曲线,由此图可以确定对采用的采样频率。分别取采样频率为 1KHz、300Hz和200Hz,画出所得采样序列的幅频特性。并观察是否存在频谱混叠。
源程序:
% 产生序列x(n)
n=0:50;
A=444.128;
a=50*sqrt(2.0)*pi;
T=1/1000; % T分别取1/1000、1/300、1/200
w0=50*sqrt(2.0)*pi;
x=A*exp(-a*n*T).*sin(w0*n*T); %函数f的表达式
subplot(1,2,1),stem(n,x)
title('理想采样序列 fs=1000Hz')
% 绘制x(n)的幅度谱
k=-250:250;
W=pi/125*k;
X=x*(exp(-j*pi/125)).^(n'*k); % 由公式计算DTFT
magX=abs(X);
subplot(1,2,2),plot(W,magX)
title('理想采样序列的幅度谱')
结果图
fs=300HZ
fs=200HZ
2. 设
(1)取()时,求的FFT变换,并绘出其幅度曲线。
(2)将(1)中的以补零方式加长到,求并绘出其幅度曲线。
(3)取(),求并绘出其幅度曲线。
(4)观察上述三种情况下,的幅度曲线是否一致?为什么?
源程序1:
n=0:10;
M=length(n);
x1=cos(0.48*pi*n)+cos(0.52*pi*n);
subplot(2,2,1)
stem(n,x1)
xlabel('n')
title('x(n) 0<=n<=10')
k=0:250;
N=length(k);
w=2*pi/N*k;
WN=exp(-j*2*pi/N);
kn=n'*k;
WNkn=WN.^kn;
X=x1*WNkn;
subplot(2,2,2)
plot(w/pi,abs(X))
xlabel('w/pi')
title('x(n)傅里叶变换的近似幅度')
k=0:10;
N=length(k);
X1=fft(x1,N);
w=2*pi/N*k;
subplot(2,2,3)
plot(w/pi,abs(X1))
hold on
stem(w/pi,abs(X1),'r:')
xlabel('w/pi')
title('X(k)的幅度(变换区间长度N=11)')
k=0:20;
N=length(k);
X2=fft(x1,N);
w=2*pi/N*k;
subplot(2,2,4)
plot(w/pi,abs(X2))
hold on
stem(w/pi,abs(X2),'r:')
xlabel('w/pi')
title('X(k)的幅度(变换区间长度N=21)')
结果图:
源程序:2
n=0:100;
M=length(n);
x3=cos(0.48*pi*n)+cos(0.52*pi*n);
subplot(2,1,1)
stem(n,x3)
xlabel('n')
title('x(n) 0<=n<=100')
k=0:100;
N=length(k);
X3=fft(x3,N);
w=2*pi/N*k;
subplot(2,1,2)
plot(w/pi,abs(X3))
xlabel('w/pi')
title('X(k)的幅度')
结果图:
可见,通过加长序列的有效数据,可以很清晰地看出信号的频谱成分(和),所以物理分辨率提高了。
3. (1)编制信号产生子程序,产生以下典型信号供谱分析用。
(2)对信号,,进行两次谱分析,FFT的变换区间N分别取8和16,观察两次的结果是否一致?为什么?
(3)连续信号的采样频率,。观察三次变换的结果是否一致?为什么?
源程序1:
function y=x1(n)
n=0:3;
y(n+1)=n+1;
n=4:7;
y(n+1)=8-n;
n=0:7;
x2=cos(pi.*n/4);
x3=sin(pi.*n/8);
k1=0:7;
N=length(k1);
X1=fft(x1,N);
X2=fft(x2,N);
X3=fft(x3,N);
w1=2*pi/N*k1;
k2=0:15;
N=length(k2);
X11=fft(x1,N);
X22=fft(x2,N);
X33=fft(x3,N);
w2=2*pi/N*k2;
subplot(2,3,1)
plot(w1/pi,abs(X1))
hold on
stem(w1/pi,abs(X1),'r:')
xlabel('w1/pi')
title('X1(k)的幅度(N=8)') %X1(k)的幅度(N=8)
subplot(2,3,4)
plot(w2/pi,abs(X11))
hold on
stem(w2/pi,abs(X11),'r:')
xlabel('w2/pi')
title('X1(k)的幅度(N=16)') %X1(k)的幅度(N=16)
subplot(2,3,2)
plot(w1/pi,abs(X2))
hold on
stem(w1/pi,abs(X2),'r:')
xlabel('w2/pi')
title('X2(k)的幅度(N=8)') % X2(k)的幅度(N=8)
subplot(2,3,5)
plot(w2/pi,abs(X22))
hold on
stem(w2/pi,abs(X22),'r:')
xlabel('w1/pi')
title('X2(k)的幅度(16)') %X2(k)的幅度(16)
subplot(2,3,3)
plot(w1/pi,abs(X3))
hold on
stem(w1/pi,abs(X3),'r:')
xlabel('w1/pi')
title('X3(k)的幅度(N=8)') %X3(k)的幅度(N=8)
subplot(2,3,6)
plot(w2/pi,abs(X33))
hold on
stem(w2/pi,abs(X33),'r:')
xlabel('w2/pi')
title('X3(k)的幅度(N=16)') %X3(k)的幅度(N=16)
源程序2:
clc;clf;clear;
n=0:20;
T=1/64;
x4=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);
subplot(2,2,1),stem(n,x4)
title('理想采样序列 fs=64Hz')
k1=0:15;
N=length(k1);
X4=fft(x4,N);
w1=2*pi/N*k1;
subplot(2,2,2)
plot(w1/pi,abs(X4))
hold on
stem(w1/pi,abs(X4),'r:')
xlabel('w4/pi')
title('X4(k)的幅度谱(N=16)')
k2=0:31;
N=length(k2);
X4=fft(x4,N);
w2=2*pi/N*k2;
subplot(2,2,3)
plot(w2/pi,abs(X4))
hold on
stem(w2/pi,abs(X4),'r:')
xlabel('w4/pi')
title('X4(k)的幅度谱(N=32)')
k3=0:63;
N=length(k3);
X4=fft(x4,N);
w3=2*pi/N*k3;
subplot(2,2,4)
plot(w3/pi,abs(X4))
hold on
stem(w3/pi,abs(X4),'r:')
xlabel('w3/pi')
title('X4(k)的幅度谱(N=64)')
结果图:
实验小结:
通过本次实验
1.掌握离散信号谱分析的方法:序列的傅里叶变换、离散傅里叶变换、快速傅里叶变换
2. 掌握序列的傅里叶变换、快速傅里叶变换的Matlab实现;
3. 熟悉FFT算法原理和FFT子程序的应用。
以后要多参与类似的实验,信号与系统是一项需要把理论与实践结合其来的课程
在掌握了基本知识以后,通过做实验,我们可以更加深入理解我们学过的知识
注:“实验记录及个人小结”部分可另附页或在背面续写 第 页
展开阅读全文