文档介绍:实验内容及要求
(2)编写一个调用FFT 函数的通用程序,可计算下列三种序列的离散频谱。
指数序列:v1(n) = u(n);
周期为N 的余弦序列:v2(n) = cos(2*pi*n/N),且0≤n≤N-1
复合函数序列:v3(n) = (2*pi*n/N) + (2*pi*n*3/N)
(3)计算实指数序列v1(n)的N 点离散频谱V1(k),记录N 为不同的2 的幂次方时
的 V1(k)值,并与理论值 V1( e jwk )进行分析比较。
(4)计算周期为N 的余弦序列v2(n)的N 点FFT、2N 点FFT 及(N+2)点FFT,
记录结果并作为分析说明。
(5)已知信号
x(t) = (2*pi*f1*t)+sin(2*pi*f2*t)-(2*pi*f3*t),其中f1 = 1Hz, f2 = 2Hz,
f3 = 3Hz,取样频率为32Hz。
编程实现:
􀁣① 32 点FFT,画出其幅度谱
􀁤② 64 点FFT,画出其幅度谱,比较两者间的差异,思考实际频率与离散频谱图中横坐标k 的对应关系。
实验过程
(2)指数序列:v1(n) = u(n);
N = 100;
n = 0:N-1;
xn = .^n;
XK = fft(xn,N);
magXK = abs(XK);
phaXK = angle(XK);
subplot(1,2,1);
plot(n,xn);
xlabel('n');
ylabel('x(n)');
title('x(n) N = 100');
subplot(1,2,2);
k = 0:length(magXK)-1;
stem(k,magXK,'.');
xlabel('k');
ylabel('|X(k)|');
title('X(k) N = 100');
周期为N 的余弦序列:v2(n) = cos(2*pi*n/N),且0≤n≤N-1
N = 100;
n = 0:N-1;
xn = cos(2*pi*n/N);
XK = fft(xn,N);
magXK = abs(XK);
phaXK = angle(XK);
subplot(1,2,1);
plot(n,xn);
xlabel('n');
ylabel('x(n)');
title('x(n) N = 100');
subplot(1,2,2);
k = 0:length(magXK)-1;
stem(k,magXK,'.');
xlabel('k');
ylabel('|X(k)|');
title('X(k) N = 100');
复合函数序列:v3(n) = (2*pi*n/N) + (2*pi*n*3/N)
N = 100;
n = 0:N-1;
xn = *sin(2*pi.*n/N)+*sin(2*pi*n*3/N);
XK = fft(xn,N);
magXK = abs(XK);
phaXK = angle(XK);
subplot(1,2,1);
plot(n,xn);
xlabel('n');
ylabel('x(n)');
title('x(n) N = 100');
subplot(1,2,2);
k = 0:length(magXK)-1;
stem(k,magXK,'.');
xlabel('k');
ylabel('|X(k)|');
title('X(k) N = 100');
将(2)的V1(n)的N值分别为32, 64,128时的序列和序列经过FFT求解的相应频谱。
N=32时的序列和序列经过FFT求解的相应频谱
N=32;
n=0:N-1;
xn=.^n;
XK=fft(xn,N);
magXK=abs(XK);
phaXK=angle(XK);
subplot(1,2,1);
plot(n,xn);
xlabel('n');ylabel('x(n)');
title('x(n) N=32');
subplot(1,2,2);
k=0:length(magXK)-1;
stem(k,magXK,'.');
xlabel('k');ylabel('|X(k)|');
title('X(k) N=32');
N=64时的序列和序列经过FFT求解的相应频谱
N=128时的序列和序列经过FFT求解的相应频谱
(4)取N = 32,64, 34,其序列和序列经过FFT 求解的相应
频谱。
N =