数字信号处理——时域采样和频域采样(matlab)「建议收藏」

数字信号处理——时域采样和频域采样(matlab)「建议收藏」时域采样要点理想采样信号的傅里叶变换=对应采样序列的傅里叶变换频域采样定理频域采样点数N必须大于等于时域离散信号的长度M才能使时域不发生混叠现象例1(3个频率实例)采样频率Fs=1kHz,观测时间Tp=50msx(n)=xa(nT)=Ae^(-a*nT)*sin(Ω0*nT)*u(nT)使用不同的采样频率长度(点数)用公式N=Fs*Tp计算FFT选用64,长度不够用补充零X(k)=FFT[x(n)]k=0,1,2,3,…,M-1clccloseall;

大家好,欢迎来到IT知识分享网。

时域采样要点

在这里插入图片描述
理想采样信号的傅里叶变换=对应采样序列的傅里叶变换
在这里插入图片描述

频域采样定理

在这里插入图片描述
频域采样点数N必须大于等于时域离散信号的长度M
才能使时域不发生混叠现象

例1(3个频率实例)

在这里插入图片描述
采样频率Fs=1kHz,观测时间Tp=50ms

x(n)=xa(nT)=Ae^(-a*nT) * sin(Ω0* nT) * u(nT)  

使用不同的采样频率长度(点数)用公式N=Fs*Tp计算
FFT选用64,长度不够用补充零
X(k)=FFT[x(n)] k=0,1,2,3,…,M-1
在这里插入图片描述

clc
close all;
clear all;
Tp=50/1000;
Fs=1000;
T=1/Fs;
M=Tp*Fs;%M=50
n=0:max(M-1,64);
A=444.128;
alpha=pi*50*2^0.5;
omega=pi*50*2^0.5;
xnt=A*exp(-alpha*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M);
figure
subplot(2,1,1);
xlabel('n');
ylabel('xnt');
stem(n,xnt,'.');
axis([0,length(n),min(xnt),1.2*max(xnt)]);
title('Fs=1000hz');

k=0:M-1;
fk=k/Tp;
subplot(2,1,2);
plot(fk,abs(Xk));
axis([0,Fs,0,1.2*max(abs(Xk))]);
title('T*FT[xa(nT)],Fs=1000hz');


在这里插入图片描述
如果Fs=500hz

clc
close all;
clear all;
Tp=50/1000;
Fs=300;
T=1/Fs;
M=Tp*Fs;%M=50
n=0:max(M-1,64);
A=444.128;
alpha=pi*50*2^0.5;
omega=pi*50*2^0.5;
xnt=A*exp(-alpha*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M);
figure
subplot(2,1,1);
xlabel('n');
ylabel('xnt');
stem(n,xnt,'.');
axis([0,length(n),min(xnt),1.2*max(xnt)]);
title('Fs=300hz');

k=0:M-1;
fk=k/Tp;
subplot(2,1,2);
plot(fk,abs(Xk));
axis([0,Fs,0,1.2*max(abs(Xk))]);
title('T*FT[xa(nT)],Fs=300hz');

在这里插入图片描述
Fs=200hz

clc
close all;
clear all;
Tp=50/1000;
Fs=200;
T=1/Fs;
M=Tp*Fs;%M=50
n=0:max(M-1,64);
A=444.128;
alpha=pi*50*2^0.5;
omega=pi*50*2^0.5;
xnt=A*exp(-alpha*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M);
figure
subplot(2,1,1);
xlabel('n');
ylabel('xnt');
stem(n,xnt,'.');
axis([0,length(n),min(xnt),1.2*max(xnt)]);
title('Fs=200hz');

k=0:M-1;
fk=k/Tp;
subplot(2,1,2);
plot(fk,abs(Xk));
axis([0,Fs,0,1.2*max(abs(Xk))]);
title('T*FT[xa(nT)],Fs=200hz');


在这里插入图片描述
可以看出来1000hz时混叠很少
300hz混叠严重
200hz混叠更严重

例2

在这里插入图片描述

clc
close all;
clear all;
M=27;
N=32;
n=0:M;
xa=1:floor(M/2)+1;
xb=ceil(M/2)-1:-1:0;
xn=[xa,xb];
figure
subplot(3,2,1);
stem(n,xn,'.');
axis([0,length(n),min(xn),1.2*max(xn)]);
title('x(n)');
xlabel('n');
ylabel('x(n)');
Xk=fft(xn,1024);%1024点FFT[x(n)],用于近似xn的FT
X32k=fft(xn,32);
x32n=ifft(X32k);
X16k=X32k(1:2:N);
x16n=ifft(X16k,N/2);
k=0:1023;
wk=2*k/1024;
subplot(3,2,2);
plot(wk,abs(Xk));
axis([0,2,0,1.2*max(abs(Xk))]);
title('FT[x(n)]');
xlabel('\omega/\pi');
ylabel('|X(e^j^\omega)|');

k=0:N-1;
subplot(3,2,3);
stem(k,abs(X32k),'.');
title('32-point frequence sample');
xlabel('k');
ylabel('|X32(k)|');
axis([0,32,0,1.2*max(abs(X32k))]);
n32=0:N-1;
subplot(3,2,4);
stem(n32,x32n,'.');
title('32-point IDFT[X32(k)]');
xlabel('n');
ylabel('|x32(n)|');
axis([0,32,0,1.2*max(x32n)]);


k=0:N/2-1;
subplot(3,2,5);
stem(k,abs(X16k),'.');
title('16-point frequence sample');
xlabel('k');
ylabel('|X16(k)|');
axis([0,16,0,1.2*max(abs(X16k))]);
n16=0:N/2-1;
subplot(3,2,6);
stem(n16,x16n,'.');
title('16-point IDFT[X16(k)]');
xlabel('n');
ylabel('|x16(n)|');
axis([0,16,0,1.2*max(x16n)]);


在这里插入图片描述
可以看到x(n)的频谱函数X(e^jw)在[0,2pi]采样16点,N=16
M=27
N<M时域发生混叠,xN(n)≠x(n)

最后

用最少点数的DFT得到频谱采样
在这里插入图片描述

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/26130.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信