MATLAB 下的数字信号处理实现示例 附录一 信号、系统和系统响应 1、理想采样信号序列 ( 1)首先产生信号 x(n),0<=n<=50 n=0:50; %定义序列的长度是 50 A=444.128; %设置信号有关的参数 a=50*sqrt(2.0)*pi; T=0.001; %采样率 w0=50*sqrt(2.0)*pi; x=A*exp(-a*n*T).*sin(w0*n*T); %pi 是 MATLAB 定义的π,信号乘可采用“ .*” close all %清除已经绘制的 x(n)图形 subplot(3,1,1);stem(x); %绘制 x(n)的图形 title(‘理想采样信号序列 ’); ( 2)绘制信号 x(n)的幅度谱和相位谱 k=-25:25; W=(pi/12.5)*k; X=x*(exp(-j*pi/12.5)).^(n’*k); magX=abs(X); %绘制 x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘理想采样信号序列的幅度谱 ’); angX=angle(X); %绘制 x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘理想采样信号序列的相位谱 ’) (3)改变参数为: 1,0734.2,4.0,1 0 ==?== TA α n=0:50; %定义序列的长度是 50 A=1; %设置信号有关的参数 a=0.4; T=1; %采样率 w0=2.0734; x=A*exp(-a*n*T).*sin(w0*n*T); %pi 是 MATLAB 定义的π,信号乘可采用“ .*” close all %清除已经绘制的 x(n)图形 subplot(3,1,1);stem(x); %绘制 x(n)的图形 title(‘理想采样信号序列 ’); k=-25:25; W=(pi/12.5)*k; X=x*(exp(-j*pi/12.5)).^(n’*k); magX=abs(X); %绘制 x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘理想采样信号序列的幅度谱 ’); angX=angle(X); %绘制 x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘理想采样信号序列的相位谱 ’) 2、单位脉冲序列 在 MatLab 中,这一函数可以用 zeros 函数实现: n=1:50; %定义序列的长度是 50 x=zeros(1,50); %注意: MATLAB 中数组下标从 1 开始 x(1)=1; close all; subplot(3,1,1);stem(x);title(‘单位冲击信号序列 ’); k=-25:25; X=x*(exp(-j*pi/12.5)).^(n’*k); magX=abs(X); %绘制 x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘单位冲击信号的幅度谱 ’); angX=angle(X); %绘制 x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘单位冲击信号的相位谱 ’) 3、矩形序列 n=1:50 x=sign(sign(10-n)+1); close all; subplot(3,1,1);stem(x);title(‘单位冲击信号序列 ’); k=-25:25; X=x*(exp(-j*pi/25)).^(n’*k); magX=abs(X); %绘制 x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘单位冲击信号的幅度谱 ’); angX=angle(X); %绘制 x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘单位冲击信号的相位谱 ’) 4、特定冲击串: )3()2(5.2)1(5.2)()( ?+?+?+= nnnnnx δδδδ n=1:50; %定义序列的长度是 50 x=zeros(1,50); %注意: MATLAB 中数组下标从 1 开始 x(1)=1;x(2)=2.5;x(3)=2.5;x(4)=1; close all; subplot(3,1,1);stem(x);title(‘单位冲击信号序列 ’); k=-25:25; X=x*(exp(-j*pi/12.5)).^(n’*k); magX=abs(X); %绘制 x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘单位冲击信号的幅度谱 ’); angX=angle(X); %绘制 x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘单位冲击信号的相位谱 ’) 5、卷积计算: ∑ +∞ ?∞= ?=?= m mnhmxnhnxny )()()()()( 在 MATLAB 中。提供了卷积函数 conv,即 y=conv(x,h),调用十分方便。例如: 系统: )3()2(5.2)1(5.2)()( ?+?+?+= nnnnnh b δδδδ 信号: 500),sin()( 0
◆◆
评论读取中....
请登录后再发表评论!
◆◆
修改失败,请稍后尝试