MATLAB仿真:数字信号处理用FFT对信号分析

目录

1.实验目的

2 实验原理

3.实验仪器及设备

4.实验步骤及内容

(1)对以下序列进行谱分析。

(2)对以下周期序列进行谱分析。

 (3)对模拟周期信号进行谱分析


1.实验目的

学习用 FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用 FFT。

2 实验原理

用 FFT 对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率 D 和分析误差。频谱分辨率直接和 FFT 的变换区间 N 有关,因为 FFT 能够实现的频率分辨率是2π / N ,因此要求2π / N £ D 。可以根据此式选择 FFT 的变换区间 N。误差主要来自于用 FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当 N 较大时离散谱的包络才能逼近于连续谱,因此 N 要适当选择大一些。

周期信号的频谱是离散谱,只有用整数倍周期的长度作 FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。

对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。

3.实验仪器及设备

计算机,MATLAB 软件

4.实验步骤及内容

(1)对以下序列进行谱分析。

选择 FFT 的变换区间 N 为 8 和 16 两种情况进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。

x1=[1 1 1 1];

N1=8;

xk=fft(x1,N1);

subplot(2,2,1);

w=0:7;wk1=2*w/N1;

stem(w,[x1 zeros(1,N1-4)],'.','g');

xlabel('n');

ylabel('x(n)');

title('R4(n)');

axis([0 8 0 1.5]);

subplot(2,2,2);

stem(wk1,abs(xk),'.','g');

xlabel('w/pi');

ylabel('幅度');

axis([0 2 0 5]);



N2=16;

xk=fft(x1,N2);

subplot(2,2,3);

w=0:15;wk2=2*w/N2;

stem(w,[x1 zeros(1,N2-4)],'.','r');

xlabel('n');

ylabel('x(n)');

title('R4(n)');

axis([0 16 0 1.5]);



subplot(2,2,4);

stem(wk2,abs(xk),'.','r');

xlabel('w/pi');

ylabel('幅度');

axis([0 2 0 5]);

x2=[1 2 3 4 4 3 2 1];

N1=8;

xk=fft(x2,N1);

subplot(2,2,1);

w=0:7;wk1=2*w/N1;

stem(w, abs(x2),'.','g');

xlabel('n');

ylabel('x(n)');

title('x2(n)');

axis([0 8 0 5]);

subplot(2,2,2);

stem(wk1,abs(xk),'.','g');

xlabel('w/pi');

ylabel('幅度');

axis([0 2 0 25]);



N2=16;

xk=fft(x2,N2);

subplot(2,2,3);

w=0:15;wk2=2*w/N2;

stem(w,[x2 zeros(1,N2-8)],'.','r');

xlabel('n');

ylabel('x(n)');

title('x2(n)');

axis([0 16 0 5]);



subplot(2,2,4);

stem(wk2,abs(xk),'.','r');

xlabel('w/pi');

ylabel('幅度');

axis([0 2 0 25]);

x3=[4 3 2 1 1 2 3 4];

N1=8;

subplot(2,2,1);

w=0:7;wk=2*w/N1;

stem(w,x3,'.','g');

xlabel('n');

ylabel('x(n)');

title('x3(n)');

axis([0 8 0 5]);

xk=fft(x3,N1);

subplot(2,2,2);

stem(wk,abs(xk),'.','g');

xlabel('w/pi');

ylabel('幅度');

axis([0 2 0 25]);



N2=16;

subplot(2,2,3);

w=0:15;wk=2*w/N2;

stem(w,[x3 zeros(1,N2-8)],'.','r');

xlabel('n');

ylabel('x(n)');

title('x3(n)');

axis([0 16 0 5]);

xk=fft(x3,N2);

subplot(2,2,4);

stem(wk,abs(xk),'.','r');

xlabel('w/pi');

ylabel('幅度');

axis([0 2 0 25]);

 

(2)对以下周期序列进行谱分析。

选择 FFT 的变换区间 N 为 8 和 16 两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。

n=0:30;
x4=cos(pi/4*n);
N1=8;
subplot(2,2,1);
w=0:7;wk1=2*w/N1;
stem(0:1:30,x4,'.','g'); 
xlabel('n');
ylabel('x(n)');
title('x4(n)');
axis([0 30 -1.5 1.5]);

xk=fft(x4,N1);
subplot(2,2,2);
stem(wk1,abs(xk),'.','g');
xlabel('w/pi');
ylabel('幅度');
axis([0 2 0 5]);

N2=16;
subplot(2,2,3);
w=0:15;wk=2*w/N2;
stem(0:1:30,x4,'.','r'); 
xlabel('n');
ylabel('x(n)');
title('x4(n)');
axis([0 30 -1.5 1.5]);

xk=fft(x4,N2);
subplot(2,2,4);
stem(wk,abs(xk),'.','r');
xlabel('\omega/\pi');
ylabel('幅度');
axis([0 2 0 9]);

n=0:30;
x5=cos(pi/4*n)+cos(pi/8*n);
N1=8;
subplot(2,2,1); 
stem(0:1:30,x5,'.','m'); 
xlabel('n');
ylabel('x(n)');
title('x5(n)');
axis([0 30 -2.2 2.5]);
xk=fft(x5,N1);
subplot(2,2,2);
stem(0:0.25:1.75,abs(xk),'.','m');
xlabel('w/pi');
ylabel('幅度');
axis([0 2 0 7]);
N2=16;
subplot(2,2,3); 
stem(0:1:30,x5,'.','r'); 
xlabel('n');
ylabel('x(n)');
title('x5(n)');
axis([0 30 -2.2 2.5]);
xk=fft(x5,N2);
subplot(2,2,4);
stem(0:0.125:1.875,abs(xk),'.','r');
xlabel('w/pi');
ylabel('幅度');
axis([0 2 0 10]);

 (3)对模拟周期信号进行谱分析

选择采样频率,变换区间N=16,32,64 三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。

Fs=64;T=1/Fs;
N=16;n=0:N-1;
x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); 
X6k16=fftshift(fft(x6nT,16)); 
Tp=N*T;F=1/Tp; 
k=0:N-1;fk1=-32:4:28; 
subplot(3,1,1);stem(fk1,abs(X6k16),'.','g'); 
xlabel('w/pi');
ylabel('幅度');
axis([-32 28 0 12]);
N=32;n=0:N-1;
x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);
X6k32=fftshift(fft(x6nT,32)); 
Tp=N*T;F=1/Tp; 
k=0:N-1;fk2=-32:2:30; 
subplot(3,1,2);stem(fk2,abs(X6k32),'.','r'); 
xlabel('w/pi');
ylabel('幅度');
axis([-32 31 0 20]);
N=64;n=0:N-1; 
x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); 
X6k64=fftshift(fft(x6nT,64)); 
Tp=N*T;F=1/Tp; 
k=0:N-1;fk3=-32:1:31; 
subplot(3,1,3);stem(fk3,abs(X6k64),'.','m'); 
xlabel('w/pi');
ylabel('幅度');
axis([-32 31 0 40]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

x陌北x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值