DSP频谱分析——选取合适的N和窗函数得到6根非零谱线

题目:

假设信号x(n)=0.001*cos(0.45nπ)+sin(0.3nπ)-cos(0.302nπ-π/4).

请选择合适的长度N和窗函数,用DFT分析频谱,得到6根非零谱线。

clc;clear

n=0:1:1999;
x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);
%T=1000,所以N要取1000的整数倍才能不泄露


%先确定x(n)的1000点DFT
n1=0:1:999; %取1000个点
y1=x(1:1:1000);
subplot(2,2,1);
stem(n1,y1);
title('样本点 x(n), 0<=n<=999');
xlabel('n')
axis([0,1000,-2.5,2.5]);%限制x,y的坐标范围

Y1=fft(y1,1000);
magY1=abs(Y1(1:1:1000));
k1=0:1:999;
w1=2*pi/1000*k1;

%整体,验证是否只有六根非零谱线
subplot(2,2,2);
stem(k1,magY1);
title('样本点的DTFT的模');
xlabel('k1');
axis([0,1000,0,10]);%改x,y坐标轴的范围

%将左半部分非零谱线放大观察
subplot(2,2,4);
stem(k1,magY1);
title('样本点的DTFT的模(放大版)');
xlabel('k1');
axis([140,230,0,2]);%改x,y坐标轴的范围


% %因为N为周期的整数倍,所以图中有6个理想尖峰

经计算该信号周期为1000,所以取样点N要为1000的整数倍才不会发生频谱泄露。

窗函数选择矩形函数直接截取。

编译得到图像如下:

a62c7f613ce048eeb08596f7f240fc02.png

由于0.3pi和0.302pi这两根主谱线相距很近,且0.45pi的谱线幅值很小,因此将左半部分谱线放大进行观看,可以看到清楚的3根谱线。

 

 

 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值