信号时域采样 频谱分析.docx
《信号时域采样 频谱分析.docx》由会员分享,可在线阅读,更多相关《信号时域采样 频谱分析.docx(17页珍藏版)》请在冰豆网上搜索。
信号时域采样频谱分析
基于matlab的时域信号采样及频谱分析
一:
主要设计方法与步骤:
1.画出连续时间信号
的时域波形及其幅频特性曲线,其中,幅度因子
,衰减因子
,模拟角频率
;
2.对信号
进行采样,得到采样序列
,
,其中,
为采样间隔,通过改变采样频率可改变
,画出采样频率分别为
,
,
时的采样序列波形;
3.对不同采样频率下的采样序列进行频谱分析,绘制其幅频和相频曲线,对各频率下采样序列
和
的幅频曲线有无差别,如有差别说明原因;
4.设系统单位抽样响应为
,求解当输入为
时的系统响应
,画出
,
,
的时域波形及幅频特性曲线,并利用结果验证卷积定理的正确性(此内容将参数设置为
,
,
,
);
5.用
对信号
,
,
进行频谱分析,观察与4中结果有无差别;
6.由采样序列
恢复出连续时间信号
,画出其时域波形,对比
与原来的连续时间信号
的时域波形,计算并记录两者最大误差。
二:
详细程序及仿真波形分析
1.连续时间信号
及其
频率抽样信号函数
%绘制信号x(n)的幅度谱和相位谱
clc
clearall
closeall
n=0:
50%定义序列的长度是50
A=input('请入A的值A:
')%设置信号的有关参数
a=input('请入a的值a:
')
w0=input('请入w0的值w0:
')
T1=0.005
T2=0.002
T3=0.001
T0=0.001
x=A*exp(-a*n*T0).*sin(w0*n*T0)
y1=A*exp(-a*n*T1).*sin(w0*n*T1)
y2=A*exp(-a*n*T2).*sin(w0*n*T2)
y3=A*exp(-a*n*T3).*sin(w0*n*T3)
closeall
subplot(2,1,1)
stem(n,x)%绘制x(n)的图形
gridon
title('离散时间信号')
subplot(2,1,2)
plot(n,x)
gridon
title('连续时间信号')
figure
(2)
subplot(3,1,1)
stem(n,y1)
gridon
title('200Hz理想采样信号序列')
subplot(3,1,2)
stem(n,y2)
gridon
title('500Hz连续时间信号')
subplot(3,1,3)
stem(n,y3)
gridon
title('1000Hz连续时间信号')
k=-25:
25
W=(pi/12.5)*k
w=W/pi
Y1=y1*exp(-j*pi/12.5).^(n'*k)
figure(3)
subplot(2,1,1)
plot(w,abs(Y1))
grid
xlabel('w')
ylabel('幅度')
title('200Hz理想采样信号序列的幅度谱')
axis([-2201000])
subplot(2,1,2)
plot(w,angle(Y1))
grid
xlabel('w')
ylabel('幅角')
title('200Hz理想采样信号序列的相位谱')
Y2=y2*(exp(-j*pi/12.5)).^(n'*k)
figure(4)
subplot(2,1,1)
plot(w,abs(Y2))
grid
xlabel('w')
ylabel('幅度')
title('500Hz理想采样信号序列的幅度谱')
axis([-2201000])
subplot(2,1,2)
plot(w,angle(Y2))
grid
xlabel('w')
ylabel('幅角')
title('500Hz理想采样信号序列的相位谱')
Y3=y3*(exp(-j*pi/12.5)).^(n'*k)
figure(5)
subplot(2,1,1)
plot(w,abs(Y3))
grid
xlabel('w')
ylabel('幅度')
title('1000Hz理想采样信号序列的幅度谱')
axis([-2201000])
subplot(2,1,2)
plot(w,angle(Y3))
grid
xlabel('w')
ylabel('幅角')
title('1000Hz理想采样信号序列的相位谱')
分析:
采样频率为
时没有失真,
时有横线,产生失真,
时横线加长,失真加大。
说明采样频率越大,失真越小。
2.设系统单位抽样响应
,求解当输入为
时的系统响应
,画出
,
,
的时域波形及幅频特性曲线,并利用结果验证卷积定理的正确性(此内容将参数设置为
,
,
,
)。
clc
clearall
closeall
n=1:
50%定义序列的长度是50
hb=zeros(1,50)%注意:
matlab中数组下标从1开始
hb
(1)=1
hb
(2)=1
hb(3)=1
hb(4)=1
hb(5)=1
closeall
subplot(3,1,1)
stem(hb)
title('系统hb[n]')
m=1:
50%设定序列和长度值
T=1%设定序列的采样率
A=1
a=0.4
T=1
w0=2.0734
x=A*exp(-a*m*T).*sin(w0*m*T)
subplot(3,1,2)
stem(x)
title('输入序列x[n]')
y=conv(x,hb)
subplot(3,1,3)
stem(y)
title('输出信号y[n]')
figure
(2)
subplot(3,1,1)
plot(n,hb)
gridon
title('矩形序列的时域波形')
subplot(3,1,2)
plot(x)
gridon
title('输入信号x[n]的时域波形')
subplot(3,1,3)
plot(y)
gridon
title('输出信号y[n]的时域波形')
分析:
有数字信号处理中经常要进行卷积运算,conv可以用来计算两个有限长序列的卷积,该函数计算的两个序列都是从
开始。
3.用
对信号
,
,
进行谱分析,观察与4中结果有无差别。
clc
clearall
closeall
n=1:
50
hb=zeros(1,50)
hb
(1)=1
hb
(2)=1
hb(3)=1
hb(4)=1
hb(5)=1
closeall
subplot(3,1,1)
m=1:
50
T=1
A=1
a=0.4
T=1
w0=2.0734
x=A*exp(-a*m*T).*sin(w0*m*T)
y=conv(x,hb)
subplot(3,1,1)
plot(n,abs(fft(hb)))
title('h(n)的FFT')
subplot(3,1,2)
plot(abs(fft(x)))
title('x(n)的FFT')
subplot(3,1,3)
plot(abs(fft(y)))
title('y(n)的FFT')
分析:
matlab中,计算矢量x的DFT及其逆变换的函数分别为fft和ifft,这两个函数采用了混合算法,当N为质数时,采用的是原始的DFT算法。
如果x为一个矩阵时,则调用后计算出每列的N点FFT。
4.由采样序列
恢复出连续时间信号
,画出其时域波形,对比
与原连续时间信号
的时域波形,计算并记录两者最大误差。
%设置信号的有关参数
clc
clearall
closeall
A=input('pleaseinputtheA:
')
a=input('pleaseinputthea:
')
W0=input('pleaseinputtheW0:
')
fs=input('pleaseinputthefs:
')
n=0:
49
T=1/fs
t0=10/a
Dt=1/(5*a)
t=0:
Dt:
t0
xa=A*exp(-a*t).*sin(W0*t)
K1=50
k1=0:
1:
K1
W1max=2*pi*500
W1=W1max*k1/K1
w1=W1/pi
Xa=xa*exp(-j*t'*W1)
x=A*exp(-a*n*T).*sin(W0*n*T)
figure
(1)
subplot(4,1,1)
plot(t*1000,xa)
title('连续时间信号x(t)')
axis([0t0*1000-50150])
grid
xlabel('t:
毫秒')
ylabel('x(t)')
subplot(4,1,2)
plot(w1,abs(Xa))
title('连续时间信号频谱Xa(w1)')
axis([0100001200])
subplot(4,1,3)
stem(x)
grid
xlabel('n')
ylabel('x(n)')
title('采样序列x(n)')
axis([050-15160])
x1=spline(n*T,x,t)
grid
xlabel('t:
毫秒')
ylabel('x(t)')
subplot(4,1,4)
plot(t*1000,x1)
axis([0t0*10000200])
title('由x(n)恢复x1(t)')
grid
xlabel('t:
毫秒')
ylabel('x1(t)')
axis([045-20160])
error=max(abs(x1-xa))
k2=-25:
25
W2=(pi/12.5)*k2
w2=W2/pi
X=x*(exp(-j*pi/12.5)).^(n'*k2)%序列的付里叶变换函数
figure
(2)
subplot(2,1,1)
plot(w2,abs(X))
grid
xlabel('w2')
ylabel('幅度')
title('输入信号幅度谱')
axis([-2201000])
subplot(2,1,2)
plot(w2,angle(X))
grid
xlabel('w2')
ylabel('幅角')
title('输入信号相位谱')
axis([-22-55])
分析:
恢复曲线与原信号曲线相同,说明恢复误差很小,如果采样频率减小,误差增大,采样频率增大,则恢复误差更小。
采样频率就遵循乃奎斯特定理。
如有侵权请联系告知删除,感谢你们的配合!