1、 %定义序列的长度是50A=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);y2=A*exp(-a*n*T2).*sin(w0*n*T2);y3=A*exp(-a*n*T3).*sin(w0*n*T3);close all %清除已经绘制的x(n)图形subplot
2、(2,1,1);stem(n,x),grid on %绘制x(n)的图形title(离散时间信号)subplot(2,1,2);plot(n,x),grid on 连续时间信号figure(2)subplot(3,1,1);stem(n,y1),grid on200Hz理想采样信号序列 %设置结果图形的标题subplot(3,1,2);stem(n,y2),grid on500Hz连续时间信号subplot(3,1,3);stem(n,y3),grid on1000Hz连续时间信号k=-25:25;W=(pi/12.5)*k;w=W/pi; Y1=y1*(exp(-j*pi/12.5).(n*
3、k);figure(3)plot(w,abs(Y1);grid,xlabel(w),ylabel(幅度200Hz理想采样信号序列的幅度谱axis(-2 2 0 1000);plot(w,angle(Y1);幅角title (200Hz理想采样信号序列的相位谱Y2=y2*(exp(-j*pi/12.5).(nfigure(4)plot(w,abs(Y2);500Hz理想采样信号序列的幅度谱plot(w,angle(Y2);500Hz理想采样信号序列的相位谱Y3=y3*(exp(-j*pi/12.5).(nfigure(5)plot(w,abs(Y3);1000Hz理想采样信号序列的幅度谱plot
4、(w,angle(Y3);1000Hz理想采样信号序列的相位谱分析:采样频率为1000Hz时没有失真,500Hz时有横线,产生失真,200Hz时横线加长,失真增大。说明采样频率越大失真越小。2、设系统单位抽样响应为 ,求解当输入为 时的系统响应 ,画出 , , 的时域波形及幅频特性曲线,并利用结果验证卷积定理的正确性(此内容将参数设置为A1,a0.4, 2.0734,T1)。n=1: %定义序列的长度是50hb=zeros(1,50); %注意:MATLAB 中数组下标从1 开始hb(1)=1; hb(2)=1; hb(3)=1; hb(4)=1;hb(5)=1;close all; subp
5、lot(3,1,1);stem(hb);系统hbnm=1: T=1;%定义序列的长度是和采样率A=1; a=0.4;T=1;w0=2.0734;x=A*exp(-a*m*T).*sin(w0*m*T); %pi 是MATLAB 定义的,信号乘可采用“.*”stem(x);输入信号xny=conv(x,hb);stem(y);输出信号ynplot(n,hb),grid on矩形序列时域波形plot(m,x),grid on输入信号xn时域波形plot(m,y),grid on输出信号yn时域波形在数字信号处理中经常要进行卷积运算,MATLAB中有一个内部函数conv可以计算两个有限长序列的卷积,
6、该函数计算的两个序列都是从n=0开始3、用FFT 对信号 , , 进行谱分析,观察与中结果有无差别。 plot(n,abs(fft(hb)h(n)的FFT plot(n,abs(fft(x)x(n)的FFT plot(abs(fft(y)y(n)的FFTMATLAB中,计算矢量x的DFT及其逆变换的函数分别为fft和ifft,这两个函数采用了混合算法,当N为质数时,采用的是原始的DFT算法。函数是用机器语言编写的,执行速度混快。N点的FFT调用形式为fft(x,N)。如果x的长度小于N,则补零使其成为N点序列;如果省略N点,即以fft(x)形式调用,则按矢量x的长度进行计算;如果x表示一个矩阵
7、,则调用后计算出每列的N点的FFT。4、由采样序列 恢复出连续时间信号 ,画出其时域波形,对比 与原连续时间信号 的时域波形,计算并记录两者最大误差。please input the A:%设置信号的有关参数please input the a:W0=input(please input the W0:fs=input(please input the fs:%采样率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
8、/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);连续时间信号x(t)axis(0 t0*1000 0 200);t:毫秒x(t)subplot(4,1,2);plot(w1,abs(Xa);连续时间信号频谱Xa(w1)subplot(4,1,3);stem(x)%绘制x(n)图形nx(n)采样序列x(n)x1=spline(n*T,x,t);subplot(4,1,4);plot(t*1000,x1);由x(n)恢复x1(t)x1(t)er
9、rror=max(abs(x1-xa);k2=-25:W2=(pi/12.5)*k2;w2=W2/pi;X=x*(exp(-j*pi/12.5).(n*k2);%序列的傅里叶变换函数figure(2);plot(w2,abs(X);w2输入信号幅度谱plot(w2,angle(X);输入信号相位谱axis(-2 2 -5 5);恢复曲线与原信号曲线相同,说明恢复误差很小,如果采样频率减小,误差增大,采样频率增大,则恢复误差更小。采样频率应遵循乃奎斯特定理。五、调试总结:Axis函数设置图形坐标。Conv函数进行卷积运算。Stem用还绘制离散图谱,plot用来绘制连续的函数图形。fft进行fft
10、运算。 plot(n,abs(fft(hb)title( plot(n,abs(fft(x)title( plot(abs(fft(y)title( 最后一行plot(abs(fft(y)如果写成plot(n,abs(fft(y)会出现长度不够,没有图形输出。六、设计总结:在老师的帮助下我顺利的完成了这个课程设计,通过这次数字信号处理课程设计,让我了解了关于MATLAB软件在数字信号处理方面的应用,又一次学习了MATLAB软件的使用和程序的设计,MATLAB的仿真使我更加深入的了解了数字处理的过程 ,对我对数字信号处理的理解加深了一步。MATLAB拥有强大的数据仿真能力,在生产和研究中起着非常
11、大的作。MATLAB语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。特别是Matlab还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。因此,选择用Matlab进行课程设计。在这过程中我遇到了所多的难题,通过与老师的交流和学习,让我学会了很多在课堂上没有理解的难点。同时也进一步加深了对Matlab的理解和认识。MATLAB软件使得困难、枯燥的数字处理过程变得非常简单,不仅能够非常迅速的计算出幅频相频、卷积、DFT、FFT等,而且还能自动画出连续、离散的波形曲线。使我们能非常直观的了解数字信号的处理结果。七、主要参考书目:1周辉, 董正宏.数字信号处理基础及其MATLAB实现 2丁玉美, 高西全.数字信号处理学习指导与题解3郭仕剑, 王宝顺等.MATLAB7.X数字信号处理4楼顺天,姚若玉.MATLAB7.X程序设计语言5李行一,蔡忠见.数字信号处理6程佩青.数字信号处理教程7刘敏,魏玲Matlab通信仿真与应用
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1