一、课程设计题目:

基于 MATLAB 的时域信号采样及频谱分析

二、基本要求:

① 掌握数字信号处理的基本概念、基本理论和基本方法;

② 学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法;

③ 学会用 MATLAB 对信号进行分析和处理;

④ 信号的各参数需由键盘输入,输入不同参数即可得不同的x(t) 和x(n);

⑤ 撰写课程设计论文,用数字信号处理基本理论分析结果。

三、设计方法与步骤:

① 画出连续时间信号 的时域波形及其幅频特性曲线,其中幅度因子A=444.128,衰减因子a=222.144,模拟角频率

=222.144;

② 对信号 进行采样,得到采样序列 ,其中T= 为采样间隔,通过改变采样频率可改变T,画出采样频率分别为200Hz,500

Hz,1000 Hz时的采样序列波形;

③ 对不同采样频率下的采样序列进行频谱分析,绘制其幅频和相频曲线,对比各频率下采样序列 和

的幅频曲线有无差别,如有差别说明原因。

④ 设系统单位抽样响应为 ,求解当输入为 时的系统响应 ,画出 , ,

的时域波形及幅频特性曲线,并利用结果验证卷积定理的正确性(此内容将参数设置为A=1,a=0.4, =2.0734,T=1)。

⑤ 用FFT 对信号 , , 进行谱分析,观察与④中结果有无差别。

⑥ 由采样序列 恢复出连续时间信号 ,画出其时域波形,对比 与原连续时间信号 的时域波形,计算并记录两者最大误差。

四、详细程序及仿真波形分析:

1、连续时间信号x(t)及其200Hz/500Hz/1000Hz频率抽样信号函数x(n)

%绘制信号x(n)的幅度谱和相位谱

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); %pi 是MATLAB

定义的π,信号乘可采用“.*”

y1=A*exp(-a*n*T1).*sin(w0*n*T1); %pi 是MATLAB

定义的π,信号乘可采用“.*”

y2=A*exp(-a*n*T2).*sin(w0*n*T2); %pi 是MATLAB 定义的π,信号乘可采用“.*”

y3=A*exp(-a*n*T3).*sin(w0*n*T3); %pi 是MATLAB 定义的π,信号乘可采用“.*”

close

all %清除已经绘制的x(n)图形

subplot(2,1,1);stem(n,x),grid on %绘制x(n)的图形

title('离散时间信号')

subplot(2,1,2);plot(n,x),grid on

title('连续时间信号')

figure(2)

subplot(3,1,1);stem(n,y1),grid on

title('200Hz理想采样信号序列'); %设置结果图形的标题

subplot(3,1,2);stem(n,y2),grid on

title('500Hz连续时间信号')

subplot(3,1,3);stem(n,y3),grid on

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([-2 2 0 1000]);

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([-2 2 0 1000]);

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([-2 2 0 1000]);

subplot(2,1,2);plot(w,angle(Y3));grid,xlabel('w'),ylabel('幅角');

title ('1000Hz理想采样信号序列的相位谱')

分析:采样频率为1000Hz时没有失真,500Hz时有横线,产生失真,200Hz时横线加长,失真增大。说明采样频率越大失真越小。

2、设系统单位抽样响应为 ,求解当输入为 时的系统响应 ,画出 , ,

的时域波形及幅频特性曲线,并利用结果验证卷积定理的正确性(此内容将参数设置为A=1,a=0.4, =2.0734,T=1)。

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;

close all; 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); %pi 是MATLAB 定义的π,信号乘可采用“.*”

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),grid on

title('矩形序列时域波形');

subplot(3,1,2);plot(m,x),grid on

title('输入信号x[n]时域波形');

subplot(3,1,3);plot(m,y),grid on

title('输出信号y[n]时域波形');

分析:在数字信号处理中经常要进行卷积运算,MATLAB中有一个内部函数conv可以计算两个有限长序列的卷积,该函数计算的两个序列都是从n=0开始

3、用FFT 对信号 , , 进行谱分析,观察与④中结果有无差别。

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;

close all; 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); %pi 是MATLAB 定义的π,信号乘可采用“.*”

y=conv(x,hb);

subplot(3,1,1); plot(n,abs(fft(hb)))

title('h(n)的FFT')

subplot(3,1,2); plot(n,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算法。函数是用机器语言编写的,执行速度混快。N点的FFT调用形式为fft(x,N)。如果x的长度小于N,则补零使其成为N点序列;如果省略N点,即以fft(x)形式调用,则按矢量x的长度进行计算;如果x表示一个矩阵,则调用后计算出每列的N点的FFT。

4、由采样序列 恢复出连续时间信号 ,画出其时域波形,对比 与原连续时间信号 的时域波形,计算并记录两者最大误差。

A=input('please input the A:');%设置信号的有关参数

a=input('please input the a:');

W0=input('please input the W0:');

fs=input('please input the fs:');%采样率

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([0 t0*1000 0 200]);

grid,xlabel('t:毫秒'),ylabel('x(t)');

subplot(4,1,2);

plot(w1,abs(Xa));

title('连续时间信号频谱Xa(w1)');

subplot(4,1,3);

stem(x)%绘制x(n)图形

grid,xlabel('n'),ylabel('x(n)');

title('采样序列x(n)');

x1=spline(n*T,x,t);

grid,xlabel('t:毫秒'),ylabel('x(t)');

subplot(4,1,4);

plot(t*1000,x1);

axis([0 t0*1000 0 200]);

title('由x(n)恢复x1(t)');

grid,xlabel('t:毫秒'),ylabel('x1(t)');

errror=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([-2 2 0 1000]);

subplot(2,1,2);

plot(w2,angle(X));

grid,xlabel('w2'),ylabel('幅角');

title('输入信号相位谱');

axis([-2 2 -5 5]);

分析:恢复曲线与原信号曲线相同,说明恢复误差很小,如果采样频率减小,误差增大,采样频率增大,则恢复误差更小。采样频率应遵循乃奎斯特定理。

五、调试总结:

Axis函数设置图形坐标。Conv函数进行卷积运算。Stem用还绘制离散图谱,plot用来绘制连续的函数图形。fft进行fft运算。

subplot(3,1,1); plot(n,abs(fft(hb)))title('h(n)的FFT')

subplot(3,1,2); plot(n,abs(fft(x)))title('x(n)的FFT')

subplot(3,1,3); plot(abs(fft(y)))title('y(n)的FFT')

最后一行plot(abs(fft(y)))如果写成plot(n,abs(fft(y)))会出现长度不够,没有图形输出。

六、设计总结:

在老师的帮助下我顺利的完成了这个课程设计,通过这次数字信号处理课程设计,让我了解了关于MATLAB软件在数字信号处理方面的应用,又一次学习了MATLAB软件的使用和程序的设计,MATLAB的仿真使我更加深入的了解了数字处理的过程

,对我对数字信号处理的理解加深了一步。MATLAB拥有强大的数据仿真能力,在生产和研究中起着非常大的作。

MATLAB语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。特别是Matlab还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。因此,选择用Matlab进行课程设计。在这过程中我遇到了所多的难题,通过与老师的交流和学习,让我学会了很多在课堂上没有理解的难点。同时也进一步加深了对Matlab的理解和认识。

MATLAB软件使得困难、枯燥的数字处理过程变得非常简单,不仅能够非常迅速的计算出幅频相频、卷积、DFT、FFT等,而且还能自动画出连续、离散的波形曲线。使我们能非常直观的了解数字信号的处理结果。

七、主要参考书目:

[1]周辉, 董正宏.《数字信号处理基础及其MATLAB实现》

[2]丁玉美, 高西全.《数字信号处理学习指导与题解》

[3]郭仕剑, 王宝顺等.《MATLAB7.X数字信号处理》

[4]楼顺天,姚若玉.《MATLAB7.X程序设计语言》

[5]李行一,蔡忠见.《数字信号处理》

[6]程佩青.《数字信号处理教程》

[7]刘敏,魏玲.Matlab通信仿真与应用

连续函数matlab采样,基于 MATLAB 的时域信号采样及频谱分析(转)相关推荐

  1. matlab怎么语音时域采样频谱,基于MATLAB的时域信号采样及频谱分析

    基于 M ATL AB的时域信号采样及频谱分析 刘 艳 (长江师范学院物理学与电子工程学院 重庆 408000) 信 息 技 术 摘 要:在MATLAB仿真环境下,通过观察所生成的采样信号的时域图和频 ...

  2. Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别

    Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别 目录 车牌图像数据集 视频动态演示 核心代码 相关文章 Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别 Matl ...

  3. Matlab:基于Matlab实现人工智能算法应用的简介(SVM支撑向量机GA遗传算法PSO粒子群优化算法)、案例应用之详细攻略

    Matlab:基于Matlab实现人工智能算法应用的简介(SVM支撑向量机&GA遗传算法&PSO粒子群优化算法).案例应用之详细攻略 目录 1.SVM算法使用案例 1.1.Libsvm ...

  4. Matlab:基于Matlab实现人工智能算法应用的简介(BP神经网络算法NN、SOFM神经网络)、案例应用(基于Matlab的GUI的方式创建/训练/预测神经网络)之详细攻略

    Matlab:基于Matlab实现人工智能算法应用的简介(BP神经网络算法NN.SOFM神经网络).案例应用(基于Matlab的GUI的方式创建/训练/预测神经网络)之详细攻略 目录

  5. 信号的调制与解调matlab仿真,基于MATLAB对信号调制与解调的仿真

    基于MATLAB对信号调制与解调的仿真 2.3 2PSK的基本原理和调制解调实现 数字相移键控,记作PSK(Phase shift-keying ),二进制相位键控记作2PSK. 2PSK就是根据基带 ...

  6. fsk调制matlab 仿真,基于MATLAB对FSK信号调制与解调的仿真

    基于MATLAB对FSK信号调制与解调的仿真 基于 MATLAB 对 FSK 信号调制与解调的仿真摘要 Matlab 平台的著名仿真环境 Simulink 作为一种种专业和功能强大且操作简单的仿真工具 ...

  7. matlab对声音进行采样,基于matlab对声音采样的体会

    基于matlab对声音采样的体会 基于 matlab 对声音采样的体会通过本实验的学习,基本学会了对 matlab 中基本的的参数设置,对该软件有了初步的了解:利用 simulink 中现有的模块,建 ...

  8. 低通采样的matlab实现,基于matlab的FIR滤波器设计(低通,频率取样法)

    基于matlab的FIR滤波器设计(低通,频率取样法)一.参考程序 M=63;%所需频率采样点个数 Wp=0.5*pi;%通带截止频率 m=0:(M+1)/2;%通频带上的采样点 Wm=2*pi*m. ...

  9. 心电信号matlab处理,基于MATLAB的心电信号的数字滤波处理

    基于MATLAB的心电信号的数字滤波处理 董兵超;于毅;李振新 [期刊名称]<数字技术与应用> [年(卷),期]2012(000)010 [摘要]心电信号是一种基本的人体生理信号,然而体表 ...

最新文章

  1. 用python写通用restful api service(一)
  2. tar打包及打包并压缩
  3. sqlserver中,如果正确得到中文的长度
  4. vue + skyline 搭建 一个开发环境
  5. java swing 外观框架_Swing外观框架BeautyEye使用
  6. pandas DataFrame 索引(二)
  7. 快速了解c#中的索引器
  8. linux执行使分区生效的命令,Linux硬盘分区生效命令partprobe
  9. Eclipse中使用JNI编写C代码时出现“Unresolved inclusion: ***.h”的解决方案
  10. 移动管理进步显著 企业仍然面临风险
  11. Linux下进程信息的深入分析
  12. django初体验 学习笔记
  13. Linux无线网卡芯片RTL8188EUS驱动安装
  14. HRCAD2008 无法加载问题
  15. CrossApp_01
  16. linux latex编译器,在Ubuntu系统中下载安装LaTeX编辑器TeXstudio的方法
  17. 龙骨(Dragonbones)在Unity中换装的实现
  18. 31.SUM() 函数
  19. 学会这几项windows操作,轻松玩转自己的个人电脑
  20. 如何应对社会人,如何应对平淡的物质世界

热门文章

  1. 智能时代,企业如何“聚数为智”加速数字化转型?
  2. ASH的适用场景和常见用法(附2个经典案例)
  3. Oracle 20c 新特性:强制大小写敏感密码文件 Force Password File Case Sensitive
  4. Oracle 等待事件(Wait Event):Sync ASM rebalance 解析
  5. 嘉年华回顾丨PingCAP CEO 刘奇,带你探寻TiDB...
  6. 不会SQL注入,连漫画都看不懂了
  7. 详解NLP和时序预测的相似性【附赠AAAI21最佳论文INFORMER的详细解析】
  8. 软件“美不美”,UI测试一下就知道
  9. 干货:不同场景容器内获取客户端源IP的方法
  10. 解密昇腾AI处理器--DaVinci架构(计算单元)