华工信号与系统matlab实验[实验二--利用DFT分析离散时间信号的频谱]

信号与系统[实验二–利用DFT分析离散时间信号的频谱]

  1. 利用FFT分析信号在这里插入图片描述 的频谱;
    (1) 确定DFT计算的参数;
    (2) 进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。
  2. 利用FFT分析信号在这里插入图片描述的频谱;
    (1) 确定DFT计算的参数;
    (2) 进行理论值与计算值比较,讨论信号频谱分析过程中误差
    原因及改善方法。
  3. 有限长脉冲序列在这里插入图片描述, 利用FFT分析其频谱,并绘出其幅度谱与相位谱。
  4. 某周期序列由3个频率组成:在这里插入图片描述, 利用FFT分析其频谱。如何选取FFT的点数N?此3个频率分别对应FFT计算结果X[m]中的哪些点?若选取的N不合适,FFT计算出的频谱X[m]会出现什么情况?
  5. 某离散序列,在这里插入图片描述利用FFT分析其频谱。
    (1) 对x[k]做64点FFT,绘出信号频谱,能分辨出其中的两个频率吗?
    (2) 对x[k]补零到256点后计算FFT,能分辨出其中的两个频率吗?
    (3) 选用非矩形窗计算FFT,能够分辨出其中的两个频率吗?
    (4) 若不能够很好地分辨出其中的两个频谱,应采取哪些措施?
    6.已知序列在这里插入图片描述利用FFT分析下列信号的幅频特性,频率范围为
    在这里插入图片描述在这里插入图片描述
    第一题代码:
% 题1
close all;
clear all;
 
 
N = 32;
N1 = 1000;
k = 0:N-1;
x = cos(3*pi/8*k);
X = fft(x);
Y = abs(fftshift(X));
 
% x信号散点图
figure
stem(k-N/2,x);
xlabel('k');
ylabel('x=cos(3*pi/8*k)')
 
% 幅度
figure
subplot(211)
w1 = 2*pi/N;
stem((k-N/2)*w1, Y);
xlabel('Frequency(N=32)');
ylabel('Magnitude');
 
 
%相位
subplot(212);
stem((k-N/2)*w1,angle(fftshift(X)));
xlabel('Frequency(N=32)');
ylabel('Phrase');
 
 
%改进----------------------------
figure
X2=fft(x,N1);
Y2=fftshift(X2);
w2=[-N1/2:N1/2-1]*(2*pi/N1);
%幅度
subplot(211);
plot(w2,abs(Y2));
xlabel('Frequency(N=1000)');
ylabel('Magnitude');
%相位
subplot(212)
plot(w2,angle(Y2));
ylabel('Phrase');xlabel('Frequency(N=1000)');

第二题代码:

% 题2
close all;
clear all;
 
N = 20;
N1 = 1000;
k = 0:N-1;
x = (0.5).^k;
X = fft(x);
Y = abs(fftshift(X));
 
% x信号散点图
figure
stem(k,x);
xlabel('k');
ylabel('x=(1/2)^k')
 
% |X(e^j^w)| 
figure
subplot(211)
w1 = 2*pi/N;
plot((k-N/2)*w1, Y);
xlabel('Frequency(N=20)');
ylabel('Magnitude');
 
 
%相位
subplot(212);
plot((k-N/2)*w1,angle(fftshift(X)));
xlabel('Frequency(N=20)');
ylabel('Phrase');
 
 
%改进----------------------------
figure
X2=fft(x,N1);
Y2=fftshift(X2);
w2=[-N1/2:N1/2-1]*(2*pi/N1);
%幅度
subplot(211);
plot(w2,abs(Y2));
xlabel('Frequency(N=1000)');
ylabel('Magnitude');
%相位
subplot(212)
plot(w2,angle(Y2));
ylabel('Phrase');xlabel('Frequency(N=1000)');

第三题代码:

close all;
clear all;
 
% 题3
N = 6;
N1 = 100;
k = 0:N-1;
x = [2,3,3,1,0,5];
X = fft(x);
Y = abs(fftshift(X));
 
 
% x信号散点图
figure
stem(k,x);
xlabel('k');
ylabel('x(k)')
 
%幅度
figure
subplot(211);
w1 = 2*pi/N;
stem((k-N/2)*w1, Y);
xlabel('Frequency(N=6)');
ylabel('Magnitude');
 
 
% 相位
subplot(212);
stem((k-N/2)*w1, angle(fftshift(X)));
xlabel('Frequency(N=6)');
ylabel('Phrase');
 
 
 
%改进----------------------------
figure
X2=fft(x,N1);
Y2=fftshift(X2);
w2=[-N1/2:N1/2-1]*(2*pi/N1);
%幅度
subplot(211);
plot(w2,abs(Y2));
xlabel('Frequency(N=100)');
ylabel('Magnitude');
%相位
subplot(212)
plot(w2,angle(Y2));
xlabel('Frequency(N=100)');
ylabel('Phrase');

第四题代码:

close all;
clear all;
 
% 题4
N = 32;
N1 = 30;
k = 0:N-1;
x = cos(7*pi/16 * k) + cos(9*pi/16 * k) + cos(pi/2 * k);
 
X = fft(x);
Y = abs(fftshift(X));
 
 
% x信号散点图
figure
stem(k,x);
xlabel('k');
ylabel('x(k)')
 
% 幅度
figure
subplot(211);
w1 = 2*pi/N;
stem((k-N/2)*w1, Y);
xlabel('Frequency(N=32)');
ylabel('Magnitude');
 
%相位
subplot(212);
stem((k-N/2)*w1,angle(fftshift(X)));
xlabel('Frequency(N=32)');
ylabel('Phrase');
 
 
%若N不是32的正整数倍----------------------------
figure
X2=fft(x,N1);
Y2=fftshift(X2);
w2=[-N1/2:N1/2-1]*(2*pi/N1);
%幅度
subplot(211);
stem(w2,abs(Y2));
xlabel('Frequency(N=30)');
ylabel('Magnitude');
%相位
subplot(212)
stem(w2,angle(Y2));
xlabel('Frequency(N=30)');
ylabel('Phrase');

第五题代码:

close all;
clear all;
 
N = 64;
N1 = 256;
k = 0:N-1;
x = cos(2*pi/15 * k) + 0.75 * cos(2.3*pi/15 * k);
 
X = fft(x);
Y = abs(fftshift(X));
 
%问(1)-----------------------------
% x信号散点图
figure
stem(k,x);
xlabel('k');
ylabel('x(k)')
 
% 幅度
figure
subplot(211);
w1 = 2*pi/N;
stem((k-N/2)*w1, Y);
xlabel('Frequency(N=64)');
ylabel('Magnitude');
 
%相位
subplot(212);
stem((k-N/2)*w1,angle(fftshift(X)));
xlabel('Frequency(N=64)');
ylabel('Phrase');
 
%问(2)----------------------------
%若N=256
figure
X2=fft(x,N1);
Y2=fftshift(X2);
w2=[-N1/2:N1/2-1]*(2*pi/N1);
%幅度
subplot(211);
stem(w2,abs(Y2));
xlabel('Frequency(N=256)');
ylabel('Magnitude');
%相位
subplot(212)
stem(w2,angle(Y2));
xlabel('Frequency(N=256)');
ylabel('Phrase');
 
 
%问(3)------------------------------
%非矩形窗计算FFT
%汉宁窗+++++++++++++++++++
 
W = 0.5 - 0.5 * cos(2*pi*k/N);
x3 = x .* W;
X3 = fft(x3);
Y3 = abs(fftshift(X3));
 
 
% 幅度
figure
subplot(211);
stem((k-N/2)*w1, Y3);
xlabel('Frequency(N=64)');
ylabel('Magnitude');
title('汉宁窗')
%相位
subplot(212);
stem((k-N/2)*w1,angle(fftshift(X3)));
xlabel('Frequency(N=64)');
ylabel('Phrase');
 
%高斯窗++++++++++++++
W1 = exp(-0.5 .* (3 * 2*k./(N-1)).^2);
x31 = x .* W1;
X31 = fft(x31);
Y31 = abs(fftshift(X31));
 
% 幅度
figure
subplot(211);
stem((k-N/2)*w1, Y31);
xlabel('Frequency(N=64)');
ylabel('Magnitude');
title('高斯窗')
%相位
subplot(212);
stem((k-N/2)*w1,angle(fftshift(X31)));
xlabel('Frequency(N=64)');
ylabel('Phrase');
 
%指数窗+++++++++++++++++++++++
W2 = exp(abs(k-1-N/2)/N);
x32 = x .* W2;
X32 = fft(x32);
Y32 = abs(fftshift(X32));
 
% 幅度
figure
subplot(211);
stem((k-N/2)*w1, Y32);
xlabel('Frequency(N=64)');
ylabel('Magnitude');
title('指数窗')
%相位
subplot(212);
stem((k-N/2)*w1,angle(fftshift(X32)));
xlabel('Frequency(N=64)');
ylabel('Phrase');
 
 
%问(4)----------------------------
%若N=30
N4 = 30;
k4 = 0:N4-1;
x4 = cos(2*pi/15 * k4) + 0.75 * cos(2.3*pi/15 * k4);
figure
X4=fft(x4,N4);
Y4=fftshift(X4);
w4=[-N4/2:N4/2-1]*(2*pi/N4);
%幅度
subplot(211);
stem(w4,abs(Y4));
xlabel('Frequency(N=30)');
ylabel('Magnitude');
%相位
subplot(212)
stem(w4,angle(Y4));
xlabel('Frequency(N=30)');
ylabel('Phrase');

第六题代码:

close all;
clear all;
 
% 题6
 
N = 500;
w=(-N/2:N/2-1)*(2*pi/N);
k = -50:50;
 
%问(1)-----------------------------------------------
% y[k] = x[2k]
n = 2;
x1 = exp(-(0.1*n*k).^2/2);
X1 = fft(x1,N);
Y1 = fftshift(X1);
 
figure
plot(w,Y1);
xlabel('Frequency');
ylabel('Magnitude');
title('y[k] = x[2k]');
 
%问(2)--------------------------------------
% g[k] = x[4k]
n = 4;
x2 = exp(-(0.1*n*k).^2/2);
X2 = fft(x2,N);
Y2 = fftshift(X2);
 
figure
plot(w,Y2);
xlabel('Frequency');
ylabel('Magnitude');
title('g[k] = x[4k]');
 
 
%问(3)若将上述x[k]乘以cos(pk/2) ,重做(1)和(2)-------
% y[k] = x[2k]
 
x3 = exp(-(0.1*n*k).^2/2).*cos(pi*k/2);
X3 = fft(x3,N);
Y3 = fftshift(X3);
 
figure
plot(w,Y3);
xlabel('Frequency');
ylabel('Magnitude');
title('y[k] = x[2k] (x[k]=x[k]*cos(πk/2))');
 
 
% g[k] = x[4k]
x4 = exp(-(0.1*n*k).^2/2).*cos(pi*k/2);
X4 = fft(x4,N);
Y4 = fftshift(X4);
 
figure
plot(w,Y4);
xlabel('Frequency');
ylabel('Magnitude');
title('g[k] = x[4k](x[k]=x[k]*cos(πk/2))');
  • 18
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值