实验。一、抽样定理。
一)实验目的:
1、验证乃奎斯特采样定理,加深对时域采样信号频谱变化的认识。
2、掌握序列傅里叶变换的计算机实现方法,利用序列傅里叶变换对连续信号、离散信号及系统响应进行频域分析。
二)实验内容:
1、设x(n)=(0.8.) nu(n),利用filter函数求出x(n)*x(n)的前50个样本,并作图。
相关m文件:
nb=0:50;x=(0.8).^nb;
yb=filter(1,[1,-0.8],x);
stem(nb,yb);axis([-1,51,-1,3])
xlabel('n');ylabel('y_b(n)')title('filter output');
2、考虑模拟信号在ts=0.01s, 0.05s和0.1s间隔采样得到x(n)。
1)对每一个ts,画出x(n)。
2)采用sinc内插(用δt=0.001)从样本x(n)重建模拟信号ya(t),并从图中求出在ya(t)中的(不管末端效果)。
3)采用三次样条内插从样本x(n)重建模拟信号,并从图中求出在ya(t)中的(不管末端效果)。
相关m文件:
t=0:0.001:1;xa=cos(20*pi*t);
ts=0.01;n1=round(1/ts);n1=0:n1;x1=cos(20*pi*n1*ts);
subplot(3,1,1);plot(t,xa,n1*ts,x1,'o');
ylabel('x_1(n)')title('sampling of x_a(t) using ts=0.01');
ts=0.05;n2=round(1/ts);n2=0:n2;x2=cos(20*pi*n2*ts);
subplot(3,1,2);plot(t,xa,n2*ts,x2,'o');
ylabel('x_2(n)')title('sampling of x_a(t) using ts=0.05');
ts=0.1;n3=round(1/ts);n3=0:n3;x3=cos(20*pi*n3*ts);
subplot(3,1,3);plot(t,xa,n3*ts,x3,'o');
ylabel('x_3(n)')title('sampling of x_a(t) using ts=0.1');
ts=0.01;fs=1/ts;
xa1=x1*sinc(fs*(ones(length(n1),1)*t-(n1*ts)'*ones(1,length(t)))
subplot(3,1,1);plot(t,xa1);axis([0,1,-1.1,1.1]);
ylabel('x_a(t)')title('reconstruction of x_a(t) when ts=0.01');
ts=0.05;fs=1/ts;
xa2=x2*sinc(fs*(ones(length(n2),1)*t-(n2*ts)'*ones(1,length(t)))
subplot(3,1,2);plot(t,xa2);axis([0,1,-1.1,1.1]);
ylabel('x_a(t)')title('reconstruction of x_a(t) when ts=0.05');
ts=0.1;fs=1/ts;
xa3=x3*sinc(fs*(ones(length(n3),1)*t-(n3*ts)'*ones(1,length(t)))
subplot(3,1,3);plot(t,xa3);axis([0,1,-1.1,1.1]);
ylabel('x_a(t)')title('reconstruction of x_a(t) when ts=0.1');
ts=0.01;fs=1/ts;
xa1=spline(ts*n1,x1,t);
subplot(3,1,1);plot(t,xa1);axis([0,1,-1.1,1.1]);
ylabel('x_a(t)')title('reconstruction of x_a(t) when ts=0.01');
ts=0.05;fs=1/ts;
xa2=spline(ts*n2,x2,t);
subplot(3,1,2);plot(t,xa2);axis([0,1,-1.1,1.1]);
ylabel('x_a(t)')title('reconstruction of x_a(t) when ts=0.05');
ts=0.1;fs=1/ts;
xa3=spline(ts*n3,x3,t);
subplot(3,1,3);plot(t,xa3);axis([0,1,-1.1,1.1]);
ylabel('x_a(t)')title('reconstruction of x_a(t) when ts=0.1');
实验。二、应用fft实现实现信号频谱分析。
一)实验目的:
1、进一步加深对dft算法原理和基本性质的理解(因为fft只是dft的一种快速算法,所以fft的运算结果必然满足dft的基本性质)。
2、学习用fft对连续信号和时域离散信号进行频谱分析的方法,了解可能出现的误差及原因,以便在实际应用中正确使用fft这一工具。。
二)实验内容:
1、考虑长度为5的有限长序列x(0)=1, x(1)=3, x(2)=5, x(3)=1, x(4) =1,设采样周期为0.5s,要求用fft来计算其频谱。
相关m文件:
x=[1,3,5,3,1];nx=0:4;t=0.5给定原始数据。
n=length(x);d=2*pi/(n*t求出序列长度及频率分辨率。
k=floor((-n-1)/2):(n-1)/2求对称于零频率的fft位置向量。
x=fftshift(fft(x,n求对称于零频率的fft序列值。
subplot(2,1,1),plot(k*d,abs(x),'o画幅频特性图。
subplot(2,1,2),plot(k*d,angle(x),'o画相频特性图。
2、用fft计算下列连续时间信号的频谱。
相关m文件:
t0=[0.6,0.15,0.15,0.15];
n0=[256,256,256,2048];
for r=1:4
t=t0(r);n=n0(r);n=0:n-1;
d=2*pi/(n*t);
x=exp(-0.01*n*t).*cos(2*n*t)+2*exp(-0.015*n*t).*cos(2.1*n*t);
xa=t*fftshift(fft(x));
[r,xa(1)]
k=floor(-(n-1)/2:(n-1)/2);
subplot(2,2,r),plot(k*d,abs(xa))
end3、已知序列是绘制x(n)及其离散傅里叶变换的图形。
相关m文件:
n=100;n=0:n-1;
xn=2*sin(0.48*pi*n)+cos(0.52*pi*n);
xk=fft(xn,n);
magxk=abs(xk);phaxk=angle(xk);
subplot(2,1,1),plot(n,xn),xlabel('n');ylabel('x(n)')title('x(n) n=100')
subplot(2,1,2)
k=0:length(magxk)-1;
stem(k,magxk, '
xlabel('k');ylabel('|x(k)|'title('x(k) n=100');
实验。三、利用c语言实现fft及ifft算法。
一) 实验目的:
二) 实验内容:
产生一个8点时域序列的正弦波数据源,利用基2时间抽取fft算法将该数据序列转换为离散频域序列,然后再将产生的离散频域数据利用idft快速算法反演为离散时域数据,给出实现上述要求的程序流程图及c语言**。要求:将运行结果截图保存。
相关c文件:
fft programe 时间抽取。
#include<>
#include ""
#include ""
struct compx定义一个复数结构*/
double real;
double imag;
compx;
struct compx ee(struct compx b1,struct compx b2)/*定义复数。
相等结构*/
struct compx b3;
return(b3);
void fft(struct compx *xin,int n)/*fft变换函数*/
int f,m,lh,nm,i,k,j,l;
double p,ps;
int le,b,ip;
double pi;
struct compx w,t;
lh=n/2;
f=n;for(m=1;(f=f/2)!=1; m++)m为蝶形图的级数*/
nm=n-2
j=n/2/*变址运算*/
for(i=1;i<=nm;i++)
k=lh;while(j>=k)
j=j+k;
for(l=1;l<=m;l++)
le=pow(2,l);
b=le/2;
pi=3.14159;
for(j=0;j<=b-1;j++)
p=pow(2,m-l)*j;
ps=(2*pi/n)*p;
for(i=j;i<=n-1;i=i+le)
matlab实验
电子信息工程系实验报告。课程名称 计算机 技术。实验项目名称 实验1 matlab基础 matlab编程应用实验时间 2011 9 18 班级 电信092 姓名学号 t span cr r 10 一 实验目的 熟悉matlab工作环境和基本操作。二 实验环境 硬件 pc机,酷睿i3双核,2g内存 软...
MATLAB实验
实验名称 matlab实验。学生姓名 班级 601 班内序号 31 学号 2012212084 日期 2014.3.15 实验要求 因为现实世界里存在的是模拟信号,因此数字信号处理的第一个问题是将信号离散化,得到一个数字信号,然后再进行数字处理。1 常用数字信号序列的产生 熟悉 matlab 产生数...
MATLAB实验
课程实验报告。课程名称 matlab与机电系统 实验名称实验一matlab数值与符号运算。实验一 matlab数值与符号运算。1 目的和要求。1 熟练掌握matlab的启动和退出 matlab的命令窗口 常用选单和工具栏,通过实例初步认识对matlab的命令和程序运行等。2 熟练掌握matlab数值...